From fd9d39bf8b2fb0ecb9723fd5eefb6ecd418b0f5d Mon Sep 17 00:00:00 2001 From: l-proger Date: Wed, 10 Sep 2025 04:09:26 +0300 Subject: [PATCH] * --- .gitignore | 3 + .vscode/settings.json | 4 +- Src/RenderFramework/Renderer.cpp | 9 +- Src/RenderFramework/Renderer.h | 13 +- Src/RenderFramework/Vulkan/CMakeLists.txt | 165 +- .../Vulkan/{ => Deprecated}/Application.cpp | 0 .../Vulkan/{ => Deprecated}/Application.h | 0 .../{ => Deprecated}/FragmentShader_unknown.h | 0 .../Vulkan/{ => Deprecated}/FunctionTraits.h | 0 .../Vulkan/{ => Deprecated}/RenderWindow.h | 0 .../{ => Deprecated}/RenderWindowWindows.cpp | 0 .../Vulkan/{ => Deprecated}/ShaderCompiler.h | 0 .../Vulkan/{ => Deprecated}/TempFile.h | 0 .../{ => Deprecated}/UboPerObjectData.h | 0 .../Vulkan/{ => Deprecated}/UniformBuffer.h | 0 .../Vulkan/{ => Deprecated}/Vertex.h | 0 .../{ => Deprecated}/VertexShader_unknown.h | 0 .../{ => Deprecated}/VulkanApplicationInfo.h | 0 .../Vulkan/{ => Deprecated}/VulkanBuffer.h | 0 .../Vulkan/{ => Deprecated}/VulkanCommon.h | 0 .../VulkanDescriptorSetLayout.cpp | 0 .../VulkanDescriptorSetLayout.h | 0 .../{ => Deprecated}/VulkanDeviceFunctions.h | 0 .../{ => Deprecated}/VulkanDynamicLibrary.h | 0 .../{ => Deprecated}/VulkanFrameBuffer.cpp | 0 .../{ => Deprecated}/VulkanFrameBuffer.h | 0 .../Vulkan/{ => Deprecated}/VulkanFunctions.h | 0 .../{ => Deprecated}/VulkanGlobalFunctions.h | 0 .../Vulkan/{ => Deprecated}/VulkanImageView.h | 0 .../{ => Deprecated}/VulkanInstance.cpp | 0 .../Vulkan/{ => Deprecated}/VulkanInstance.h | 0 .../VulkanInstanceFunctions.h | 0 .../Vulkan/{ => Deprecated}/VulkanLibrary.cpp | 0 .../Vulkan/{ => Deprecated}/VulkanLibrary.h | 0 .../{ => Deprecated}/VulkanLogicalDevice.cpp | 0 .../{ => Deprecated}/VulkanLogicalDevice.h | 0 .../Vulkan/{ => Deprecated}/VulkanMemory.h | 0 .../{ => Deprecated}/VulkanMemoryProperties.h | 0 .../{ => Deprecated}/VulkanPhysicalDevice.cpp | 0 .../{ => Deprecated}/VulkanPhysicalDevice.h | 0 .../{ => Deprecated}/VulkanPipeline.cpp | 0 .../Vulkan/{ => Deprecated}/VulkanPipeline.h | 0 .../{ => Deprecated}/VulkanPipelineLayout.cpp | 0 .../{ => Deprecated}/VulkanPipelineLayout.h | 0 .../VulkanQueueFamilyProperties.h | 0 .../Vulkan/{ => Deprecated}/VulkanSemaphore.h | 0 .../{ => Deprecated}/VulkanShaderModule.h | 0 .../Vulkan/{ => Deprecated}/VulkanSwapChain.h | 0 .../Vulkan/{ => Deprecated}/WindowWindows.h | 0 .../extractAllVulkanFunctions.ps1 | 0 .../Vulkan/{ => Deprecated}/main.cpp | 0 .../VulkanPP/AccelerationStructureKHR.cpp | 33 + .../VulkanPP/AccelerationStructureKHR.hpp | 43 + .../VulkanPP/AccelerationStructureNV.cpp | 33 + .../VulkanPP/AccelerationStructureNV.hpp | 43 + .../Vulkan/Generated/VulkanPP/Buffer.cpp | 33 + .../Vulkan/Generated/VulkanPP/Buffer.hpp | 43 + .../VulkanPP/BufferCollectionFUCHSIA.cpp | 37 + .../VulkanPP/BufferCollectionFUCHSIA.hpp | 45 + .../Vulkan/Generated/VulkanPP/BufferView.cpp | 36 + .../Vulkan/Generated/VulkanPP/BufferView.hpp | 46 + .../Generated/VulkanPP/CommandBuffer.cpp | 1473 +++++++++++++++ .../Generated/VulkanPP/CommandBuffer.hpp | 1453 +++++++++++++++ .../Vulkan/Generated/VulkanPP/CommandPool.cpp | 33 + .../Vulkan/Generated/VulkanPP/CommandPool.hpp | 43 + .../Generated/VulkanPP/CuFunctionNVX.cpp | 33 + .../Generated/VulkanPP/CuFunctionNVX.hpp | 43 + .../Vulkan/Generated/VulkanPP/CuModuleNVX.cpp | 33 + .../Vulkan/Generated/VulkanPP/CuModuleNVX.hpp | 43 + .../Generated/VulkanPP/CudaFunctionNV.cpp | 37 + .../Generated/VulkanPP/CudaFunctionNV.hpp | 45 + .../Generated/VulkanPP/CudaModuleNV.cpp | 37 + .../Generated/VulkanPP/CudaModuleNV.hpp | 45 + .../VulkanPP/DebugReportCallbackEXT.cpp | 33 + .../VulkanPP/DebugReportCallbackEXT.hpp | 43 + .../VulkanPP/DebugUtilsMessengerEXT.cpp | 33 + .../VulkanPP/DebugUtilsMessengerEXT.hpp | 43 + .../VulkanPP/DeferredOperationKHR.cpp | 33 + .../VulkanPP/DeferredOperationKHR.hpp | 43 + .../Generated/VulkanPP/DescriptorPool.cpp | 33 + .../Generated/VulkanPP/DescriptorPool.hpp | 43 + .../Generated/VulkanPP/DescriptorSet.cpp | 36 + .../Generated/VulkanPP/DescriptorSet.hpp | 47 + .../VulkanPP/DescriptorSetLayout.cpp | 36 + .../VulkanPP/DescriptorSetLayout.hpp | 46 + .../VulkanPP/DescriptorUpdateTemplate.cpp | 55 + .../VulkanPP/DescriptorUpdateTemplate.hpp | 56 + .../Vulkan/Generated/VulkanPP/Device.cpp | 1298 +++++++++++++ .../Vulkan/Generated/VulkanPP/Device.hpp | 1281 +++++++++++++ .../Generated/VulkanPP/DeviceMemory.cpp | 33 + .../Generated/VulkanPP/DeviceMemory.hpp | 43 + .../Vulkan/Generated/VulkanPP/DisplayKHR.cpp | 17 + .../Vulkan/Generated/VulkanPP/DisplayKHR.hpp | 36 + .../Generated/VulkanPP/DisplayModeKHR.cpp | 32 + .../Generated/VulkanPP/DisplayModeKHR.hpp | 44 + .../Vulkan/Generated/VulkanPP/Event.cpp | 33 + .../Vulkan/Generated/VulkanPP/Event.hpp | 43 + .../VulkanPP/ExternalComputeQueueNV.cpp | 38 + .../VulkanPP/ExternalComputeQueueNV.hpp | 48 + .../Vulkan/Generated/VulkanPP/Fence.cpp | 33 + .../Vulkan/Generated/VulkanPP/Fence.hpp | 43 + .../Vulkan/Generated/VulkanPP/Framebuffer.cpp | 39 + .../Vulkan/Generated/VulkanPP/Framebuffer.hpp | 49 + .../Vulkan/Generated/VulkanPP/Image.cpp | 33 + .../Vulkan/Generated/VulkanPP/Image.hpp | 43 + .../Vulkan/Generated/VulkanPP/ImageView.cpp | 36 + .../Vulkan/Generated/VulkanPP/ImageView.hpp | 46 + .../VulkanPP/IndirectCommandsLayoutEXT.cpp | 33 + .../VulkanPP/IndirectCommandsLayoutEXT.hpp | 43 + .../VulkanPP/IndirectCommandsLayoutNV.cpp | 33 + .../VulkanPP/IndirectCommandsLayoutNV.hpp | 43 + .../VulkanPP/IndirectExecutionSetEXT.cpp | 33 + .../VulkanPP/IndirectExecutionSetEXT.hpp | 43 + .../Vulkan/Generated/VulkanPP/Instance.cpp | 70 + .../Vulkan/Generated/VulkanPP/Instance.hpp | 71 + .../Vulkan/Generated/VulkanPP/MicromapEXT.cpp | 33 + .../Vulkan/Generated/VulkanPP/MicromapEXT.hpp | 43 + .../VulkanPP/OpticalFlowSessionNV.cpp | 33 + .../VulkanPP/OpticalFlowSessionNV.hpp | 43 + .../Generated/VulkanPP/PhysicalDevice.cpp | 450 +++++ .../Generated/VulkanPP/PhysicalDevice.hpp | 451 +++++ .../Vulkan/Generated/VulkanPP/Pipeline.cpp | 94 + .../Vulkan/Generated/VulkanPP/Pipeline.hpp | 74 + .../Generated/VulkanPP/PipelineCache.cpp | 33 + .../Generated/VulkanPP/PipelineCache.hpp | 43 + .../Generated/VulkanPP/PipelineLayout.cpp | 36 + .../Generated/VulkanPP/PipelineLayout.hpp | 46 + .../Generated/VulkanPP/PrivateDataSlot.cpp | 47 + .../Generated/VulkanPP/PrivateDataSlot.hpp | 50 + .../Vulkan/Generated/VulkanPP/QueryPool.cpp | 33 + .../Vulkan/Generated/VulkanPP/QueryPool.hpp | 43 + .../Vulkan/Generated/VulkanPP/Queue.cpp | 84 + .../Vulkan/Generated/VulkanPP/Queue.hpp | 103 ++ .../Vulkan/Generated/VulkanPP/RenderPass.cpp | 61 + .../Vulkan/Generated/VulkanPP/RenderPass.hpp | 57 + .../Vulkan/Generated/VulkanPP/Sampler.cpp | 33 + .../Vulkan/Generated/VulkanPP/Sampler.hpp | 43 + .../VulkanPP/SamplerYcbcrConversion.cpp | 47 + .../VulkanPP/SamplerYcbcrConversion.hpp | 50 + .../Vulkan/Generated/VulkanPP/Semaphore.cpp | 33 + .../Vulkan/Generated/VulkanPP/Semaphore.hpp | 43 + .../Vulkan/Generated/VulkanPP/ShaderEXT.cpp | 32 + .../Vulkan/Generated/VulkanPP/ShaderEXT.hpp | 41 + .../Generated/VulkanPP/ShaderModule.cpp | 33 + .../Generated/VulkanPP/ShaderModule.hpp | 43 + .../Vulkan/Generated/VulkanPP/SurfaceKHR.cpp | 255 +++ .../Vulkan/Generated/VulkanPP/SurfaceKHR.hpp | 167 ++ .../Generated/VulkanPP/SwapchainKHR.cpp | 46 + .../Generated/VulkanPP/SwapchainKHR.hpp | 48 + .../Generated/VulkanPP/ValidationCacheEXT.cpp | 33 + .../Generated/VulkanPP/ValidationCacheEXT.hpp | 43 + .../Generated/VulkanPP/VideoSessionKHR.cpp | 33 + .../Generated/VulkanPP/VideoSessionKHR.hpp | 43 + .../VulkanPP/VideoSessionParametersKHR.cpp | 33 + .../VulkanPP/VideoSessionParametersKHR.hpp | 43 + .../Generated/VulkanPP/VulkanFunctions.cpp | 1621 +++++++++++++++++ .../Generated/VulkanPP/VulkanFunctions.hpp | 890 +++++++++ Src/RenderFramework/Vulkan/IntrusivePtr.h | 145 +- Tools/VulkanWrapperGenerator/Generator.cs | 1124 +++++++----- Tools/VulkanWrapperGenerator/Program.cs | 156 +- Tools/VulkanWrapperGenerator/Sugar.cs | 29 - .../VulkanWrapperGenerator/SugarClassSpec.cs | 40 + Tools/VulkanWrapperGenerator/VkSpec.cs | 737 +++++--- 163 files changed, 14832 insertions(+), 1030 deletions(-) rename Src/RenderFramework/Vulkan/{ => Deprecated}/Application.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/Application.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/FragmentShader_unknown.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/FunctionTraits.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/RenderWindow.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/RenderWindowWindows.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/ShaderCompiler.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/TempFile.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/UboPerObjectData.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/UniformBuffer.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/Vertex.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VertexShader_unknown.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanApplicationInfo.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanBuffer.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanCommon.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanDescriptorSetLayout.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanDescriptorSetLayout.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanDeviceFunctions.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanDynamicLibrary.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanFrameBuffer.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanFrameBuffer.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanFunctions.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanGlobalFunctions.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanImageView.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanInstance.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanInstance.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanInstanceFunctions.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanLibrary.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanLibrary.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanLogicalDevice.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanLogicalDevice.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanMemory.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanMemoryProperties.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanPhysicalDevice.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanPhysicalDevice.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanPipeline.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanPipeline.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanPipelineLayout.cpp (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanPipelineLayout.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanQueueFamilyProperties.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanSemaphore.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanShaderModule.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/VulkanSwapChain.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/WindowWindows.h (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/extractAllVulkanFunctions.ps1 (100%) rename Src/RenderFramework/Vulkan/{ => Deprecated}/main.cpp (100%) create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureKHR.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureKHR.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureNV.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureNV.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Buffer.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Buffer.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferCollectionFUCHSIA.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferCollectionFUCHSIA.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferView.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferView.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandBuffer.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandBuffer.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandPool.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandPool.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CuFunctionNVX.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CuFunctionNVX.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CuModuleNVX.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CuModuleNVX.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaFunctionNV.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaFunctionNV.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaModuleNV.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaModuleNV.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugReportCallbackEXT.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugReportCallbackEXT.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugUtilsMessengerEXT.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugUtilsMessengerEXT.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DeferredOperationKHR.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DeferredOperationKHR.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorPool.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorPool.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSet.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSet.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSetLayout.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSetLayout.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorUpdateTemplate.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorUpdateTemplate.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Device.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Device.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DeviceMemory.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DeviceMemory.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayKHR.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayKHR.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayModeKHR.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayModeKHR.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Event.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Event.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ExternalComputeQueueNV.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ExternalComputeQueueNV.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Fence.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Fence.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Framebuffer.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Framebuffer.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Image.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Image.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ImageView.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ImageView.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutEXT.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutEXT.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutNV.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutNV.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectExecutionSetEXT.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectExecutionSetEXT.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Instance.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Instance.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/MicromapEXT.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/MicromapEXT.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/OpticalFlowSessionNV.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/OpticalFlowSessionNV.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/PhysicalDevice.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/PhysicalDevice.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Pipeline.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Pipeline.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineCache.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineCache.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineLayout.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineLayout.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/PrivateDataSlot.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/PrivateDataSlot.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/QueryPool.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/QueryPool.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Queue.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Queue.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/RenderPass.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/RenderPass.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Sampler.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Sampler.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/SamplerYcbcrConversion.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/SamplerYcbcrConversion.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Semaphore.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/Semaphore.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderEXT.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderEXT.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderModule.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderModule.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/SurfaceKHR.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/SurfaceKHR.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/SwapchainKHR.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/SwapchainKHR.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ValidationCacheEXT.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/ValidationCacheEXT.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionKHR.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionKHR.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionParametersKHR.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionParametersKHR.hpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/VulkanFunctions.cpp create mode 100644 Src/RenderFramework/Vulkan/Generated/VulkanPP/VulkanFunctions.hpp delete mode 100644 Tools/VulkanWrapperGenerator/Sugar.cs create mode 100644 Tools/VulkanWrapperGenerator/SugarClassSpec.cs diff --git a/.gitignore b/.gitignore index 117f8d4..88f1b39 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ /Test/VulkanWrapperSandbox/x64 /build /out +/Tools/VulkanWrapperGenerator/.vs +/Tools/VulkanWrapperGenerator/bin +/Tools/VulkanWrapperGenerator/obj diff --git a/.vscode/settings.json b/.vscode/settings.json index 0f25192..74e7cb3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -87,6 +87,8 @@ "random": "cpp", "regex": "cpp", "variant": "cpp", - "vulkan_raii.hpp": "c" + "vulkan_raii.hpp": "c", + "vulkanfunctions.hpp": "c", + "intrusiveptr.h": "c" } } \ No newline at end of file diff --git a/Src/RenderFramework/Renderer.cpp b/Src/RenderFramework/Renderer.cpp index a6f1c2c..af26eff 100644 --- a/Src/RenderFramework/Renderer.cpp +++ b/Src/RenderFramework/Renderer.cpp @@ -4,8 +4,15 @@ #include #endif +#include + bool Renderer::Init() { - _vulkanLibrary = std::make_shared(); + + VulkanPP::vk.loadGlobal(); + //_vulkanLibrary = std::make_shared(); + + + auto layers = _vulkanLibrary->getSupportedLayers(); diff --git a/Src/RenderFramework/Renderer.h b/Src/RenderFramework/Renderer.h index 996d2f2..aa54a75 100644 --- a/Src/RenderFramework/Renderer.h +++ b/Src/RenderFramework/Renderer.h @@ -10,8 +10,9 @@ #include #include #include -#include -#include + +#include + #include #include @@ -22,7 +23,7 @@ class Renderer { public: bool Init(); - PVulkanLogicalDevice GetLogicalDevice(); + VulkanPP::PDevice GetLogicalDevice(); //ComPtr GetAdapter() { // return dxgiAdapter; @@ -42,9 +43,9 @@ public: //std::shared_ptr getSrvDescriptorsAllocator(); private: - std::shared_ptr _vulkanLibrary; - IntrusivePtr _vulkanInstance; - PVulkanLogicalDevice _logicalDevice; + //std::shared_ptr _vulkanLibrary; + //IntrusivePtr _vulkanInstance; + VulkanPP::PDevice _logicalDevice; std::optional _graphicsQueueFamilyIndex; std::optional _presentQueueFamilyIndex; diff --git a/Src/RenderFramework/Vulkan/CMakeLists.txt b/Src/RenderFramework/Vulkan/CMakeLists.txt index 2219f7f..e48230e 100644 --- a/Src/RenderFramework/Vulkan/CMakeLists.txt +++ b/Src/RenderFramework/Vulkan/CMakeLists.txt @@ -2,7 +2,7 @@ include(VulkanTools) -Vulkan_generateFunctionsFile("${CMAKE_CURRENT_LIST_DIR}") +#Vulkan_generateFunctionsFile("${CMAKE_CURRENT_LIST_DIR}") add_library(VulkanWrapper INTERFACE) @@ -13,62 +13,115 @@ INTERFACE target_sources(VulkanWrapper INTERFACE - Application.cpp - Application.h - CMakeLists.txt - DynamicLibrary.cpp - DynamicLibrary.h - FragmentShader_unknown.h - FunctionTraits.h +Generated/VulkanPP/AccelerationStructureKHR.cpp +Generated/VulkanPP/AccelerationStructureKHR.hpp +Generated/VulkanPP/AccelerationStructureNV.cpp +Generated/VulkanPP/AccelerationStructureNV.hpp +Generated/VulkanPP/Buffer.cpp +Generated/VulkanPP/Buffer.hpp +#Generated/VulkanPP/BufferCollectionFUCHSIA.cpp +#Generated/VulkanPP/BufferCollectionFUCHSIA.hpp +Generated/VulkanPP/BufferView.cpp +Generated/VulkanPP/BufferView.hpp +Generated/VulkanPP/CommandBuffer.cpp +Generated/VulkanPP/CommandBuffer.hpp +Generated/VulkanPP/CommandPool.cpp +Generated/VulkanPP/CommandPool.hpp +Generated/VulkanPP/CudaFunctionNV.cpp +Generated/VulkanPP/CudaFunctionNV.hpp +Generated/VulkanPP/CudaModuleNV.cpp +Generated/VulkanPP/CudaModuleNV.hpp +Generated/VulkanPP/CuFunctionNVX.cpp +Generated/VulkanPP/CuFunctionNVX.hpp +Generated/VulkanPP/CuModuleNVX.cpp +Generated/VulkanPP/CuModuleNVX.hpp +Generated/VulkanPP/DebugReportCallbackEXT.cpp +Generated/VulkanPP/DebugReportCallbackEXT.hpp +Generated/VulkanPP/DebugUtilsMessengerEXT.cpp +Generated/VulkanPP/DebugUtilsMessengerEXT.hpp +Generated/VulkanPP/DeferredOperationKHR.cpp +Generated/VulkanPP/DeferredOperationKHR.hpp +Generated/VulkanPP/DescriptorPool.cpp +Generated/VulkanPP/DescriptorPool.hpp +Generated/VulkanPP/DescriptorSet.cpp +Generated/VulkanPP/DescriptorSet.hpp +Generated/VulkanPP/DescriptorSetLayout.cpp +Generated/VulkanPP/DescriptorSetLayout.hpp +Generated/VulkanPP/DescriptorUpdateTemplate.cpp +Generated/VulkanPP/DescriptorUpdateTemplate.hpp +Generated/VulkanPP/Device.cpp +Generated/VulkanPP/Device.hpp +Generated/VulkanPP/DeviceMemory.cpp +Generated/VulkanPP/DeviceMemory.hpp +Generated/VulkanPP/DisplayKHR.cpp +Generated/VulkanPP/DisplayKHR.hpp +Generated/VulkanPP/DisplayModeKHR.cpp +Generated/VulkanPP/DisplayModeKHR.hpp +Generated/VulkanPP/Event.cpp +Generated/VulkanPP/Event.hpp +Generated/VulkanPP/ExternalComputeQueueNV.cpp +Generated/VulkanPP/ExternalComputeQueueNV.hpp +Generated/VulkanPP/Fence.cpp +Generated/VulkanPP/Fence.hpp +Generated/VulkanPP/Framebuffer.cpp +Generated/VulkanPP/Framebuffer.hpp +Generated/VulkanPP/Image.cpp +Generated/VulkanPP/Image.hpp +Generated/VulkanPP/ImageView.cpp +Generated/VulkanPP/ImageView.hpp +Generated/VulkanPP/IndirectCommandsLayoutEXT.cpp +Generated/VulkanPP/IndirectCommandsLayoutEXT.hpp +Generated/VulkanPP/IndirectCommandsLayoutNV.cpp +Generated/VulkanPP/IndirectCommandsLayoutNV.hpp +Generated/VulkanPP/IndirectExecutionSetEXT.cpp +Generated/VulkanPP/IndirectExecutionSetEXT.hpp +Generated/VulkanPP/Instance.cpp +Generated/VulkanPP/Instance.hpp +Generated/VulkanPP/MicromapEXT.cpp +Generated/VulkanPP/MicromapEXT.hpp +Generated/VulkanPP/OpticalFlowSessionNV.cpp +Generated/VulkanPP/OpticalFlowSessionNV.hpp +Generated/VulkanPP/PhysicalDevice.cpp +Generated/VulkanPP/PhysicalDevice.hpp +Generated/VulkanPP/Pipeline.cpp +Generated/VulkanPP/Pipeline.hpp +Generated/VulkanPP/PipelineCache.cpp +Generated/VulkanPP/PipelineCache.hpp +Generated/VulkanPP/PipelineLayout.cpp +Generated/VulkanPP/PipelineLayout.hpp +Generated/VulkanPP/PrivateDataSlot.cpp +Generated/VulkanPP/PrivateDataSlot.hpp +Generated/VulkanPP/QueryPool.cpp +Generated/VulkanPP/QueryPool.hpp +Generated/VulkanPP/Queue.cpp +Generated/VulkanPP/Queue.hpp +Generated/VulkanPP/RenderPass.cpp +Generated/VulkanPP/RenderPass.hpp +Generated/VulkanPP/Sampler.cpp +Generated/VulkanPP/Sampler.hpp +Generated/VulkanPP/SamplerYcbcrConversion.cpp +Generated/VulkanPP/SamplerYcbcrConversion.hpp +Generated/VulkanPP/Semaphore.cpp +Generated/VulkanPP/Semaphore.hpp +Generated/VulkanPP/ShaderEXT.cpp +Generated/VulkanPP/ShaderEXT.hpp +Generated/VulkanPP/ShaderModule.cpp +Generated/VulkanPP/ShaderModule.hpp +Generated/VulkanPP/SurfaceKHR.cpp +Generated/VulkanPP/SurfaceKHR.hpp +Generated/VulkanPP/SwapchainKHR.cpp +Generated/VulkanPP/SwapchainKHR.hpp +Generated/VulkanPP/ValidationCacheEXT.cpp +Generated/VulkanPP/ValidationCacheEXT.hpp +Generated/VulkanPP/VideoSessionKHR.cpp +Generated/VulkanPP/VideoSessionKHR.hpp +Generated/VulkanPP/VideoSessionParametersKHR.cpp +Generated/VulkanPP/VideoSessionParametersKHR.hpp +Generated/VulkanPP/VulkanFunctions.cpp +Generated/VulkanPP/VulkanFunctions.hpp + IntrusivePtr.h - main.cpp RefCountedObject.h - RenderWindow.h - RenderWindowWindows.cpp - ShaderCompiler.h - TempFile.h - VertexShader_unknown.h - VulkanApplicationInfo.h - VulkanBuffer.h - VulkanCommon.h - VulkanDynamicLibrary.h - VulkanFunctions.h - VulkanImageView.h - VulkanInstance.cpp - VulkanInstance.h - VulkanLibrary.cpp - VulkanLibrary.h - VulkanLogicalDevice.cpp - VulkanLogicalDevice.h - VulkanMemory.h - VulkanMemoryProperties.h - VulkanPhysicalDevice.cpp - VulkanPhysicalDevice.h - VulkanQueueFamilyProperties.h - VulkanSemaphore.h - VulkanShaderModule.h - VulkanSwapChain.h - WindowWindows.h - - VulkanDeviceFunctions.h - VulkanInstanceFunctions.h - VulkanGlobalFunctions.h - - Vertex.h - VulkanPipelineLayout.h - VulkanPipelineLayout.cpp - - VulkanPipeline.h - VulkanPipeline.cpp - - VulkanFrameBuffer.h - VulkanFrameBuffer.cpp - - VulkanDescriptorSetLayout.h - VulkanDescriptorSetLayout.cpp - UboPerObjectData.h - - UniformBuffer.h ${Vulkan_INCLUDE_DIR}/../Source/SPIRV-Reflect/spirv_reflect.h ${Vulkan_INCLUDE_DIR}/../Source/SPIRV-Reflect/spirv_reflect.c @@ -76,6 +129,8 @@ INTERFACE target_include_directories(VulkanWrapper INTERFACE + ./ + Generated ${Vulkan_INCLUDE_DIR}/../Source/SPIRV-Reflect ) diff --git a/Src/RenderFramework/Vulkan/Application.cpp b/Src/RenderFramework/Vulkan/Deprecated/Application.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/Application.cpp rename to Src/RenderFramework/Vulkan/Deprecated/Application.cpp diff --git a/Src/RenderFramework/Vulkan/Application.h b/Src/RenderFramework/Vulkan/Deprecated/Application.h similarity index 100% rename from Src/RenderFramework/Vulkan/Application.h rename to Src/RenderFramework/Vulkan/Deprecated/Application.h diff --git a/Src/RenderFramework/Vulkan/FragmentShader_unknown.h b/Src/RenderFramework/Vulkan/Deprecated/FragmentShader_unknown.h similarity index 100% rename from Src/RenderFramework/Vulkan/FragmentShader_unknown.h rename to Src/RenderFramework/Vulkan/Deprecated/FragmentShader_unknown.h diff --git a/Src/RenderFramework/Vulkan/FunctionTraits.h b/Src/RenderFramework/Vulkan/Deprecated/FunctionTraits.h similarity index 100% rename from Src/RenderFramework/Vulkan/FunctionTraits.h rename to Src/RenderFramework/Vulkan/Deprecated/FunctionTraits.h diff --git a/Src/RenderFramework/Vulkan/RenderWindow.h b/Src/RenderFramework/Vulkan/Deprecated/RenderWindow.h similarity index 100% rename from Src/RenderFramework/Vulkan/RenderWindow.h rename to Src/RenderFramework/Vulkan/Deprecated/RenderWindow.h diff --git a/Src/RenderFramework/Vulkan/RenderWindowWindows.cpp b/Src/RenderFramework/Vulkan/Deprecated/RenderWindowWindows.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/RenderWindowWindows.cpp rename to Src/RenderFramework/Vulkan/Deprecated/RenderWindowWindows.cpp diff --git a/Src/RenderFramework/Vulkan/ShaderCompiler.h b/Src/RenderFramework/Vulkan/Deprecated/ShaderCompiler.h similarity index 100% rename from Src/RenderFramework/Vulkan/ShaderCompiler.h rename to Src/RenderFramework/Vulkan/Deprecated/ShaderCompiler.h diff --git a/Src/RenderFramework/Vulkan/TempFile.h b/Src/RenderFramework/Vulkan/Deprecated/TempFile.h similarity index 100% rename from Src/RenderFramework/Vulkan/TempFile.h rename to Src/RenderFramework/Vulkan/Deprecated/TempFile.h diff --git a/Src/RenderFramework/Vulkan/UboPerObjectData.h b/Src/RenderFramework/Vulkan/Deprecated/UboPerObjectData.h similarity index 100% rename from Src/RenderFramework/Vulkan/UboPerObjectData.h rename to Src/RenderFramework/Vulkan/Deprecated/UboPerObjectData.h diff --git a/Src/RenderFramework/Vulkan/UniformBuffer.h b/Src/RenderFramework/Vulkan/Deprecated/UniformBuffer.h similarity index 100% rename from Src/RenderFramework/Vulkan/UniformBuffer.h rename to Src/RenderFramework/Vulkan/Deprecated/UniformBuffer.h diff --git a/Src/RenderFramework/Vulkan/Vertex.h b/Src/RenderFramework/Vulkan/Deprecated/Vertex.h similarity index 100% rename from Src/RenderFramework/Vulkan/Vertex.h rename to Src/RenderFramework/Vulkan/Deprecated/Vertex.h diff --git a/Src/RenderFramework/Vulkan/VertexShader_unknown.h b/Src/RenderFramework/Vulkan/Deprecated/VertexShader_unknown.h similarity index 100% rename from Src/RenderFramework/Vulkan/VertexShader_unknown.h rename to Src/RenderFramework/Vulkan/Deprecated/VertexShader_unknown.h diff --git a/Src/RenderFramework/Vulkan/VulkanApplicationInfo.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanApplicationInfo.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanApplicationInfo.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanApplicationInfo.h diff --git a/Src/RenderFramework/Vulkan/VulkanBuffer.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanBuffer.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanBuffer.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanBuffer.h diff --git a/Src/RenderFramework/Vulkan/VulkanCommon.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanCommon.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanCommon.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanCommon.h diff --git a/Src/RenderFramework/Vulkan/VulkanDescriptorSetLayout.cpp b/Src/RenderFramework/Vulkan/Deprecated/VulkanDescriptorSetLayout.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanDescriptorSetLayout.cpp rename to Src/RenderFramework/Vulkan/Deprecated/VulkanDescriptorSetLayout.cpp diff --git a/Src/RenderFramework/Vulkan/VulkanDescriptorSetLayout.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanDescriptorSetLayout.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanDescriptorSetLayout.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanDescriptorSetLayout.h diff --git a/Src/RenderFramework/Vulkan/VulkanDeviceFunctions.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanDeviceFunctions.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanDeviceFunctions.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanDeviceFunctions.h diff --git a/Src/RenderFramework/Vulkan/VulkanDynamicLibrary.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanDynamicLibrary.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanDynamicLibrary.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanDynamicLibrary.h diff --git a/Src/RenderFramework/Vulkan/VulkanFrameBuffer.cpp b/Src/RenderFramework/Vulkan/Deprecated/VulkanFrameBuffer.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanFrameBuffer.cpp rename to Src/RenderFramework/Vulkan/Deprecated/VulkanFrameBuffer.cpp diff --git a/Src/RenderFramework/Vulkan/VulkanFrameBuffer.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanFrameBuffer.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanFrameBuffer.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanFrameBuffer.h diff --git a/Src/RenderFramework/Vulkan/VulkanFunctions.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanFunctions.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanFunctions.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanFunctions.h diff --git a/Src/RenderFramework/Vulkan/VulkanGlobalFunctions.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanGlobalFunctions.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanGlobalFunctions.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanGlobalFunctions.h diff --git a/Src/RenderFramework/Vulkan/VulkanImageView.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanImageView.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanImageView.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanImageView.h diff --git a/Src/RenderFramework/Vulkan/VulkanInstance.cpp b/Src/RenderFramework/Vulkan/Deprecated/VulkanInstance.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanInstance.cpp rename to Src/RenderFramework/Vulkan/Deprecated/VulkanInstance.cpp diff --git a/Src/RenderFramework/Vulkan/VulkanInstance.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanInstance.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanInstance.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanInstance.h diff --git a/Src/RenderFramework/Vulkan/VulkanInstanceFunctions.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanInstanceFunctions.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanInstanceFunctions.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanInstanceFunctions.h diff --git a/Src/RenderFramework/Vulkan/VulkanLibrary.cpp b/Src/RenderFramework/Vulkan/Deprecated/VulkanLibrary.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanLibrary.cpp rename to Src/RenderFramework/Vulkan/Deprecated/VulkanLibrary.cpp diff --git a/Src/RenderFramework/Vulkan/VulkanLibrary.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanLibrary.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanLibrary.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanLibrary.h diff --git a/Src/RenderFramework/Vulkan/VulkanLogicalDevice.cpp b/Src/RenderFramework/Vulkan/Deprecated/VulkanLogicalDevice.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanLogicalDevice.cpp rename to Src/RenderFramework/Vulkan/Deprecated/VulkanLogicalDevice.cpp diff --git a/Src/RenderFramework/Vulkan/VulkanLogicalDevice.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanLogicalDevice.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanLogicalDevice.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanLogicalDevice.h diff --git a/Src/RenderFramework/Vulkan/VulkanMemory.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanMemory.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanMemory.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanMemory.h diff --git a/Src/RenderFramework/Vulkan/VulkanMemoryProperties.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanMemoryProperties.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanMemoryProperties.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanMemoryProperties.h diff --git a/Src/RenderFramework/Vulkan/VulkanPhysicalDevice.cpp b/Src/RenderFramework/Vulkan/Deprecated/VulkanPhysicalDevice.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanPhysicalDevice.cpp rename to Src/RenderFramework/Vulkan/Deprecated/VulkanPhysicalDevice.cpp diff --git a/Src/RenderFramework/Vulkan/VulkanPhysicalDevice.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanPhysicalDevice.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanPhysicalDevice.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanPhysicalDevice.h diff --git a/Src/RenderFramework/Vulkan/VulkanPipeline.cpp b/Src/RenderFramework/Vulkan/Deprecated/VulkanPipeline.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanPipeline.cpp rename to Src/RenderFramework/Vulkan/Deprecated/VulkanPipeline.cpp diff --git a/Src/RenderFramework/Vulkan/VulkanPipeline.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanPipeline.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanPipeline.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanPipeline.h diff --git a/Src/RenderFramework/Vulkan/VulkanPipelineLayout.cpp b/Src/RenderFramework/Vulkan/Deprecated/VulkanPipelineLayout.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanPipelineLayout.cpp rename to Src/RenderFramework/Vulkan/Deprecated/VulkanPipelineLayout.cpp diff --git a/Src/RenderFramework/Vulkan/VulkanPipelineLayout.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanPipelineLayout.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanPipelineLayout.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanPipelineLayout.h diff --git a/Src/RenderFramework/Vulkan/VulkanQueueFamilyProperties.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanQueueFamilyProperties.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanQueueFamilyProperties.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanQueueFamilyProperties.h diff --git a/Src/RenderFramework/Vulkan/VulkanSemaphore.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanSemaphore.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanSemaphore.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanSemaphore.h diff --git a/Src/RenderFramework/Vulkan/VulkanShaderModule.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanShaderModule.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanShaderModule.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanShaderModule.h diff --git a/Src/RenderFramework/Vulkan/VulkanSwapChain.h b/Src/RenderFramework/Vulkan/Deprecated/VulkanSwapChain.h similarity index 100% rename from Src/RenderFramework/Vulkan/VulkanSwapChain.h rename to Src/RenderFramework/Vulkan/Deprecated/VulkanSwapChain.h diff --git a/Src/RenderFramework/Vulkan/WindowWindows.h b/Src/RenderFramework/Vulkan/Deprecated/WindowWindows.h similarity index 100% rename from Src/RenderFramework/Vulkan/WindowWindows.h rename to Src/RenderFramework/Vulkan/Deprecated/WindowWindows.h diff --git a/Src/RenderFramework/Vulkan/extractAllVulkanFunctions.ps1 b/Src/RenderFramework/Vulkan/Deprecated/extractAllVulkanFunctions.ps1 similarity index 100% rename from Src/RenderFramework/Vulkan/extractAllVulkanFunctions.ps1 rename to Src/RenderFramework/Vulkan/Deprecated/extractAllVulkanFunctions.ps1 diff --git a/Src/RenderFramework/Vulkan/main.cpp b/Src/RenderFramework/Vulkan/Deprecated/main.cpp similarity index 100% rename from Src/RenderFramework/Vulkan/main.cpp rename to Src/RenderFramework/Vulkan/Deprecated/main.cpp diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureKHR.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureKHR.cpp new file mode 100644 index 0000000..c50260a --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureKHR.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + AccelerationStructureKHR::AccelerationStructureKHR(IntrusivePtr owner0, VkAccelerationStructureKHR handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + AccelerationStructureKHR::~AccelerationStructureKHR() { + if (_handle && _owned) { + (void)vk.vkDestroyAccelerationStructureKHR(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateAccelerationStructureKHR +AccelerationStructureKHR::AccelerationStructureKHR(IntrusivePtr parent, const VkAccelerationStructureCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkAccelerationStructureKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateAccelerationStructureKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateAccelerationStructureKHR failed"); + _handle = _out; +} +// Original: vkCreateAccelerationStructureKHR (factory) +IntrusivePtr AccelerationStructureKHR::create(IntrusivePtr parent, const VkAccelerationStructureCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new AccelerationStructureKHR(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureKHR.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureKHR.hpp new file mode 100644 index 0000000..b7f27bb --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureKHR.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkAccelerationStructureKHR +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class AccelerationStructureKHR : public RefCounted { +public: + VkAccelerationStructureKHR getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkAccelerationStructureKHR handle) { + return IntrusivePtr(new AccelerationStructureKHR(owner0, handle, false)); + } +private: + explicit AccelerationStructureKHR(IntrusivePtr owner0, VkAccelerationStructureKHR handle, bool owned); + ~AccelerationStructureKHR() override; +private: + VkAccelerationStructureKHR _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateAccelerationStructureKHR + explicit AccelerationStructureKHR(IntrusivePtr parent, const VkAccelerationStructureCreateInfoKHR* pCreateInfo); +// Original: vkCreateAccelerationStructureKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkAccelerationStructureCreateInfoKHR* pCreateInfo); + +}; +using PAccelerationStructureKHR = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureNV.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureNV.cpp new file mode 100644 index 0000000..ccab52e --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureNV.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + AccelerationStructureNV::AccelerationStructureNV(IntrusivePtr owner0, VkAccelerationStructureNV handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + AccelerationStructureNV::~AccelerationStructureNV() { + if (_handle && _owned) { + (void)vk.vkDestroyAccelerationStructureNV(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateAccelerationStructureNV +AccelerationStructureNV::AccelerationStructureNV(IntrusivePtr parent, const VkAccelerationStructureCreateInfoNV* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkAccelerationStructureNV _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateAccelerationStructureNV(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateAccelerationStructureNV failed"); + _handle = _out; +} +// Original: vkCreateAccelerationStructureNV (factory) +IntrusivePtr AccelerationStructureNV::create(IntrusivePtr parent, const VkAccelerationStructureCreateInfoNV* pCreateInfo) { + return IntrusivePtr(new AccelerationStructureNV(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureNV.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureNV.hpp new file mode 100644 index 0000000..eecae0d --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/AccelerationStructureNV.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkAccelerationStructureNV +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class AccelerationStructureNV : public RefCounted { +public: + VkAccelerationStructureNV getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkAccelerationStructureNV handle) { + return IntrusivePtr(new AccelerationStructureNV(owner0, handle, false)); + } +private: + explicit AccelerationStructureNV(IntrusivePtr owner0, VkAccelerationStructureNV handle, bool owned); + ~AccelerationStructureNV() override; +private: + VkAccelerationStructureNV _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateAccelerationStructureNV + explicit AccelerationStructureNV(IntrusivePtr parent, const VkAccelerationStructureCreateInfoNV* pCreateInfo); +// Original: vkCreateAccelerationStructureNV (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkAccelerationStructureCreateInfoNV* pCreateInfo); + +}; +using PAccelerationStructureNV = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Buffer.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Buffer.cpp new file mode 100644 index 0000000..f6b77f6 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Buffer.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + Buffer::Buffer(IntrusivePtr owner0, VkBuffer handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + Buffer::~Buffer() { + if (_handle && _owned) { + (void)vk.vkDestroyBuffer(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateBuffer +Buffer::Buffer(IntrusivePtr parent, const VkBufferCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkBuffer _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateBuffer(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateBuffer failed"); + _handle = _out; +} +// Original: vkCreateBuffer (factory) +IntrusivePtr Buffer::create(IntrusivePtr parent, const VkBufferCreateInfo* pCreateInfo) { + return IntrusivePtr(new Buffer(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Buffer.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Buffer.hpp new file mode 100644 index 0000000..707b672 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Buffer.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkBuffer +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Buffer : public RefCounted { +public: + VkBuffer getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkBuffer handle) { + return IntrusivePtr(new Buffer(owner0, handle, false)); + } +private: + explicit Buffer(IntrusivePtr owner0, VkBuffer handle, bool owned); + ~Buffer() override; +private: + VkBuffer _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateBuffer + explicit Buffer(IntrusivePtr parent, const VkBufferCreateInfo* pCreateInfo); +// Original: vkCreateBuffer (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkBufferCreateInfo* pCreateInfo); + +}; +using PBuffer = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferCollectionFUCHSIA.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferCollectionFUCHSIA.cpp new file mode 100644 index 0000000..e57c70b --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferCollectionFUCHSIA.cpp @@ -0,0 +1,37 @@ +#include +#include + + +namespace VulkanPP { + + BufferCollectionFUCHSIA::BufferCollectionFUCHSIA(IntrusivePtr owner0, VkBufferCollectionFUCHSIA handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + BufferCollectionFUCHSIA::~BufferCollectionFUCHSIA() { + if (_handle && _owned) { +#if defined(VK_USE_PLATFORM_FUCHSIA) + (void)vk.vkDestroyBufferCollectionFUCHSIA(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; +#endif + } +} + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkCreateBufferCollectionFUCHSIA +BufferCollectionFUCHSIA::BufferCollectionFUCHSIA(IntrusivePtr parent, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkBufferCollectionFUCHSIA _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateBufferCollectionFUCHSIA(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateBufferCollectionFUCHSIA failed"); + _handle = _out; +} +// Original: vkCreateBufferCollectionFUCHSIA (factory) +IntrusivePtr BufferCollectionFUCHSIA::create(IntrusivePtr parent, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo) { + return IntrusivePtr(new BufferCollectionFUCHSIA(parent, pCreateInfo)); +} +#endif + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferCollectionFUCHSIA.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferCollectionFUCHSIA.hpp new file mode 100644 index 0000000..814bafb --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferCollectionFUCHSIA.hpp @@ -0,0 +1,45 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkBufferCollectionFUCHSIA +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class BufferCollectionFUCHSIA : public RefCounted { +public: + VkBufferCollectionFUCHSIA getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkBufferCollectionFUCHSIA handle) { + return IntrusivePtr(new BufferCollectionFUCHSIA(owner0, handle, false)); + } +private: + explicit BufferCollectionFUCHSIA(IntrusivePtr owner0, VkBufferCollectionFUCHSIA handle, bool owned); + ~BufferCollectionFUCHSIA() override; +private: + VkBufferCollectionFUCHSIA _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkCreateBufferCollectionFUCHSIA + explicit BufferCollectionFUCHSIA(IntrusivePtr parent, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo); +// Original: vkCreateBufferCollectionFUCHSIA (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo); +#endif + +}; +using PBufferCollectionFUCHSIA = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferView.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferView.cpp new file mode 100644 index 0000000..62dafcb --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferView.cpp @@ -0,0 +1,36 @@ +#include +#include +#include + + +namespace VulkanPP { + + BufferView::BufferView(IntrusivePtr owner0, VkBufferView handle, bool owned, IntrusivePtr owner_Buffer) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _lifetime_owner_Buffer(std::move(owner_Buffer)) +{ } + + BufferView::~BufferView() { + if (_handle && _owned) { + (void)vk.vkDestroyBufferView(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateBufferView +BufferView::BufferView(IntrusivePtr parent, const VkBufferViewCreateInfo* pCreateInfo, IntrusivePtr owner_Buffer) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) + , _lifetime_owner_Buffer(owner_Buffer) +{ + VkBufferView _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateBufferView(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateBufferView failed"); + _handle = _out; +} +// Original: vkCreateBufferView (factory) +IntrusivePtr BufferView::create(IntrusivePtr parent, const VkBufferViewCreateInfo* pCreateInfo, IntrusivePtr owner_Buffer) { + return IntrusivePtr(new BufferView(parent, pCreateInfo, owner_Buffer)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferView.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferView.hpp new file mode 100644 index 0000000..cb8fb02 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/BufferView.hpp @@ -0,0 +1,46 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Buffer; +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkBufferView +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): Buffer via VkBufferViewCreateInfo::buffer +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class BufferView : public RefCounted { +public: + VkBufferView getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + IntrusivePtr getBuffer() const noexcept { return _lifetime_owner_Buffer; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkBufferView handle) { + return IntrusivePtr(new BufferView(owner0, handle, false, IntrusivePtr())); + } +private: + explicit BufferView(IntrusivePtr owner0, VkBufferView handle, bool owned, IntrusivePtr owner_Buffer); + ~BufferView() override; +private: + VkBufferView _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + IntrusivePtr _lifetime_owner_Buffer; + +public: +// Original: vkCreateBufferView + explicit BufferView(IntrusivePtr parent, const VkBufferViewCreateInfo* pCreateInfo, IntrusivePtr owner_Buffer); +// Original: vkCreateBufferView (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkBufferViewCreateInfo* pCreateInfo, IntrusivePtr owner_Buffer); + +}; +using PBufferView = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandBuffer.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandBuffer.cpp new file mode 100644 index 0000000..0acebcf --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandBuffer.cpp @@ -0,0 +1,1473 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace VulkanPP { + + CommandBuffer::CommandBuffer(IntrusivePtr owner0, IntrusivePtr owner1, VkCommandBuffer handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _owner1(std::move(owner1)) +{ } + + CommandBuffer::~CommandBuffer() { + if (_handle && _owned) { + (void)vk.vkFreeCommandBuffers(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _owner1 ? _owner1->getHandle() : (VkCommandPool)VK_NULL_HANDLE, 0, 1, &_handle); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkAllocateCommandBuffers +std::vector> CommandBuffer::createMany(IntrusivePtr parent, const VkCommandBufferAllocateInfo* pAllocateInfo) { + std::vector _out; + _out.resize(pAllocateInfo->commandBufferCount); + auto _res = vk.vkAllocateCommandBuffers(parent->getHandle(), pAllocateInfo, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkAllocateCommandBuffers failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new CommandBuffer(parent, parent, h, true)); + } + return _ret; +} + +// Original: vkBeginCommandBuffer +VkResult CommandBuffer::begin(const VkCommandBufferBeginInfo* pBeginInfo) { + return vk.vkBeginCommandBuffer(_handle, pBeginInfo); +} + +// Original: vkEndCommandBuffer +VkResult CommandBuffer::end() { + return vk.vkEndCommandBuffer(_handle); +} + +// Original: vkResetCommandBuffer +VkResult CommandBuffer::reset(VkCommandBufferResetFlags flags) { + return vk.vkResetCommandBuffer(_handle, flags); +} + +// Original: vkCmdBindPipeline +void CommandBuffer::bindPipeline(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr pipeline) { + vk.vkCmdBindPipeline(_handle, pipelineBindPoint, pipeline->getHandle()); +} + +// Original: vkCmdSetAttachmentFeedbackLoopEnableEXT +void CommandBuffer::setAttachmentFeedbackLoopEnableEXT(VkImageAspectFlags aspectMask) { + vk.vkCmdSetAttachmentFeedbackLoopEnableEXT(_handle, aspectMask); +} + +// Original: vkCmdSetViewport +void CommandBuffer::setViewport(uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) { + vk.vkCmdSetViewport(_handle, firstViewport, viewportCount, pViewports); +} + +// Original: vkCmdSetScissor +void CommandBuffer::setScissor(uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) { + vk.vkCmdSetScissor(_handle, firstScissor, scissorCount, pScissors); +} + +// Original: vkCmdSetLineWidth +void CommandBuffer::setLineWidth(float lineWidth) { + vk.vkCmdSetLineWidth(_handle, lineWidth); +} + +// Original: vkCmdSetDepthBias +void CommandBuffer::setDepthBias(float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) { + vk.vkCmdSetDepthBias(_handle, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); +} + +// Original: vkCmdSetBlendConstants +void CommandBuffer::setBlendConstants(const float blendConstants) { + vk.vkCmdSetBlendConstants(_handle, blendConstants); +} + +// Original: vkCmdSetDepthBounds +void CommandBuffer::setDepthBounds(float minDepthBounds, float maxDepthBounds) { + vk.vkCmdSetDepthBounds(_handle, minDepthBounds, maxDepthBounds); +} + +// Original: vkCmdSetStencilCompareMask +void CommandBuffer::setStencilCompareMask(VkStencilFaceFlags faceMask, uint32_t compareMask) { + vk.vkCmdSetStencilCompareMask(_handle, faceMask, compareMask); +} + +// Original: vkCmdSetStencilWriteMask +void CommandBuffer::setStencilWriteMask(VkStencilFaceFlags faceMask, uint32_t writeMask) { + vk.vkCmdSetStencilWriteMask(_handle, faceMask, writeMask); +} + +// Original: vkCmdSetStencilReference +void CommandBuffer::setStencilReference(VkStencilFaceFlags faceMask, uint32_t reference) { + vk.vkCmdSetStencilReference(_handle, faceMask, reference); +} + +// Original: vkCmdBindDescriptorSets +void CommandBuffer::bindDescriptorSets(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t firstSet, uint32_t descriptorSetCount, const std::vector>& pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) { + std::vector _raw_pDescriptorSets; _raw_pDescriptorSets.reserve(pDescriptorSets.size()); + for (auto const& it : pDescriptorSets) _raw_pDescriptorSets.push_back(it->getHandle()); + vk.vkCmdBindDescriptorSets(_handle, pipelineBindPoint, layout->getHandle(), firstSet, descriptorSetCount, pDescriptorSets.size(), _raw_pDescriptorSets.data(), dynamicOffsetCount, pDynamicOffsets); +} + +// Original: vkCmdBindIndexBuffer +void CommandBuffer::bindIndexBuffer(IntrusivePtr buffer, VkDeviceSize offset, VkIndexType indexType) { + vk.vkCmdBindIndexBuffer(_handle, buffer->getHandle(), offset, indexType); +} + +// Original: vkCmdBindVertexBuffers +void CommandBuffer::bindVertexBuffers(uint32_t firstBinding, uint32_t bindingCount, const std::vector>& pBuffers, const VkDeviceSize* pOffsets) { + std::vector _raw_pBuffers; _raw_pBuffers.reserve(pBuffers.size()); + for (auto const& it : pBuffers) _raw_pBuffers.push_back(it->getHandle()); + vk.vkCmdBindVertexBuffers(_handle, firstBinding, bindingCount, pBuffers.size(), _raw_pBuffers.data(), pOffsets); +} + +// Original: vkCmdDraw +void CommandBuffer::draw(uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) { + vk.vkCmdDraw(_handle, vertexCount, instanceCount, firstVertex, firstInstance); +} + +// Original: vkCmdDrawIndexed +void CommandBuffer::drawIndexed(uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) { + vk.vkCmdDrawIndexed(_handle, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); +} + +// Original: vkCmdDrawMultiEXT +void CommandBuffer::drawMultiEXT(uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride) { + vk.vkCmdDrawMultiEXT(_handle, drawCount, pVertexInfo, instanceCount, firstInstance, stride); +} + +// Original: vkCmdDrawMultiIndexedEXT +void CommandBuffer::drawMultiIndexedEXT(uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset) { + vk.vkCmdDrawMultiIndexedEXT(_handle, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset); +} + +// Original: vkCmdDrawIndirect +void CommandBuffer::drawIndirect(IntrusivePtr buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { + vk.vkCmdDrawIndirect(_handle, buffer->getHandle(), offset, drawCount, stride); +} + +// Original: vkCmdDrawIndexedIndirect +void CommandBuffer::drawIndexedIndirect(IntrusivePtr buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { + vk.vkCmdDrawIndexedIndirect(_handle, buffer->getHandle(), offset, drawCount, stride); +} + +// Original: vkCmdDispatch +void CommandBuffer::dispatch(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { + vk.vkCmdDispatch(_handle, groupCountX, groupCountY, groupCountZ); +} + +// Original: vkCmdDispatchIndirect +void CommandBuffer::dispatchIndirect(IntrusivePtr buffer, VkDeviceSize offset) { + vk.vkCmdDispatchIndirect(_handle, buffer->getHandle(), offset); +} + +// Original: vkCmdSubpassShadingHUAWEI +void CommandBuffer::subpassShadingHUAWEI() { + vk.vkCmdSubpassShadingHUAWEI(_handle); +} + +// Original: vkCmdDrawClusterHUAWEI +void CommandBuffer::drawClusterHUAWEI(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { + vk.vkCmdDrawClusterHUAWEI(_handle, groupCountX, groupCountY, groupCountZ); +} + +// Original: vkCmdDrawClusterIndirectHUAWEI +void CommandBuffer::drawClusterIndirectHUAWEI(IntrusivePtr buffer, VkDeviceSize offset) { + vk.vkCmdDrawClusterIndirectHUAWEI(_handle, buffer->getHandle(), offset); +} + +// Original: vkCmdUpdatePipelineIndirectBufferNV +void CommandBuffer::updatePipelineIndirectBufferNV(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr pipeline) { + vk.vkCmdUpdatePipelineIndirectBufferNV(_handle, pipelineBindPoint, pipeline->getHandle()); +} + +// Original: vkCmdCopyBuffer +void CommandBuffer::copyBuffer(IntrusivePtr srcBuffer, IntrusivePtr dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) { + vk.vkCmdCopyBuffer(_handle, srcBuffer->getHandle(), dstBuffer->getHandle(), regionCount, pRegions); +} + +// Original: vkCmdCopyImage +void CommandBuffer::copyImage(IntrusivePtr srcImage, VkImageLayout srcImageLayout, IntrusivePtr dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) { + vk.vkCmdCopyImage(_handle, srcImage->getHandle(), srcImageLayout, dstImage->getHandle(), dstImageLayout, regionCount, pRegions); +} + +// Original: vkCmdBlitImage +void CommandBuffer::blitImage(IntrusivePtr srcImage, VkImageLayout srcImageLayout, IntrusivePtr dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) { + vk.vkCmdBlitImage(_handle, srcImage->getHandle(), srcImageLayout, dstImage->getHandle(), dstImageLayout, regionCount, pRegions, filter); +} + +// Original: vkCmdCopyBufferToImage +void CommandBuffer::copyBufferToImage(IntrusivePtr srcBuffer, IntrusivePtr dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) { + vk.vkCmdCopyBufferToImage(_handle, srcBuffer->getHandle(), dstImage->getHandle(), dstImageLayout, regionCount, pRegions); +} + +// Original: vkCmdCopyImageToBuffer +void CommandBuffer::copyImageToBuffer(IntrusivePtr srcImage, VkImageLayout srcImageLayout, IntrusivePtr dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) { + vk.vkCmdCopyImageToBuffer(_handle, srcImage->getHandle(), srcImageLayout, dstBuffer->getHandle(), regionCount, pRegions); +} + +// Original: vkCmdCopyMemoryIndirectNV +void CommandBuffer::copyMemoryIndirectNV(VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride) { + vk.vkCmdCopyMemoryIndirectNV(_handle, copyBufferAddress, copyCount, stride); +} + +// Original: vkCmdCopyMemoryToImageIndirectNV +void CommandBuffer::copyMemoryToImageIndirectNV(VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, IntrusivePtr dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources) { + vk.vkCmdCopyMemoryToImageIndirectNV(_handle, copyBufferAddress, copyCount, stride, dstImage->getHandle(), dstImageLayout, pImageSubresources); +} + +// Original: vkCmdUpdateBuffer +void CommandBuffer::updateBuffer(IntrusivePtr dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) { + vk.vkCmdUpdateBuffer(_handle, dstBuffer->getHandle(), dstOffset, dataSize, pData); +} + +// Original: vkCmdFillBuffer +void CommandBuffer::fillBuffer(IntrusivePtr dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) { + vk.vkCmdFillBuffer(_handle, dstBuffer->getHandle(), dstOffset, size, data); +} + +// Original: vkCmdClearColorImage +void CommandBuffer::clearColorImage(IntrusivePtr image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { + vk.vkCmdClearColorImage(_handle, image->getHandle(), imageLayout, pColor, rangeCount, pRanges); +} + +// Original: vkCmdClearDepthStencilImage +void CommandBuffer::clearDepthStencilImage(IntrusivePtr image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { + vk.vkCmdClearDepthStencilImage(_handle, image->getHandle(), imageLayout, pDepthStencil, rangeCount, pRanges); +} + +// Original: vkCmdClearAttachments +void CommandBuffer::clearAttachments(uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) { + vk.vkCmdClearAttachments(_handle, attachmentCount, pAttachments, rectCount, pRects); +} + +// Original: vkCmdResolveImage +void CommandBuffer::resolveImage(IntrusivePtr srcImage, VkImageLayout srcImageLayout, IntrusivePtr dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) { + vk.vkCmdResolveImage(_handle, srcImage->getHandle(), srcImageLayout, dstImage->getHandle(), dstImageLayout, regionCount, pRegions); +} + +// Original: vkCmdSetEvent +void CommandBuffer::setEvent(IntrusivePtr event, VkPipelineStageFlags stageMask) { + vk.vkCmdSetEvent(_handle, event->getHandle(), stageMask); +} + +// Original: vkCmdResetEvent +void CommandBuffer::resetEvent(IntrusivePtr event, VkPipelineStageFlags stageMask) { + vk.vkCmdResetEvent(_handle, event->getHandle(), stageMask); +} + +// Original: vkCmdWaitEvents +void CommandBuffer::waitEvents(uint32_t eventCount, const std::vector>& pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) { + std::vector _raw_pEvents; _raw_pEvents.reserve(pEvents.size()); + for (auto const& it : pEvents) _raw_pEvents.push_back(it->getHandle()); + vk.vkCmdWaitEvents(_handle, eventCount, pEvents.size(), _raw_pEvents.data(), srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); +} + +// Original: vkCmdPipelineBarrier +void CommandBuffer::pipelineBarrier(VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) { + vk.vkCmdPipelineBarrier(_handle, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); +} + +// Original: vkCmdBeginQuery +void CommandBuffer::beginQuery(IntrusivePtr queryPool, uint32_t query, VkQueryControlFlags flags) { + vk.vkCmdBeginQuery(_handle, queryPool->getHandle(), query, flags); +} + +// Original: vkCmdEndQuery +void CommandBuffer::endQuery(IntrusivePtr queryPool, uint32_t query) { + vk.vkCmdEndQuery(_handle, queryPool->getHandle(), query); +} + +// Original: vkCmdBeginConditionalRenderingEXT +void CommandBuffer::beginConditionalRenderingEXT(const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) { + vk.vkCmdBeginConditionalRenderingEXT(_handle, pConditionalRenderingBegin); +} + +// Original: vkCmdEndConditionalRenderingEXT +void CommandBuffer::endConditionalRenderingEXT() { + vk.vkCmdEndConditionalRenderingEXT(_handle); +} + +// Original: vkCmdResetQueryPool +void CommandBuffer::resetQueryPool(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount) { + vk.vkCmdResetQueryPool(_handle, queryPool->getHandle(), firstQuery, queryCount); +} + +// Original: vkCmdWriteTimestamp +void CommandBuffer::writeTimestamp(VkPipelineStageFlagBits pipelineStage, IntrusivePtr queryPool, uint32_t query) { + vk.vkCmdWriteTimestamp(_handle, pipelineStage, queryPool->getHandle(), query); +} + +// Original: vkCmdCopyQueryPoolResults +void CommandBuffer::copyQueryPoolResults(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount, IntrusivePtr dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) { + vk.vkCmdCopyQueryPoolResults(_handle, queryPool->getHandle(), firstQuery, queryCount, dstBuffer->getHandle(), dstOffset, stride, flags); +} + +// Original: vkCmdPushConstants +void CommandBuffer::pushConstants(IntrusivePtr layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) { + vk.vkCmdPushConstants(_handle, layout->getHandle(), stageFlags, offset, size, pValues); +} + +// Original: vkCmdBeginRenderPass +void CommandBuffer::beginRenderPass(const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) { + vk.vkCmdBeginRenderPass(_handle, pRenderPassBegin, contents); +} + +// Original: vkCmdNextSubpass +void CommandBuffer::nextSubpass(VkSubpassContents contents) { + vk.vkCmdNextSubpass(_handle, contents); +} + +// Original: vkCmdEndRenderPass +void CommandBuffer::endRenderPass() { + vk.vkCmdEndRenderPass(_handle); +} + +// Original: vkCmdExecuteCommands +void CommandBuffer::executeCommands(uint32_t commandBufferCount, const std::vector>& pCommandBuffers) { + std::vector _raw_pCommandBuffers; _raw_pCommandBuffers.reserve(pCommandBuffers.size()); + for (auto const& it : pCommandBuffers) _raw_pCommandBuffers.push_back(it->getHandle()); + vk.vkCmdExecuteCommands(_handle, commandBufferCount, pCommandBuffers.size(), _raw_pCommandBuffers.data()); +} + +// Original: vkCmdDebugMarkerBeginEXT +void CommandBuffer::debugMarkerBeginEXT(const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { + vk.vkCmdDebugMarkerBeginEXT(_handle, pMarkerInfo); +} + +// Original: vkCmdDebugMarkerEndEXT +void CommandBuffer::debugMarkerEndEXT() { + vk.vkCmdDebugMarkerEndEXT(_handle); +} + +// Original: vkCmdDebugMarkerInsertEXT +void CommandBuffer::debugMarkerInsertEXT(const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { + vk.vkCmdDebugMarkerInsertEXT(_handle, pMarkerInfo); +} + +// Original: vkCmdExecuteGeneratedCommandsNV +void CommandBuffer::executeGeneratedCommandsNV(VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) { + vk.vkCmdExecuteGeneratedCommandsNV(_handle, isPreprocessed, pGeneratedCommandsInfo); +} + +// Original: vkCmdPreprocessGeneratedCommandsNV +void CommandBuffer::preprocessGeneratedCommandsNV(const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) { + vk.vkCmdPreprocessGeneratedCommandsNV(_handle, pGeneratedCommandsInfo); +} + +// Original: vkCmdBindPipelineShaderGroupNV +void CommandBuffer::bindPipelineShaderGroupNV(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr pipeline, uint32_t groupIndex) { + vk.vkCmdBindPipelineShaderGroupNV(_handle, pipelineBindPoint, pipeline->getHandle(), groupIndex); +} + +// Original: vkCmdExecuteGeneratedCommandsEXT +void CommandBuffer::executeGeneratedCommandsEXT(VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo) { + vk.vkCmdExecuteGeneratedCommandsEXT(_handle, isPreprocessed, pGeneratedCommandsInfo); +} + +// Original: vkCmdPreprocessGeneratedCommandsEXT +void CommandBuffer::preprocessGeneratedCommandsEXT(const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, IntrusivePtr stateCommandBuffer) { + vk.vkCmdPreprocessGeneratedCommandsEXT(_handle, pGeneratedCommandsInfo, stateCommandBuffer->getHandle()); +} + +// Original: vkCmdPushDescriptorSet +void CommandBuffer::pushDescriptorSet(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) { + vk.vkCmdPushDescriptorSet(_handle, pipelineBindPoint, layout->getHandle(), set, descriptorWriteCount, pDescriptorWrites); +} + +// Original: vkCmdPushDescriptorSetKHR +void CommandBuffer::pushDescriptorSetKHR(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) { + vk.vkCmdPushDescriptorSetKHR(_handle, pipelineBindPoint, layout->getHandle(), set, descriptorWriteCount, pDescriptorWrites); +} + +// Original: vkCmdSetDeviceMask +void CommandBuffer::setDeviceMask(uint32_t deviceMask) { + vk.vkCmdSetDeviceMask(_handle, deviceMask); +} + +// Original: vkCmdSetDeviceMaskKHR +void CommandBuffer::setDeviceMaskKHR(uint32_t deviceMask) { + vk.vkCmdSetDeviceMaskKHR(_handle, deviceMask); +} + +// Original: vkCmdDispatchBase +void CommandBuffer::dispatchBase(uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { + vk.vkCmdDispatchBase(_handle, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); +} + +// Original: vkCmdDispatchBaseKHR +void CommandBuffer::dispatchBaseKHR(uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { + vk.vkCmdDispatchBaseKHR(_handle, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); +} + +// Original: vkCmdPushDescriptorSetWithTemplate +void CommandBuffer::pushDescriptorSetWithTemplate(IntrusivePtr descriptorUpdateTemplate, IntrusivePtr layout, uint32_t set, const void* pData) { + vk.vkCmdPushDescriptorSetWithTemplate(_handle, descriptorUpdateTemplate->getHandle(), layout->getHandle(), set, pData); +} + +// Original: vkCmdPushDescriptorSetWithTemplateKHR +void CommandBuffer::pushDescriptorSetWithTemplateKHR(IntrusivePtr descriptorUpdateTemplate, IntrusivePtr layout, uint32_t set, const void* pData) { + vk.vkCmdPushDescriptorSetWithTemplateKHR(_handle, descriptorUpdateTemplate->getHandle(), layout->getHandle(), set, pData); +} + +// Original: vkCmdSetViewportWScalingNV +void CommandBuffer::setViewportWScalingNV(uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) { + vk.vkCmdSetViewportWScalingNV(_handle, firstViewport, viewportCount, pViewportWScalings); +} + +// Original: vkCmdSetDiscardRectangleEXT +void CommandBuffer::setDiscardRectangleEXT(uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) { + vk.vkCmdSetDiscardRectangleEXT(_handle, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles); +} + +// Original: vkCmdSetDiscardRectangleEnableEXT +void CommandBuffer::setDiscardRectangleEnableEXT(VkBool32 discardRectangleEnable) { + vk.vkCmdSetDiscardRectangleEnableEXT(_handle, discardRectangleEnable); +} + +// Original: vkCmdSetDiscardRectangleModeEXT +void CommandBuffer::setDiscardRectangleModeEXT(VkDiscardRectangleModeEXT discardRectangleMode) { + vk.vkCmdSetDiscardRectangleModeEXT(_handle, discardRectangleMode); +} + +// Original: vkCmdSetSampleLocationsEXT +void CommandBuffer::setSampleLocationsEXT(const VkSampleLocationsInfoEXT* pSampleLocationsInfo) { + vk.vkCmdSetSampleLocationsEXT(_handle, pSampleLocationsInfo); +} + +// Original: vkCmdBeginDebugUtilsLabelEXT +void CommandBuffer::beginDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* pLabelInfo) { + vk.vkCmdBeginDebugUtilsLabelEXT(_handle, pLabelInfo); +} + +// Original: vkCmdEndDebugUtilsLabelEXT +void CommandBuffer::endDebugUtilsLabelEXT() { + vk.vkCmdEndDebugUtilsLabelEXT(_handle); +} + +// Original: vkCmdInsertDebugUtilsLabelEXT +void CommandBuffer::insertDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* pLabelInfo) { + vk.vkCmdInsertDebugUtilsLabelEXT(_handle, pLabelInfo); +} + +// Original: vkCmdWriteBufferMarkerAMD +void CommandBuffer::writeBufferMarkerAMD(VkPipelineStageFlagBits pipelineStage, IntrusivePtr dstBuffer, VkDeviceSize dstOffset, uint32_t marker) { + vk.vkCmdWriteBufferMarkerAMD(_handle, pipelineStage, dstBuffer->getHandle(), dstOffset, marker); +} + +// Original: vkCmdBeginRenderPass2 +void CommandBuffer::beginRenderPass2(const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) { + vk.vkCmdBeginRenderPass2(_handle, pRenderPassBegin, pSubpassBeginInfo); +} + +// Original: vkCmdBeginRenderPass2KHR +void CommandBuffer::beginRenderPass2KHR(const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) { + vk.vkCmdBeginRenderPass2KHR(_handle, pRenderPassBegin, pSubpassBeginInfo); +} + +// Original: vkCmdNextSubpass2 +void CommandBuffer::nextSubpass2(const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) { + vk.vkCmdNextSubpass2(_handle, pSubpassBeginInfo, pSubpassEndInfo); +} + +// Original: vkCmdNextSubpass2KHR +void CommandBuffer::nextSubpass2KHR(const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) { + vk.vkCmdNextSubpass2KHR(_handle, pSubpassBeginInfo, pSubpassEndInfo); +} + +// Original: vkCmdEndRenderPass2 +void CommandBuffer::endRenderPass2(const VkSubpassEndInfo* pSubpassEndInfo) { + vk.vkCmdEndRenderPass2(_handle, pSubpassEndInfo); +} + +// Original: vkCmdEndRenderPass2KHR +void CommandBuffer::endRenderPass2KHR(const VkSubpassEndInfo* pSubpassEndInfo) { + vk.vkCmdEndRenderPass2KHR(_handle, pSubpassEndInfo); +} + +// Original: vkCmdDrawIndirectCount +void CommandBuffer::drawIndirectCount(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { + vk.vkCmdDrawIndirectCount(_handle, buffer->getHandle(), offset, countBuffer->getHandle(), countBufferOffset, maxDrawCount, stride); +} + +// Original: vkCmdDrawIndirectCountKHR +void CommandBuffer::drawIndirectCountKHR(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { + vk.vkCmdDrawIndirectCountKHR(_handle, buffer->getHandle(), offset, countBuffer->getHandle(), countBufferOffset, maxDrawCount, stride); +} + +// Original: vkCmdDrawIndirectCountAMD +void CommandBuffer::drawIndirectCountAMD(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { + vk.vkCmdDrawIndirectCountAMD(_handle, buffer->getHandle(), offset, countBuffer->getHandle(), countBufferOffset, maxDrawCount, stride); +} + +// Original: vkCmdDrawIndexedIndirectCount +void CommandBuffer::drawIndexedIndirectCount(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { + vk.vkCmdDrawIndexedIndirectCount(_handle, buffer->getHandle(), offset, countBuffer->getHandle(), countBufferOffset, maxDrawCount, stride); +} + +// Original: vkCmdDrawIndexedIndirectCountKHR +void CommandBuffer::drawIndexedIndirectCountKHR(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { + vk.vkCmdDrawIndexedIndirectCountKHR(_handle, buffer->getHandle(), offset, countBuffer->getHandle(), countBufferOffset, maxDrawCount, stride); +} + +// Original: vkCmdDrawIndexedIndirectCountAMD +void CommandBuffer::drawIndexedIndirectCountAMD(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { + vk.vkCmdDrawIndexedIndirectCountAMD(_handle, buffer->getHandle(), offset, countBuffer->getHandle(), countBufferOffset, maxDrawCount, stride); +} + +// Original: vkCmdSetCheckpointNV +void CommandBuffer::setCheckpointNV(const void* pCheckpointMarker) { + vk.vkCmdSetCheckpointNV(_handle, pCheckpointMarker); +} + +// Original: vkCmdBindTransformFeedbackBuffersEXT +void CommandBuffer::bindTransformFeedbackBuffersEXT(uint32_t firstBinding, uint32_t bindingCount, const std::vector>& pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) { + std::vector _raw_pBuffers; _raw_pBuffers.reserve(pBuffers.size()); + for (auto const& it : pBuffers) _raw_pBuffers.push_back(it->getHandle()); + vk.vkCmdBindTransformFeedbackBuffersEXT(_handle, firstBinding, bindingCount, pBuffers.size(), _raw_pBuffers.data(), pOffsets, pSizes); +} + +// Original: vkCmdBeginTransformFeedbackEXT +void CommandBuffer::beginTransformFeedbackEXT(uint32_t firstCounterBuffer, uint32_t counterBufferCount, const std::vector>& pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) { + std::vector _raw_pCounterBuffers; _raw_pCounterBuffers.reserve(pCounterBuffers.size()); + for (auto const& it : pCounterBuffers) _raw_pCounterBuffers.push_back(it->getHandle()); + vk.vkCmdBeginTransformFeedbackEXT(_handle, firstCounterBuffer, counterBufferCount, pCounterBuffers.size(), _raw_pCounterBuffers.data(), pCounterBufferOffsets); +} + +// Original: vkCmdEndTransformFeedbackEXT +void CommandBuffer::endTransformFeedbackEXT(uint32_t firstCounterBuffer, uint32_t counterBufferCount, const std::vector>& pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) { + std::vector _raw_pCounterBuffers; _raw_pCounterBuffers.reserve(pCounterBuffers.size()); + for (auto const& it : pCounterBuffers) _raw_pCounterBuffers.push_back(it->getHandle()); + vk.vkCmdEndTransformFeedbackEXT(_handle, firstCounterBuffer, counterBufferCount, pCounterBuffers.size(), _raw_pCounterBuffers.data(), pCounterBufferOffsets); +} + +// Original: vkCmdBeginQueryIndexedEXT +void CommandBuffer::beginQueryIndexedEXT(IntrusivePtr queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) { + vk.vkCmdBeginQueryIndexedEXT(_handle, queryPool->getHandle(), query, flags, index); +} + +// Original: vkCmdEndQueryIndexedEXT +void CommandBuffer::endQueryIndexedEXT(IntrusivePtr queryPool, uint32_t query, uint32_t index) { + vk.vkCmdEndQueryIndexedEXT(_handle, queryPool->getHandle(), query, index); +} + +// Original: vkCmdDrawIndirectByteCountEXT +void CommandBuffer::drawIndirectByteCountEXT(uint32_t instanceCount, uint32_t firstInstance, IntrusivePtr counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) { + vk.vkCmdDrawIndirectByteCountEXT(_handle, instanceCount, firstInstance, counterBuffer->getHandle(), counterBufferOffset, counterOffset, vertexStride); +} + +// Original: vkCmdSetExclusiveScissorNV +void CommandBuffer::setExclusiveScissorNV(uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors) { + vk.vkCmdSetExclusiveScissorNV(_handle, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors); +} + +// Original: vkCmdSetExclusiveScissorEnableNV +void CommandBuffer::setExclusiveScissorEnableNV(uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables) { + vk.vkCmdSetExclusiveScissorEnableNV(_handle, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables); +} + +// Original: vkCmdBindShadingRateImageNV +void CommandBuffer::bindShadingRateImageNV(IntrusivePtr imageView, VkImageLayout imageLayout) { + vk.vkCmdBindShadingRateImageNV(_handle, imageView->getHandle(), imageLayout); +} + +// Original: vkCmdSetViewportShadingRatePaletteNV +void CommandBuffer::setViewportShadingRatePaletteNV(uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes) { + vk.vkCmdSetViewportShadingRatePaletteNV(_handle, firstViewport, viewportCount, pShadingRatePalettes); +} + +// Original: vkCmdSetCoarseSampleOrderNV +void CommandBuffer::setCoarseSampleOrderNV(VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) { + vk.vkCmdSetCoarseSampleOrderNV(_handle, sampleOrderType, customSampleOrderCount, pCustomSampleOrders); +} + +// Original: vkCmdDrawMeshTasksNV +void CommandBuffer::drawMeshTasksNV(uint32_t taskCount, uint32_t firstTask) { + vk.vkCmdDrawMeshTasksNV(_handle, taskCount, firstTask); +} + +// Original: vkCmdDrawMeshTasksIndirectNV +void CommandBuffer::drawMeshTasksIndirectNV(IntrusivePtr buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { + vk.vkCmdDrawMeshTasksIndirectNV(_handle, buffer->getHandle(), offset, drawCount, stride); +} + +// Original: vkCmdDrawMeshTasksIndirectCountNV +void CommandBuffer::drawMeshTasksIndirectCountNV(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { + vk.vkCmdDrawMeshTasksIndirectCountNV(_handle, buffer->getHandle(), offset, countBuffer->getHandle(), countBufferOffset, maxDrawCount, stride); +} + +// Original: vkCmdDrawMeshTasksEXT +void CommandBuffer::drawMeshTasksEXT(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { + vk.vkCmdDrawMeshTasksEXT(_handle, groupCountX, groupCountY, groupCountZ); +} + +// Original: vkCmdDrawMeshTasksIndirectEXT +void CommandBuffer::drawMeshTasksIndirectEXT(IntrusivePtr buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { + vk.vkCmdDrawMeshTasksIndirectEXT(_handle, buffer->getHandle(), offset, drawCount, stride); +} + +// Original: vkCmdDrawMeshTasksIndirectCountEXT +void CommandBuffer::drawMeshTasksIndirectCountEXT(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) { + vk.vkCmdDrawMeshTasksIndirectCountEXT(_handle, buffer->getHandle(), offset, countBuffer->getHandle(), countBufferOffset, maxDrawCount, stride); +} + +// Original: vkCmdBindInvocationMaskHUAWEI +void CommandBuffer::bindInvocationMaskHUAWEI(IntrusivePtr imageView, VkImageLayout imageLayout) { + vk.vkCmdBindInvocationMaskHUAWEI(_handle, imageView->getHandle(), imageLayout); +} + +// Original: vkCmdCopyAccelerationStructureNV +void CommandBuffer::copyAccelerationStructureNV(IntrusivePtr dst, IntrusivePtr src, VkCopyAccelerationStructureModeKHR mode) { + vk.vkCmdCopyAccelerationStructureNV(_handle, dst->getHandle(), src->getHandle(), mode); +} + +// Original: vkCmdCopyAccelerationStructureKHR +void CommandBuffer::copyAccelerationStructureKHR(const VkCopyAccelerationStructureInfoKHR* pInfo) { + vk.vkCmdCopyAccelerationStructureKHR(_handle, pInfo); +} + +// Original: vkCmdCopyAccelerationStructureToMemoryKHR +void CommandBuffer::copyAccelerationStructureToMemoryKHR(const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) { + vk.vkCmdCopyAccelerationStructureToMemoryKHR(_handle, pInfo); +} + +// Original: vkCmdCopyMemoryToAccelerationStructureKHR +void CommandBuffer::copyMemoryToAccelerationStructureKHR(const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) { + vk.vkCmdCopyMemoryToAccelerationStructureKHR(_handle, pInfo); +} + +// Original: vkCmdWriteAccelerationStructuresPropertiesKHR +void CommandBuffer::writeAccelerationStructuresPropertiesKHR(uint32_t accelerationStructureCount, const std::vector>& pAccelerationStructures, VkQueryType queryType, IntrusivePtr queryPool, uint32_t firstQuery) { + std::vector _raw_pAccelerationStructures; _raw_pAccelerationStructures.reserve(pAccelerationStructures.size()); + for (auto const& it : pAccelerationStructures) _raw_pAccelerationStructures.push_back(it->getHandle()); + vk.vkCmdWriteAccelerationStructuresPropertiesKHR(_handle, accelerationStructureCount, pAccelerationStructures.size(), _raw_pAccelerationStructures.data(), queryType, queryPool->getHandle(), firstQuery); +} + +// Original: vkCmdWriteAccelerationStructuresPropertiesNV +void CommandBuffer::writeAccelerationStructuresPropertiesNV(uint32_t accelerationStructureCount, const std::vector>& pAccelerationStructures, VkQueryType queryType, IntrusivePtr queryPool, uint32_t firstQuery) { + std::vector _raw_pAccelerationStructures; _raw_pAccelerationStructures.reserve(pAccelerationStructures.size()); + for (auto const& it : pAccelerationStructures) _raw_pAccelerationStructures.push_back(it->getHandle()); + vk.vkCmdWriteAccelerationStructuresPropertiesNV(_handle, accelerationStructureCount, pAccelerationStructures.size(), _raw_pAccelerationStructures.data(), queryType, queryPool->getHandle(), firstQuery); +} + +// Original: vkCmdBuildAccelerationStructureNV +void CommandBuffer::buildAccelerationStructureNV(const VkAccelerationStructureInfoNV* pInfo, IntrusivePtr instanceData, VkDeviceSize instanceOffset, VkBool32 update, IntrusivePtr dst, IntrusivePtr src, IntrusivePtr scratch, VkDeviceSize scratchOffset) { + vk.vkCmdBuildAccelerationStructureNV(_handle, pInfo, instanceData->getHandle(), instanceOffset, update, dst->getHandle(), src->getHandle(), scratch->getHandle(), scratchOffset); +} + +// Original: vkCmdTraceRaysKHR +void CommandBuffer::traceRaysKHR(const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth) { + vk.vkCmdTraceRaysKHR(_handle, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth); +} + +// Original: vkCmdTraceRaysNV +void CommandBuffer::traceRaysNV(IntrusivePtr raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, IntrusivePtr missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, IntrusivePtr hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, IntrusivePtr callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth) { + vk.vkCmdTraceRaysNV(_handle, raygenShaderBindingTableBuffer->getHandle(), raygenShaderBindingOffset, missShaderBindingTableBuffer->getHandle(), missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer->getHandle(), hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer->getHandle(), callableShaderBindingOffset, callableShaderBindingStride, width, height, depth); +} + +// Original: vkCmdTraceRaysIndirectKHR +void CommandBuffer::traceRaysIndirectKHR(const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) { + vk.vkCmdTraceRaysIndirectKHR(_handle, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress); +} + +// Original: vkCmdTraceRaysIndirect2KHR +void CommandBuffer::traceRaysIndirect2KHR(VkDeviceAddress indirectDeviceAddress) { + vk.vkCmdTraceRaysIndirect2KHR(_handle, indirectDeviceAddress); +} + +// Original: vkCmdBuildClusterAccelerationStructureIndirectNV +void CommandBuffer::buildClusterAccelerationStructureIndirectNV(const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) { + vk.vkCmdBuildClusterAccelerationStructureIndirectNV(_handle, pCommandInfos); +} + +// Original: vkCmdSetRayTracingPipelineStackSizeKHR +void CommandBuffer::setRayTracingPipelineStackSizeKHR(uint32_t pipelineStackSize) { + vk.vkCmdSetRayTracingPipelineStackSizeKHR(_handle, pipelineStackSize); +} + +// Original: vkCmdSetPerformanceMarkerINTEL +VkResult CommandBuffer::setPerformanceMarkerINTEL(const VkPerformanceMarkerInfoINTEL* pMarkerInfo) { + return vk.vkCmdSetPerformanceMarkerINTEL(_handle, pMarkerInfo); +} + +// Original: vkCmdSetPerformanceStreamMarkerINTEL +VkResult CommandBuffer::setPerformanceStreamMarkerINTEL(const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) { + return vk.vkCmdSetPerformanceStreamMarkerINTEL(_handle, pMarkerInfo); +} + +// Original: vkCmdSetPerformanceOverrideINTEL +VkResult CommandBuffer::setPerformanceOverrideINTEL(const VkPerformanceOverrideInfoINTEL* pOverrideInfo) { + return vk.vkCmdSetPerformanceOverrideINTEL(_handle, pOverrideInfo); +} + +// Original: vkCmdSetLineStipple +void CommandBuffer::setLineStipple(uint32_t lineStippleFactor, uint16_t lineStipplePattern) { + vk.vkCmdSetLineStipple(_handle, lineStippleFactor, lineStipplePattern); +} + +// Original: vkCmdSetLineStippleKHR +void CommandBuffer::setLineStippleKHR(uint32_t lineStippleFactor, uint16_t lineStipplePattern) { + vk.vkCmdSetLineStippleKHR(_handle, lineStippleFactor, lineStipplePattern); +} + +// Original: vkCmdSetLineStippleEXT +void CommandBuffer::setLineStippleEXT(uint32_t lineStippleFactor, uint16_t lineStipplePattern) { + vk.vkCmdSetLineStippleEXT(_handle, lineStippleFactor, lineStipplePattern); +} + +// Original: vkCmdBuildAccelerationStructuresKHR +void CommandBuffer::buildAccelerationStructuresKHR(uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* ppBuildRangeInfos) { + vk.vkCmdBuildAccelerationStructuresKHR(_handle, infoCount, pInfos, ppBuildRangeInfos); +} + +// Original: vkCmdBuildAccelerationStructuresIndirectKHR +void CommandBuffer::buildAccelerationStructuresIndirectKHR(uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* ppMaxPrimitiveCounts) { + vk.vkCmdBuildAccelerationStructuresIndirectKHR(_handle, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts); +} + +// Original: vkCmdSetCullMode +void CommandBuffer::setCullMode(VkCullModeFlags cullMode) { + vk.vkCmdSetCullMode(_handle, cullMode); +} + +// Original: vkCmdSetCullModeEXT +void CommandBuffer::setCullModeEXT(VkCullModeFlags cullMode) { + vk.vkCmdSetCullModeEXT(_handle, cullMode); +} + +// Original: vkCmdSetFrontFace +void CommandBuffer::setFrontFace(VkFrontFace frontFace) { + vk.vkCmdSetFrontFace(_handle, frontFace); +} + +// Original: vkCmdSetFrontFaceEXT +void CommandBuffer::setFrontFaceEXT(VkFrontFace frontFace) { + vk.vkCmdSetFrontFaceEXT(_handle, frontFace); +} + +// Original: vkCmdSetPrimitiveTopology +void CommandBuffer::setPrimitiveTopology(VkPrimitiveTopology primitiveTopology) { + vk.vkCmdSetPrimitiveTopology(_handle, primitiveTopology); +} + +// Original: vkCmdSetPrimitiveTopologyEXT +void CommandBuffer::setPrimitiveTopologyEXT(VkPrimitiveTopology primitiveTopology) { + vk.vkCmdSetPrimitiveTopologyEXT(_handle, primitiveTopology); +} + +// Original: vkCmdSetViewportWithCount +void CommandBuffer::setViewportWithCount(uint32_t viewportCount, const VkViewport* pViewports) { + vk.vkCmdSetViewportWithCount(_handle, viewportCount, pViewports); +} + +// Original: vkCmdSetViewportWithCountEXT +void CommandBuffer::setViewportWithCountEXT(uint32_t viewportCount, const VkViewport* pViewports) { + vk.vkCmdSetViewportWithCountEXT(_handle, viewportCount, pViewports); +} + +// Original: vkCmdSetScissorWithCount +void CommandBuffer::setScissorWithCount(uint32_t scissorCount, const VkRect2D* pScissors) { + vk.vkCmdSetScissorWithCount(_handle, scissorCount, pScissors); +} + +// Original: vkCmdSetScissorWithCountEXT +void CommandBuffer::setScissorWithCountEXT(uint32_t scissorCount, const VkRect2D* pScissors) { + vk.vkCmdSetScissorWithCountEXT(_handle, scissorCount, pScissors); +} + +// Original: vkCmdBindIndexBuffer2 +void CommandBuffer::bindIndexBuffer2(IntrusivePtr buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType) { + vk.vkCmdBindIndexBuffer2(_handle, buffer->getHandle(), offset, size, indexType); +} + +// Original: vkCmdBindIndexBuffer2KHR +void CommandBuffer::bindIndexBuffer2KHR(IntrusivePtr buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType) { + vk.vkCmdBindIndexBuffer2KHR(_handle, buffer->getHandle(), offset, size, indexType); +} + +// Original: vkCmdBindVertexBuffers2 +void CommandBuffer::bindVertexBuffers2(uint32_t firstBinding, uint32_t bindingCount, const std::vector>& pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) { + std::vector _raw_pBuffers; _raw_pBuffers.reserve(pBuffers.size()); + for (auto const& it : pBuffers) _raw_pBuffers.push_back(it->getHandle()); + vk.vkCmdBindVertexBuffers2(_handle, firstBinding, bindingCount, pBuffers.size(), _raw_pBuffers.data(), pOffsets, pSizes, pStrides); +} + +// Original: vkCmdBindVertexBuffers2EXT +void CommandBuffer::bindVertexBuffers2EXT(uint32_t firstBinding, uint32_t bindingCount, const std::vector>& pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) { + std::vector _raw_pBuffers; _raw_pBuffers.reserve(pBuffers.size()); + for (auto const& it : pBuffers) _raw_pBuffers.push_back(it->getHandle()); + vk.vkCmdBindVertexBuffers2EXT(_handle, firstBinding, bindingCount, pBuffers.size(), _raw_pBuffers.data(), pOffsets, pSizes, pStrides); +} + +// Original: vkCmdSetDepthTestEnable +void CommandBuffer::setDepthTestEnable(VkBool32 depthTestEnable) { + vk.vkCmdSetDepthTestEnable(_handle, depthTestEnable); +} + +// Original: vkCmdSetDepthTestEnableEXT +void CommandBuffer::setDepthTestEnableEXT(VkBool32 depthTestEnable) { + vk.vkCmdSetDepthTestEnableEXT(_handle, depthTestEnable); +} + +// Original: vkCmdSetDepthWriteEnable +void CommandBuffer::setDepthWriteEnable(VkBool32 depthWriteEnable) { + vk.vkCmdSetDepthWriteEnable(_handle, depthWriteEnable); +} + +// Original: vkCmdSetDepthWriteEnableEXT +void CommandBuffer::setDepthWriteEnableEXT(VkBool32 depthWriteEnable) { + vk.vkCmdSetDepthWriteEnableEXT(_handle, depthWriteEnable); +} + +// Original: vkCmdSetDepthCompareOp +void CommandBuffer::setDepthCompareOp(VkCompareOp depthCompareOp) { + vk.vkCmdSetDepthCompareOp(_handle, depthCompareOp); +} + +// Original: vkCmdSetDepthCompareOpEXT +void CommandBuffer::setDepthCompareOpEXT(VkCompareOp depthCompareOp) { + vk.vkCmdSetDepthCompareOpEXT(_handle, depthCompareOp); +} + +// Original: vkCmdSetDepthBoundsTestEnable +void CommandBuffer::setDepthBoundsTestEnable(VkBool32 depthBoundsTestEnable) { + vk.vkCmdSetDepthBoundsTestEnable(_handle, depthBoundsTestEnable); +} + +// Original: vkCmdSetDepthBoundsTestEnableEXT +void CommandBuffer::setDepthBoundsTestEnableEXT(VkBool32 depthBoundsTestEnable) { + vk.vkCmdSetDepthBoundsTestEnableEXT(_handle, depthBoundsTestEnable); +} + +// Original: vkCmdSetStencilTestEnable +void CommandBuffer::setStencilTestEnable(VkBool32 stencilTestEnable) { + vk.vkCmdSetStencilTestEnable(_handle, stencilTestEnable); +} + +// Original: vkCmdSetStencilTestEnableEXT +void CommandBuffer::setStencilTestEnableEXT(VkBool32 stencilTestEnable) { + vk.vkCmdSetStencilTestEnableEXT(_handle, stencilTestEnable); +} + +// Original: vkCmdSetStencilOp +void CommandBuffer::setStencilOp(VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) { + vk.vkCmdSetStencilOp(_handle, faceMask, failOp, passOp, depthFailOp, compareOp); +} + +// Original: vkCmdSetStencilOpEXT +void CommandBuffer::setStencilOpEXT(VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) { + vk.vkCmdSetStencilOpEXT(_handle, faceMask, failOp, passOp, depthFailOp, compareOp); +} + +// Original: vkCmdSetPatchControlPointsEXT +void CommandBuffer::setPatchControlPointsEXT(uint32_t patchControlPoints) { + vk.vkCmdSetPatchControlPointsEXT(_handle, patchControlPoints); +} + +// Original: vkCmdSetRasterizerDiscardEnable +void CommandBuffer::setRasterizerDiscardEnable(VkBool32 rasterizerDiscardEnable) { + vk.vkCmdSetRasterizerDiscardEnable(_handle, rasterizerDiscardEnable); +} + +// Original: vkCmdSetRasterizerDiscardEnableEXT +void CommandBuffer::setRasterizerDiscardEnableEXT(VkBool32 rasterizerDiscardEnable) { + vk.vkCmdSetRasterizerDiscardEnableEXT(_handle, rasterizerDiscardEnable); +} + +// Original: vkCmdSetDepthBiasEnable +void CommandBuffer::setDepthBiasEnable(VkBool32 depthBiasEnable) { + vk.vkCmdSetDepthBiasEnable(_handle, depthBiasEnable); +} + +// Original: vkCmdSetDepthBiasEnableEXT +void CommandBuffer::setDepthBiasEnableEXT(VkBool32 depthBiasEnable) { + vk.vkCmdSetDepthBiasEnableEXT(_handle, depthBiasEnable); +} + +// Original: vkCmdSetLogicOpEXT +void CommandBuffer::setLogicOpEXT(VkLogicOp logicOp) { + vk.vkCmdSetLogicOpEXT(_handle, logicOp); +} + +// Original: vkCmdSetPrimitiveRestartEnable +void CommandBuffer::setPrimitiveRestartEnable(VkBool32 primitiveRestartEnable) { + vk.vkCmdSetPrimitiveRestartEnable(_handle, primitiveRestartEnable); +} + +// Original: vkCmdSetPrimitiveRestartEnableEXT +void CommandBuffer::setPrimitiveRestartEnableEXT(VkBool32 primitiveRestartEnable) { + vk.vkCmdSetPrimitiveRestartEnableEXT(_handle, primitiveRestartEnable); +} + +// Original: vkCmdSetTessellationDomainOriginEXT +void CommandBuffer::setTessellationDomainOriginEXT(VkTessellationDomainOrigin domainOrigin) { + vk.vkCmdSetTessellationDomainOriginEXT(_handle, domainOrigin); +} + +// Original: vkCmdSetDepthClampEnableEXT +void CommandBuffer::setDepthClampEnableEXT(VkBool32 depthClampEnable) { + vk.vkCmdSetDepthClampEnableEXT(_handle, depthClampEnable); +} + +// Original: vkCmdSetPolygonModeEXT +void CommandBuffer::setPolygonModeEXT(VkPolygonMode polygonMode) { + vk.vkCmdSetPolygonModeEXT(_handle, polygonMode); +} + +// Original: vkCmdSetRasterizationSamplesEXT +void CommandBuffer::setRasterizationSamplesEXT(VkSampleCountFlagBits rasterizationSamples) { + vk.vkCmdSetRasterizationSamplesEXT(_handle, rasterizationSamples); +} + +// Original: vkCmdSetSampleMaskEXT +void CommandBuffer::setSampleMaskEXT(VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask) { + vk.vkCmdSetSampleMaskEXT(_handle, samples, pSampleMask); +} + +// Original: vkCmdSetAlphaToCoverageEnableEXT +void CommandBuffer::setAlphaToCoverageEnableEXT(VkBool32 alphaToCoverageEnable) { + vk.vkCmdSetAlphaToCoverageEnableEXT(_handle, alphaToCoverageEnable); +} + +// Original: vkCmdSetAlphaToOneEnableEXT +void CommandBuffer::setAlphaToOneEnableEXT(VkBool32 alphaToOneEnable) { + vk.vkCmdSetAlphaToOneEnableEXT(_handle, alphaToOneEnable); +} + +// Original: vkCmdSetLogicOpEnableEXT +void CommandBuffer::setLogicOpEnableEXT(VkBool32 logicOpEnable) { + vk.vkCmdSetLogicOpEnableEXT(_handle, logicOpEnable); +} + +// Original: vkCmdSetColorBlendEnableEXT +void CommandBuffer::setColorBlendEnableEXT(uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables) { + vk.vkCmdSetColorBlendEnableEXT(_handle, firstAttachment, attachmentCount, pColorBlendEnables); +} + +// Original: vkCmdSetColorBlendEquationEXT +void CommandBuffer::setColorBlendEquationEXT(uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations) { + vk.vkCmdSetColorBlendEquationEXT(_handle, firstAttachment, attachmentCount, pColorBlendEquations); +} + +// Original: vkCmdSetColorWriteMaskEXT +void CommandBuffer::setColorWriteMaskEXT(uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks) { + vk.vkCmdSetColorWriteMaskEXT(_handle, firstAttachment, attachmentCount, pColorWriteMasks); +} + +// Original: vkCmdSetRasterizationStreamEXT +void CommandBuffer::setRasterizationStreamEXT(uint32_t rasterizationStream) { + vk.vkCmdSetRasterizationStreamEXT(_handle, rasterizationStream); +} + +// Original: vkCmdSetConservativeRasterizationModeEXT +void CommandBuffer::setConservativeRasterizationModeEXT(VkConservativeRasterizationModeEXT conservativeRasterizationMode) { + vk.vkCmdSetConservativeRasterizationModeEXT(_handle, conservativeRasterizationMode); +} + +// Original: vkCmdSetExtraPrimitiveOverestimationSizeEXT +void CommandBuffer::setExtraPrimitiveOverestimationSizeEXT(float extraPrimitiveOverestimationSize) { + vk.vkCmdSetExtraPrimitiveOverestimationSizeEXT(_handle, extraPrimitiveOverestimationSize); +} + +// Original: vkCmdSetDepthClipEnableEXT +void CommandBuffer::setDepthClipEnableEXT(VkBool32 depthClipEnable) { + vk.vkCmdSetDepthClipEnableEXT(_handle, depthClipEnable); +} + +// Original: vkCmdSetSampleLocationsEnableEXT +void CommandBuffer::setSampleLocationsEnableEXT(VkBool32 sampleLocationsEnable) { + vk.vkCmdSetSampleLocationsEnableEXT(_handle, sampleLocationsEnable); +} + +// Original: vkCmdSetColorBlendAdvancedEXT +void CommandBuffer::setColorBlendAdvancedEXT(uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced) { + vk.vkCmdSetColorBlendAdvancedEXT(_handle, firstAttachment, attachmentCount, pColorBlendAdvanced); +} + +// Original: vkCmdSetProvokingVertexModeEXT +void CommandBuffer::setProvokingVertexModeEXT(VkProvokingVertexModeEXT provokingVertexMode) { + vk.vkCmdSetProvokingVertexModeEXT(_handle, provokingVertexMode); +} + +// Original: vkCmdSetLineRasterizationModeEXT +void CommandBuffer::setLineRasterizationModeEXT(VkLineRasterizationModeEXT lineRasterizationMode) { + vk.vkCmdSetLineRasterizationModeEXT(_handle, lineRasterizationMode); +} + +// Original: vkCmdSetLineStippleEnableEXT +void CommandBuffer::setLineStippleEnableEXT(VkBool32 stippledLineEnable) { + vk.vkCmdSetLineStippleEnableEXT(_handle, stippledLineEnable); +} + +// Original: vkCmdSetDepthClipNegativeOneToOneEXT +void CommandBuffer::setDepthClipNegativeOneToOneEXT(VkBool32 negativeOneToOne) { + vk.vkCmdSetDepthClipNegativeOneToOneEXT(_handle, negativeOneToOne); +} + +// Original: vkCmdSetViewportWScalingEnableNV +void CommandBuffer::setViewportWScalingEnableNV(VkBool32 viewportWScalingEnable) { + vk.vkCmdSetViewportWScalingEnableNV(_handle, viewportWScalingEnable); +} + +// Original: vkCmdSetViewportSwizzleNV +void CommandBuffer::setViewportSwizzleNV(uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles) { + vk.vkCmdSetViewportSwizzleNV(_handle, firstViewport, viewportCount, pViewportSwizzles); +} + +// Original: vkCmdSetCoverageToColorEnableNV +void CommandBuffer::setCoverageToColorEnableNV(VkBool32 coverageToColorEnable) { + vk.vkCmdSetCoverageToColorEnableNV(_handle, coverageToColorEnable); +} + +// Original: vkCmdSetCoverageToColorLocationNV +void CommandBuffer::setCoverageToColorLocationNV(uint32_t coverageToColorLocation) { + vk.vkCmdSetCoverageToColorLocationNV(_handle, coverageToColorLocation); +} + +// Original: vkCmdSetCoverageModulationModeNV +void CommandBuffer::setCoverageModulationModeNV(VkCoverageModulationModeNV coverageModulationMode) { + vk.vkCmdSetCoverageModulationModeNV(_handle, coverageModulationMode); +} + +// Original: vkCmdSetCoverageModulationTableEnableNV +void CommandBuffer::setCoverageModulationTableEnableNV(VkBool32 coverageModulationTableEnable) { + vk.vkCmdSetCoverageModulationTableEnableNV(_handle, coverageModulationTableEnable); +} + +// Original: vkCmdSetCoverageModulationTableNV +void CommandBuffer::setCoverageModulationTableNV(uint32_t coverageModulationTableCount, const float* pCoverageModulationTable) { + vk.vkCmdSetCoverageModulationTableNV(_handle, coverageModulationTableCount, pCoverageModulationTable); +} + +// Original: vkCmdSetShadingRateImageEnableNV +void CommandBuffer::setShadingRateImageEnableNV(VkBool32 shadingRateImageEnable) { + vk.vkCmdSetShadingRateImageEnableNV(_handle, shadingRateImageEnable); +} + +// Original: vkCmdSetCoverageReductionModeNV +void CommandBuffer::setCoverageReductionModeNV(VkCoverageReductionModeNV coverageReductionMode) { + vk.vkCmdSetCoverageReductionModeNV(_handle, coverageReductionMode); +} + +// Original: vkCmdSetRepresentativeFragmentTestEnableNV +void CommandBuffer::setRepresentativeFragmentTestEnableNV(VkBool32 representativeFragmentTestEnable) { + vk.vkCmdSetRepresentativeFragmentTestEnableNV(_handle, representativeFragmentTestEnable); +} + +// Original: vkCmdCopyBuffer2 +void CommandBuffer::copyBuffer2(const VkCopyBufferInfo2* pCopyBufferInfo) { + vk.vkCmdCopyBuffer2(_handle, pCopyBufferInfo); +} + +// Original: vkCmdCopyBuffer2KHR +void CommandBuffer::copyBuffer2KHR(const VkCopyBufferInfo2* pCopyBufferInfo) { + vk.vkCmdCopyBuffer2KHR(_handle, pCopyBufferInfo); +} + +// Original: vkCmdCopyImage2 +void CommandBuffer::copyImage2(const VkCopyImageInfo2* pCopyImageInfo) { + vk.vkCmdCopyImage2(_handle, pCopyImageInfo); +} + +// Original: vkCmdCopyImage2KHR +void CommandBuffer::copyImage2KHR(const VkCopyImageInfo2* pCopyImageInfo) { + vk.vkCmdCopyImage2KHR(_handle, pCopyImageInfo); +} + +// Original: vkCmdBlitImage2 +void CommandBuffer::blitImage2(const VkBlitImageInfo2* pBlitImageInfo) { + vk.vkCmdBlitImage2(_handle, pBlitImageInfo); +} + +// Original: vkCmdBlitImage2KHR +void CommandBuffer::blitImage2KHR(const VkBlitImageInfo2* pBlitImageInfo) { + vk.vkCmdBlitImage2KHR(_handle, pBlitImageInfo); +} + +// Original: vkCmdCopyBufferToImage2 +void CommandBuffer::copyBufferToImage2(const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) { + vk.vkCmdCopyBufferToImage2(_handle, pCopyBufferToImageInfo); +} + +// Original: vkCmdCopyBufferToImage2KHR +void CommandBuffer::copyBufferToImage2KHR(const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) { + vk.vkCmdCopyBufferToImage2KHR(_handle, pCopyBufferToImageInfo); +} + +// Original: vkCmdCopyImageToBuffer2 +void CommandBuffer::copyImageToBuffer2(const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) { + vk.vkCmdCopyImageToBuffer2(_handle, pCopyImageToBufferInfo); +} + +// Original: vkCmdCopyImageToBuffer2KHR +void CommandBuffer::copyImageToBuffer2KHR(const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) { + vk.vkCmdCopyImageToBuffer2KHR(_handle, pCopyImageToBufferInfo); +} + +// Original: vkCmdResolveImage2 +void CommandBuffer::resolveImage2(const VkResolveImageInfo2* pResolveImageInfo) { + vk.vkCmdResolveImage2(_handle, pResolveImageInfo); +} + +// Original: vkCmdResolveImage2KHR +void CommandBuffer::resolveImage2KHR(const VkResolveImageInfo2* pResolveImageInfo) { + vk.vkCmdResolveImage2KHR(_handle, pResolveImageInfo); +} + +// Original: vkCmdSetFragmentShadingRateKHR +void CommandBuffer::setFragmentShadingRateKHR(const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps) { + vk.vkCmdSetFragmentShadingRateKHR(_handle, pFragmentSize, combinerOps); +} + +// Original: vkCmdSetFragmentShadingRateEnumNV +void CommandBuffer::setFragmentShadingRateEnumNV(VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps) { + vk.vkCmdSetFragmentShadingRateEnumNV(_handle, shadingRate, combinerOps); +} + +// Original: vkCmdSetVertexInputEXT +void CommandBuffer::setVertexInputEXT(uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) { + vk.vkCmdSetVertexInputEXT(_handle, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions); +} + +// Original: vkCmdSetColorWriteEnableEXT +void CommandBuffer::setColorWriteEnableEXT(uint32_t attachmentCount, const VkBool32* pColorWriteEnables) { + vk.vkCmdSetColorWriteEnableEXT(_handle, attachmentCount, pColorWriteEnables); +} + +// Original: vkCmdSetEvent2 +void CommandBuffer::setEvent2(IntrusivePtr event, const VkDependencyInfo* pDependencyInfo) { + vk.vkCmdSetEvent2(_handle, event->getHandle(), pDependencyInfo); +} + +// Original: vkCmdSetEvent2KHR +void CommandBuffer::setEvent2KHR(IntrusivePtr event, const VkDependencyInfo* pDependencyInfo) { + vk.vkCmdSetEvent2KHR(_handle, event->getHandle(), pDependencyInfo); +} + +// Original: vkCmdResetEvent2 +void CommandBuffer::resetEvent2(IntrusivePtr event, VkPipelineStageFlags2 stageMask) { + vk.vkCmdResetEvent2(_handle, event->getHandle(), stageMask); +} + +// Original: vkCmdResetEvent2KHR +void CommandBuffer::resetEvent2KHR(IntrusivePtr event, VkPipelineStageFlags2 stageMask) { + vk.vkCmdResetEvent2KHR(_handle, event->getHandle(), stageMask); +} + +// Original: vkCmdWaitEvents2 +void CommandBuffer::waitEvents2(uint32_t eventCount, const std::vector>& pEvents, const VkDependencyInfo* pDependencyInfos) { + std::vector _raw_pEvents; _raw_pEvents.reserve(pEvents.size()); + for (auto const& it : pEvents) _raw_pEvents.push_back(it->getHandle()); + vk.vkCmdWaitEvents2(_handle, eventCount, pEvents.size(), _raw_pEvents.data(), pDependencyInfos); +} + +// Original: vkCmdWaitEvents2KHR +void CommandBuffer::waitEvents2KHR(uint32_t eventCount, const std::vector>& pEvents, const VkDependencyInfo* pDependencyInfos) { + std::vector _raw_pEvents; _raw_pEvents.reserve(pEvents.size()); + for (auto const& it : pEvents) _raw_pEvents.push_back(it->getHandle()); + vk.vkCmdWaitEvents2KHR(_handle, eventCount, pEvents.size(), _raw_pEvents.data(), pDependencyInfos); +} + +// Original: vkCmdPipelineBarrier2 +void CommandBuffer::pipelineBarrier2(const VkDependencyInfo* pDependencyInfo) { + vk.vkCmdPipelineBarrier2(_handle, pDependencyInfo); +} + +// Original: vkCmdPipelineBarrier2KHR +void CommandBuffer::pipelineBarrier2KHR(const VkDependencyInfo* pDependencyInfo) { + vk.vkCmdPipelineBarrier2KHR(_handle, pDependencyInfo); +} + +// Original: vkCmdWriteTimestamp2 +void CommandBuffer::writeTimestamp2(VkPipelineStageFlags2 stage, IntrusivePtr queryPool, uint32_t query) { + vk.vkCmdWriteTimestamp2(_handle, stage, queryPool->getHandle(), query); +} + +// Original: vkCmdWriteTimestamp2KHR +void CommandBuffer::writeTimestamp2KHR(VkPipelineStageFlags2 stage, IntrusivePtr queryPool, uint32_t query) { + vk.vkCmdWriteTimestamp2KHR(_handle, stage, queryPool->getHandle(), query); +} + +// Original: vkCmdWriteBufferMarker2AMD +void CommandBuffer::writeBufferMarker2AMD(VkPipelineStageFlags2 stage, IntrusivePtr dstBuffer, VkDeviceSize dstOffset, uint32_t marker) { + vk.vkCmdWriteBufferMarker2AMD(_handle, stage, dstBuffer->getHandle(), dstOffset, marker); +} + +// Original: vkCmdDecodeVideoKHR +void CommandBuffer::decodeVideoKHR(const VkVideoDecodeInfoKHR* pDecodeInfo) { + vk.vkCmdDecodeVideoKHR(_handle, pDecodeInfo); +} + +// Original: vkCmdBeginVideoCodingKHR +void CommandBuffer::beginVideoCodingKHR(const VkVideoBeginCodingInfoKHR* pBeginInfo) { + vk.vkCmdBeginVideoCodingKHR(_handle, pBeginInfo); +} + +// Original: vkCmdControlVideoCodingKHR +void CommandBuffer::controlVideoCodingKHR(const VkVideoCodingControlInfoKHR* pCodingControlInfo) { + vk.vkCmdControlVideoCodingKHR(_handle, pCodingControlInfo); +} + +// Original: vkCmdEndVideoCodingKHR +void CommandBuffer::endVideoCodingKHR(const VkVideoEndCodingInfoKHR* pEndCodingInfo) { + vk.vkCmdEndVideoCodingKHR(_handle, pEndCodingInfo); +} + +// Original: vkCmdEncodeVideoKHR +void CommandBuffer::encodeVideoKHR(const VkVideoEncodeInfoKHR* pEncodeInfo) { + vk.vkCmdEncodeVideoKHR(_handle, pEncodeInfo); +} + +// Original: vkCmdDecompressMemoryNV +void CommandBuffer::decompressMemoryNV(uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions) { + vk.vkCmdDecompressMemoryNV(_handle, decompressRegionCount, pDecompressMemoryRegions); +} + +// Original: vkCmdDecompressMemoryIndirectCountNV +void CommandBuffer::decompressMemoryIndirectCountNV(VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride) { + vk.vkCmdDecompressMemoryIndirectCountNV(_handle, indirectCommandsAddress, indirectCommandsCountAddress, stride); +} + +// Original: vkCmdBuildPartitionedAccelerationStructuresNV +void CommandBuffer::buildPartitionedAccelerationStructuresNV(const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) { + vk.vkCmdBuildPartitionedAccelerationStructuresNV(_handle, pBuildInfo); +} + +// Original: vkCmdCuLaunchKernelNVX +void CommandBuffer::cuLaunchKernelNVX(const VkCuLaunchInfoNVX* pLaunchInfo) { + vk.vkCmdCuLaunchKernelNVX(_handle, pLaunchInfo); +} + +// Original: vkCmdBindDescriptorBuffersEXT +void CommandBuffer::bindDescriptorBuffersEXT(uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos) { + vk.vkCmdBindDescriptorBuffersEXT(_handle, bufferCount, pBindingInfos); +} + +// Original: vkCmdSetDescriptorBufferOffsetsEXT +void CommandBuffer::setDescriptorBufferOffsetsEXT(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets) { + vk.vkCmdSetDescriptorBufferOffsetsEXT(_handle, pipelineBindPoint, layout->getHandle(), firstSet, setCount, pBufferIndices, pOffsets); +} + +// Original: vkCmdBindDescriptorBufferEmbeddedSamplersEXT +void CommandBuffer::bindDescriptorBufferEmbeddedSamplersEXT(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t set) { + vk.vkCmdBindDescriptorBufferEmbeddedSamplersEXT(_handle, pipelineBindPoint, layout->getHandle(), set); +} + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkCmdCudaLaunchKernelNV +void CommandBuffer::cudaLaunchKernelNV(const VkCudaLaunchInfoNV* pLaunchInfo) { + vk.vkCmdCudaLaunchKernelNV(_handle, pLaunchInfo); +} +#endif + +// Original: vkCmdBeginRendering +void CommandBuffer::beginRendering(const VkRenderingInfo* pRenderingInfo) { + vk.vkCmdBeginRendering(_handle, pRenderingInfo); +} + +// Original: vkCmdBeginRenderingKHR +void CommandBuffer::beginRenderingKHR(const VkRenderingInfo* pRenderingInfo) { + vk.vkCmdBeginRenderingKHR(_handle, pRenderingInfo); +} + +// Original: vkCmdEndRendering +void CommandBuffer::endRendering() { + vk.vkCmdEndRendering(_handle); +} + +// Original: vkCmdEndRendering2EXT +void CommandBuffer::endRendering2EXT(const VkRenderingEndInfoEXT* pRenderingEndInfo) { + vk.vkCmdEndRendering2EXT(_handle, pRenderingEndInfo); +} + +// Original: vkCmdEndRenderingKHR +void CommandBuffer::endRenderingKHR() { + vk.vkCmdEndRenderingKHR(_handle); +} + +// Original: vkCmdBuildMicromapsEXT +void CommandBuffer::buildMicromapsEXT(uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos) { + vk.vkCmdBuildMicromapsEXT(_handle, infoCount, pInfos); +} + +// Original: vkCmdCopyMicromapEXT +void CommandBuffer::copyMicromapEXT(const VkCopyMicromapInfoEXT* pInfo) { + vk.vkCmdCopyMicromapEXT(_handle, pInfo); +} + +// Original: vkCmdCopyMicromapToMemoryEXT +void CommandBuffer::copyMicromapToMemoryEXT(const VkCopyMicromapToMemoryInfoEXT* pInfo) { + vk.vkCmdCopyMicromapToMemoryEXT(_handle, pInfo); +} + +// Original: vkCmdCopyMemoryToMicromapEXT +void CommandBuffer::copyMemoryToMicromapEXT(const VkCopyMemoryToMicromapInfoEXT* pInfo) { + vk.vkCmdCopyMemoryToMicromapEXT(_handle, pInfo); +} + +// Original: vkCmdWriteMicromapsPropertiesEXT +void CommandBuffer::writeMicromapsPropertiesEXT(uint32_t micromapCount, const std::vector>& pMicromaps, VkQueryType queryType, IntrusivePtr queryPool, uint32_t firstQuery) { + std::vector _raw_pMicromaps; _raw_pMicromaps.reserve(pMicromaps.size()); + for (auto const& it : pMicromaps) _raw_pMicromaps.push_back(it->getHandle()); + vk.vkCmdWriteMicromapsPropertiesEXT(_handle, micromapCount, pMicromaps.size(), _raw_pMicromaps.data(), queryType, queryPool->getHandle(), firstQuery); +} + +// Original: vkCmdBindTileMemoryQCOM +void CommandBuffer::bindTileMemoryQCOM(const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo) { + vk.vkCmdBindTileMemoryQCOM(_handle, pTileMemoryBindInfo); +} + +// Original: vkCmdOpticalFlowExecuteNV +void CommandBuffer::opticalFlowExecuteNV(IntrusivePtr session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo) { + vk.vkCmdOpticalFlowExecuteNV(_handle, session->getHandle(), pExecuteInfo); +} + +// Original: vkCmdSetDepthBias2EXT +void CommandBuffer::setDepthBias2EXT(const VkDepthBiasInfoEXT* pDepthBiasInfo) { + vk.vkCmdSetDepthBias2EXT(_handle, pDepthBiasInfo); +} + +// Original: vkCmdBindShadersEXT +void CommandBuffer::bindShadersEXT(uint32_t stageCount, const VkShaderStageFlagBits* pStages, const std::vector>& pShaders) { + std::vector _raw_pShaders; _raw_pShaders.reserve(pShaders.size()); + for (auto const& it : pShaders) _raw_pShaders.push_back(it->getHandle()); + vk.vkCmdBindShadersEXT(_handle, stageCount, pStages, pShaders.size(), _raw_pShaders.data()); +} + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkCmdInitializeGraphScratchMemoryAMDX +void CommandBuffer::initializeGraphScratchMemoryAMDX(IntrusivePtr executionGraph, VkDeviceAddress scratch, VkDeviceSize scratchSize) { + vk.vkCmdInitializeGraphScratchMemoryAMDX(_handle, executionGraph->getHandle(), scratch, scratchSize); +} +#endif + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkCmdDispatchGraphAMDX +void CommandBuffer::dispatchGraphAMDX(VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo) { + vk.vkCmdDispatchGraphAMDX(_handle, scratch, scratchSize, pCountInfo); +} +#endif + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkCmdDispatchGraphIndirectAMDX +void CommandBuffer::dispatchGraphIndirectAMDX(VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo) { + vk.vkCmdDispatchGraphIndirectAMDX(_handle, scratch, scratchSize, pCountInfo); +} +#endif + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkCmdDispatchGraphIndirectCountAMDX +void CommandBuffer::dispatchGraphIndirectCountAMDX(VkDeviceAddress scratch, VkDeviceSize scratchSize, VkDeviceAddress countInfo) { + vk.vkCmdDispatchGraphIndirectCountAMDX(_handle, scratch, scratchSize, countInfo); +} +#endif + +// Original: vkCmdBindDescriptorSets2 +void CommandBuffer::bindDescriptorSets2(const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo) { + vk.vkCmdBindDescriptorSets2(_handle, pBindDescriptorSetsInfo); +} + +// Original: vkCmdBindDescriptorSets2KHR +void CommandBuffer::bindDescriptorSets2KHR(const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo) { + vk.vkCmdBindDescriptorSets2KHR(_handle, pBindDescriptorSetsInfo); +} + +// Original: vkCmdPushConstants2 +void CommandBuffer::pushConstants2(const VkPushConstantsInfo* pPushConstantsInfo) { + vk.vkCmdPushConstants2(_handle, pPushConstantsInfo); +} + +// Original: vkCmdPushConstants2KHR +void CommandBuffer::pushConstants2KHR(const VkPushConstantsInfo* pPushConstantsInfo) { + vk.vkCmdPushConstants2KHR(_handle, pPushConstantsInfo); +} + +// Original: vkCmdPushDescriptorSet2 +void CommandBuffer::pushDescriptorSet2(const VkPushDescriptorSetInfo* pPushDescriptorSetInfo) { + vk.vkCmdPushDescriptorSet2(_handle, pPushDescriptorSetInfo); +} + +// Original: vkCmdPushDescriptorSet2KHR +void CommandBuffer::pushDescriptorSet2KHR(const VkPushDescriptorSetInfo* pPushDescriptorSetInfo) { + vk.vkCmdPushDescriptorSet2KHR(_handle, pPushDescriptorSetInfo); +} + +// Original: vkCmdPushDescriptorSetWithTemplate2 +void CommandBuffer::pushDescriptorSetWithTemplate2(const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo) { + vk.vkCmdPushDescriptorSetWithTemplate2(_handle, pPushDescriptorSetWithTemplateInfo); +} + +// Original: vkCmdPushDescriptorSetWithTemplate2KHR +void CommandBuffer::pushDescriptorSetWithTemplate2KHR(const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo) { + vk.vkCmdPushDescriptorSetWithTemplate2KHR(_handle, pPushDescriptorSetWithTemplateInfo); +} + +// Original: vkCmdSetDescriptorBufferOffsets2EXT +void CommandBuffer::setDescriptorBufferOffsets2EXT(const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo) { + vk.vkCmdSetDescriptorBufferOffsets2EXT(_handle, pSetDescriptorBufferOffsetsInfo); +} + +// Original: vkCmdBindDescriptorBufferEmbeddedSamplers2EXT +void CommandBuffer::bindDescriptorBufferEmbeddedSamplers2EXT(const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo) { + vk.vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(_handle, pBindDescriptorBufferEmbeddedSamplersInfo); +} + +// Original: vkCmdSetRenderingAttachmentLocations +void CommandBuffer::setRenderingAttachmentLocations(const VkRenderingAttachmentLocationInfo* pLocationInfo) { + vk.vkCmdSetRenderingAttachmentLocations(_handle, pLocationInfo); +} + +// Original: vkCmdSetRenderingAttachmentLocationsKHR +void CommandBuffer::setRenderingAttachmentLocationsKHR(const VkRenderingAttachmentLocationInfo* pLocationInfo) { + vk.vkCmdSetRenderingAttachmentLocationsKHR(_handle, pLocationInfo); +} + +// Original: vkCmdSetRenderingInputAttachmentIndices +void CommandBuffer::setRenderingInputAttachmentIndices(const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo) { + vk.vkCmdSetRenderingInputAttachmentIndices(_handle, pInputAttachmentIndexInfo); +} + +// Original: vkCmdSetRenderingInputAttachmentIndicesKHR +void CommandBuffer::setRenderingInputAttachmentIndicesKHR(const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo) { + vk.vkCmdSetRenderingInputAttachmentIndicesKHR(_handle, pInputAttachmentIndexInfo); +} + +// Original: vkCmdSetDepthClampRangeEXT +void CommandBuffer::setDepthClampRangeEXT(VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange) { + vk.vkCmdSetDepthClampRangeEXT(_handle, depthClampMode, pDepthClampRange); +} + +// Original: vkCmdConvertCooperativeVectorMatrixNV +void CommandBuffer::convertCooperativeVectorMatrixNV(uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos) { + vk.vkCmdConvertCooperativeVectorMatrixNV(_handle, infoCount, pInfos); +} + +// Original: vkCmdDispatchTileQCOM +void CommandBuffer::dispatchTileQCOM() { + vk.vkCmdDispatchTileQCOM(_handle); +} + +// Original: vkCmdBeginPerTileExecutionQCOM +void CommandBuffer::beginPerTileExecutionQCOM(const VkPerTileBeginInfoQCOM* pPerTileBeginInfo) { + vk.vkCmdBeginPerTileExecutionQCOM(_handle, pPerTileBeginInfo); +} + +// Original: vkCmdEndPerTileExecutionQCOM +void CommandBuffer::endPerTileExecutionQCOM(const VkPerTileEndInfoQCOM* pPerTileEndInfo) { + vk.vkCmdEndPerTileExecutionQCOM(_handle, pPerTileEndInfo); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandBuffer.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandBuffer.hpp new file mode 100644 index 0000000..014b5f1 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandBuffer.hpp @@ -0,0 +1,1453 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class AccelerationStructureKHR; +class AccelerationStructureNV; +class Buffer; +class CommandPool; +class DescriptorSet; +class DescriptorUpdateTemplate; +class Device; +class Event; +class Image; +class ImageView; +class MicromapEXT; +class OpticalFlowSessionNV; +class Pipeline; +class PipelineLayout; +class QueryPool; +class ShaderEXT; + + + +// === Lifetime summary (deterministic) === +// Handle: VkCommandBuffer +// Holds (destroy/free owners + creation parent, or producer parent): Device, CommandPool +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class CommandBuffer : public RefCounted { +public: + VkCommandBuffer getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + IntrusivePtr getCommandPool() const noexcept { return _owner1; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, IntrusivePtr owner1, VkCommandBuffer handle) { + return IntrusivePtr(new CommandBuffer(owner0, owner1, handle, false)); + } +private: + explicit CommandBuffer(IntrusivePtr owner0, IntrusivePtr owner1, VkCommandBuffer handle, bool owned); + ~CommandBuffer() override; +private: + VkCommandBuffer _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + IntrusivePtr _owner1; + +public: +// Original: vkAllocateCommandBuffers + static std::vector> createMany(IntrusivePtr parent, const VkCommandBufferAllocateInfo* pAllocateInfo); + + +public: +// Original: vkBeginCommandBuffer + VkResult begin(const VkCommandBufferBeginInfo* pBeginInfo); + + +public: +// Original: vkEndCommandBuffer + VkResult end(); + + +public: +// Original: vkResetCommandBuffer + VkResult reset(VkCommandBufferResetFlags flags); + + +public: +// Original: vkCmdBindPipeline + void bindPipeline(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr pipeline); + + +public: +// Original: vkCmdSetAttachmentFeedbackLoopEnableEXT + void setAttachmentFeedbackLoopEnableEXT(VkImageAspectFlags aspectMask); + + +public: +// Original: vkCmdSetViewport + void setViewport(uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports); + + +public: +// Original: vkCmdSetScissor + void setScissor(uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors); + + +public: +// Original: vkCmdSetLineWidth + void setLineWidth(float lineWidth); + + +public: +// Original: vkCmdSetDepthBias + void setDepthBias(float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); + + +public: +// Original: vkCmdSetBlendConstants + void setBlendConstants(const float blendConstants); + + +public: +// Original: vkCmdSetDepthBounds + void setDepthBounds(float minDepthBounds, float maxDepthBounds); + + +public: +// Original: vkCmdSetStencilCompareMask + void setStencilCompareMask(VkStencilFaceFlags faceMask, uint32_t compareMask); + + +public: +// Original: vkCmdSetStencilWriteMask + void setStencilWriteMask(VkStencilFaceFlags faceMask, uint32_t writeMask); + + +public: +// Original: vkCmdSetStencilReference + void setStencilReference(VkStencilFaceFlags faceMask, uint32_t reference); + + +public: +// Original: vkCmdBindDescriptorSets + void bindDescriptorSets(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t firstSet, uint32_t descriptorSetCount, const std::vector>& pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets); + + +public: +// Original: vkCmdBindIndexBuffer + void bindIndexBuffer(IntrusivePtr buffer, VkDeviceSize offset, VkIndexType indexType); + + +public: +// Original: vkCmdBindVertexBuffers + void bindVertexBuffers(uint32_t firstBinding, uint32_t bindingCount, const std::vector>& pBuffers, const VkDeviceSize* pOffsets); + + +public: +// Original: vkCmdDraw + void draw(uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); + + +public: +// Original: vkCmdDrawIndexed + void drawIndexed(uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); + + +public: +// Original: vkCmdDrawMultiEXT + void drawMultiEXT(uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride); + + +public: +// Original: vkCmdDrawMultiIndexedEXT + void drawMultiIndexedEXT(uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset); + + +public: +// Original: vkCmdDrawIndirect + void drawIndirect(IntrusivePtr buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawIndexedIndirect + void drawIndexedIndirect(IntrusivePtr buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); + + +public: +// Original: vkCmdDispatch + void dispatch(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); + + +public: +// Original: vkCmdDispatchIndirect + void dispatchIndirect(IntrusivePtr buffer, VkDeviceSize offset); + + +public: +// Original: vkCmdSubpassShadingHUAWEI + void subpassShadingHUAWEI(); + + +public: +// Original: vkCmdDrawClusterHUAWEI + void drawClusterHUAWEI(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); + + +public: +// Original: vkCmdDrawClusterIndirectHUAWEI + void drawClusterIndirectHUAWEI(IntrusivePtr buffer, VkDeviceSize offset); + + +public: +// Original: vkCmdUpdatePipelineIndirectBufferNV + void updatePipelineIndirectBufferNV(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr pipeline); + + +public: +// Original: vkCmdCopyBuffer + void copyBuffer(IntrusivePtr srcBuffer, IntrusivePtr dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); + + +public: +// Original: vkCmdCopyImage + void copyImage(IntrusivePtr srcImage, VkImageLayout srcImageLayout, IntrusivePtr dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); + + +public: +// Original: vkCmdBlitImage + void blitImage(IntrusivePtr srcImage, VkImageLayout srcImageLayout, IntrusivePtr dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); + + +public: +// Original: vkCmdCopyBufferToImage + void copyBufferToImage(IntrusivePtr srcBuffer, IntrusivePtr dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions); + + +public: +// Original: vkCmdCopyImageToBuffer + void copyImageToBuffer(IntrusivePtr srcImage, VkImageLayout srcImageLayout, IntrusivePtr dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions); + + +public: +// Original: vkCmdCopyMemoryIndirectNV + void copyMemoryIndirectNV(VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride); + + +public: +// Original: vkCmdCopyMemoryToImageIndirectNV + void copyMemoryToImageIndirectNV(VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, IntrusivePtr dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources); + + +public: +// Original: vkCmdUpdateBuffer + void updateBuffer(IntrusivePtr dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData); + + +public: +// Original: vkCmdFillBuffer + void fillBuffer(IntrusivePtr dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); + + +public: +// Original: vkCmdClearColorImage + void clearColorImage(IntrusivePtr image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); + + +public: +// Original: vkCmdClearDepthStencilImage + void clearDepthStencilImage(IntrusivePtr image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); + + +public: +// Original: vkCmdClearAttachments + void clearAttachments(uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects); + + +public: +// Original: vkCmdResolveImage + void resolveImage(IntrusivePtr srcImage, VkImageLayout srcImageLayout, IntrusivePtr dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); + + +public: +// Original: vkCmdSetEvent + void setEvent(IntrusivePtr event, VkPipelineStageFlags stageMask); + + +public: +// Original: vkCmdResetEvent + void resetEvent(IntrusivePtr event, VkPipelineStageFlags stageMask); + + +public: +// Original: vkCmdWaitEvents + void waitEvents(uint32_t eventCount, const std::vector>& pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers); + + +public: +// Original: vkCmdPipelineBarrier + void pipelineBarrier(VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers); + + +public: +// Original: vkCmdBeginQuery + void beginQuery(IntrusivePtr queryPool, uint32_t query, VkQueryControlFlags flags); + + +public: +// Original: vkCmdEndQuery + void endQuery(IntrusivePtr queryPool, uint32_t query); + + +public: +// Original: vkCmdBeginConditionalRenderingEXT + void beginConditionalRenderingEXT(const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); + + +public: +// Original: vkCmdEndConditionalRenderingEXT + void endConditionalRenderingEXT(); + + +public: +// Original: vkCmdResetQueryPool + void resetQueryPool(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount); + + +public: +// Original: vkCmdWriteTimestamp + void writeTimestamp(VkPipelineStageFlagBits pipelineStage, IntrusivePtr queryPool, uint32_t query); + + +public: +// Original: vkCmdCopyQueryPoolResults + void copyQueryPoolResults(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount, IntrusivePtr dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); + + +public: +// Original: vkCmdPushConstants + void pushConstants(IntrusivePtr layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues); + + +public: +// Original: vkCmdBeginRenderPass + void beginRenderPass(const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents); + + +public: +// Original: vkCmdNextSubpass + void nextSubpass(VkSubpassContents contents); + + +public: +// Original: vkCmdEndRenderPass + void endRenderPass(); + + +public: +// Original: vkCmdExecuteCommands + void executeCommands(uint32_t commandBufferCount, const std::vector>& pCommandBuffers); + + +public: +// Original: vkCmdDebugMarkerBeginEXT + void debugMarkerBeginEXT(const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + + +public: +// Original: vkCmdDebugMarkerEndEXT + void debugMarkerEndEXT(); + + +public: +// Original: vkCmdDebugMarkerInsertEXT + void debugMarkerInsertEXT(const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + + +public: +// Original: vkCmdExecuteGeneratedCommandsNV + void executeGeneratedCommandsNV(VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); + + +public: +// Original: vkCmdPreprocessGeneratedCommandsNV + void preprocessGeneratedCommandsNV(const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); + + +public: +// Original: vkCmdBindPipelineShaderGroupNV + void bindPipelineShaderGroupNV(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr pipeline, uint32_t groupIndex); + + +public: +// Original: vkCmdExecuteGeneratedCommandsEXT + void executeGeneratedCommandsEXT(VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo); + + +public: +// Original: vkCmdPreprocessGeneratedCommandsEXT + void preprocessGeneratedCommandsEXT(const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, IntrusivePtr stateCommandBuffer); + + +public: +// Original: vkCmdPushDescriptorSet + void pushDescriptorSet(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); + + +public: +// Original: vkCmdPushDescriptorSetKHR + void pushDescriptorSetKHR(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); + + +public: +// Original: vkCmdSetDeviceMask + void setDeviceMask(uint32_t deviceMask); + + +public: +// Original: vkCmdSetDeviceMaskKHR + void setDeviceMaskKHR(uint32_t deviceMask); + + +public: +// Original: vkCmdDispatchBase + void dispatchBase(uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); + + +public: +// Original: vkCmdDispatchBaseKHR + void dispatchBaseKHR(uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); + + +public: +// Original: vkCmdPushDescriptorSetWithTemplate + void pushDescriptorSetWithTemplate(IntrusivePtr descriptorUpdateTemplate, IntrusivePtr layout, uint32_t set, const void* pData); + + +public: +// Original: vkCmdPushDescriptorSetWithTemplateKHR + void pushDescriptorSetWithTemplateKHR(IntrusivePtr descriptorUpdateTemplate, IntrusivePtr layout, uint32_t set, const void* pData); + + +public: +// Original: vkCmdSetViewportWScalingNV + void setViewportWScalingNV(uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); + + +public: +// Original: vkCmdSetDiscardRectangleEXT + void setDiscardRectangleEXT(uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); + + +public: +// Original: vkCmdSetDiscardRectangleEnableEXT + void setDiscardRectangleEnableEXT(VkBool32 discardRectangleEnable); + + +public: +// Original: vkCmdSetDiscardRectangleModeEXT + void setDiscardRectangleModeEXT(VkDiscardRectangleModeEXT discardRectangleMode); + + +public: +// Original: vkCmdSetSampleLocationsEXT + void setSampleLocationsEXT(const VkSampleLocationsInfoEXT* pSampleLocationsInfo); + + +public: +// Original: vkCmdBeginDebugUtilsLabelEXT + void beginDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* pLabelInfo); + + +public: +// Original: vkCmdEndDebugUtilsLabelEXT + void endDebugUtilsLabelEXT(); + + +public: +// Original: vkCmdInsertDebugUtilsLabelEXT + void insertDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* pLabelInfo); + + +public: +// Original: vkCmdWriteBufferMarkerAMD + void writeBufferMarkerAMD(VkPipelineStageFlagBits pipelineStage, IntrusivePtr dstBuffer, VkDeviceSize dstOffset, uint32_t marker); + + +public: +// Original: vkCmdBeginRenderPass2 + void beginRenderPass2(const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); + + +public: +// Original: vkCmdBeginRenderPass2KHR + void beginRenderPass2KHR(const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); + + +public: +// Original: vkCmdNextSubpass2 + void nextSubpass2(const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); + + +public: +// Original: vkCmdNextSubpass2KHR + void nextSubpass2KHR(const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); + + +public: +// Original: vkCmdEndRenderPass2 + void endRenderPass2(const VkSubpassEndInfo* pSubpassEndInfo); + + +public: +// Original: vkCmdEndRenderPass2KHR + void endRenderPass2KHR(const VkSubpassEndInfo* pSubpassEndInfo); + + +public: +// Original: vkCmdDrawIndirectCount + void drawIndirectCount(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawIndirectCountKHR + void drawIndirectCountKHR(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawIndirectCountAMD + void drawIndirectCountAMD(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawIndexedIndirectCount + void drawIndexedIndirectCount(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawIndexedIndirectCountKHR + void drawIndexedIndirectCountKHR(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawIndexedIndirectCountAMD + void drawIndexedIndirectCountAMD(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + + +public: +// Original: vkCmdSetCheckpointNV + void setCheckpointNV(const void* pCheckpointMarker); + + +public: +// Original: vkCmdBindTransformFeedbackBuffersEXT + void bindTransformFeedbackBuffersEXT(uint32_t firstBinding, uint32_t bindingCount, const std::vector>& pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); + + +public: +// Original: vkCmdBeginTransformFeedbackEXT + void beginTransformFeedbackEXT(uint32_t firstCounterBuffer, uint32_t counterBufferCount, const std::vector>& pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); + + +public: +// Original: vkCmdEndTransformFeedbackEXT + void endTransformFeedbackEXT(uint32_t firstCounterBuffer, uint32_t counterBufferCount, const std::vector>& pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); + + +public: +// Original: vkCmdBeginQueryIndexedEXT + void beginQueryIndexedEXT(IntrusivePtr queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); + + +public: +// Original: vkCmdEndQueryIndexedEXT + void endQueryIndexedEXT(IntrusivePtr queryPool, uint32_t query, uint32_t index); + + +public: +// Original: vkCmdDrawIndirectByteCountEXT + void drawIndirectByteCountEXT(uint32_t instanceCount, uint32_t firstInstance, IntrusivePtr counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); + + +public: +// Original: vkCmdSetExclusiveScissorNV + void setExclusiveScissorNV(uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); + + +public: +// Original: vkCmdSetExclusiveScissorEnableNV + void setExclusiveScissorEnableNV(uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables); + + +public: +// Original: vkCmdBindShadingRateImageNV + void bindShadingRateImageNV(IntrusivePtr imageView, VkImageLayout imageLayout); + + +public: +// Original: vkCmdSetViewportShadingRatePaletteNV + void setViewportShadingRatePaletteNV(uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); + + +public: +// Original: vkCmdSetCoarseSampleOrderNV + void setCoarseSampleOrderNV(VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); + + +public: +// Original: vkCmdDrawMeshTasksNV + void drawMeshTasksNV(uint32_t taskCount, uint32_t firstTask); + + +public: +// Original: vkCmdDrawMeshTasksIndirectNV + void drawMeshTasksIndirectNV(IntrusivePtr buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawMeshTasksIndirectCountNV + void drawMeshTasksIndirectCountNV(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawMeshTasksEXT + void drawMeshTasksEXT(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); + + +public: +// Original: vkCmdDrawMeshTasksIndirectEXT + void drawMeshTasksIndirectEXT(IntrusivePtr buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); + + +public: +// Original: vkCmdDrawMeshTasksIndirectCountEXT + void drawMeshTasksIndirectCountEXT(IntrusivePtr buffer, VkDeviceSize offset, IntrusivePtr countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + + +public: +// Original: vkCmdBindInvocationMaskHUAWEI + void bindInvocationMaskHUAWEI(IntrusivePtr imageView, VkImageLayout imageLayout); + + +public: +// Original: vkCmdCopyAccelerationStructureNV + void copyAccelerationStructureNV(IntrusivePtr dst, IntrusivePtr src, VkCopyAccelerationStructureModeKHR mode); + + +public: +// Original: vkCmdCopyAccelerationStructureKHR + void copyAccelerationStructureKHR(const VkCopyAccelerationStructureInfoKHR* pInfo); + + +public: +// Original: vkCmdCopyAccelerationStructureToMemoryKHR + void copyAccelerationStructureToMemoryKHR(const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); + + +public: +// Original: vkCmdCopyMemoryToAccelerationStructureKHR + void copyMemoryToAccelerationStructureKHR(const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); + + +public: +// Original: vkCmdWriteAccelerationStructuresPropertiesKHR + void writeAccelerationStructuresPropertiesKHR(uint32_t accelerationStructureCount, const std::vector>& pAccelerationStructures, VkQueryType queryType, IntrusivePtr queryPool, uint32_t firstQuery); + + +public: +// Original: vkCmdWriteAccelerationStructuresPropertiesNV + void writeAccelerationStructuresPropertiesNV(uint32_t accelerationStructureCount, const std::vector>& pAccelerationStructures, VkQueryType queryType, IntrusivePtr queryPool, uint32_t firstQuery); + + +public: +// Original: vkCmdBuildAccelerationStructureNV + void buildAccelerationStructureNV(const VkAccelerationStructureInfoNV* pInfo, IntrusivePtr instanceData, VkDeviceSize instanceOffset, VkBool32 update, IntrusivePtr dst, IntrusivePtr src, IntrusivePtr scratch, VkDeviceSize scratchOffset); + + +public: +// Original: vkCmdTraceRaysKHR + void traceRaysKHR(const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth); + + +public: +// Original: vkCmdTraceRaysNV + void traceRaysNV(IntrusivePtr raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, IntrusivePtr missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, IntrusivePtr hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, IntrusivePtr callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth); + + +public: +// Original: vkCmdTraceRaysIndirectKHR + void traceRaysIndirectKHR(const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress); + + +public: +// Original: vkCmdTraceRaysIndirect2KHR + void traceRaysIndirect2KHR(VkDeviceAddress indirectDeviceAddress); + + +public: +// Original: vkCmdBuildClusterAccelerationStructureIndirectNV + void buildClusterAccelerationStructureIndirectNV(const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos); + + +public: +// Original: vkCmdSetRayTracingPipelineStackSizeKHR + void setRayTracingPipelineStackSizeKHR(uint32_t pipelineStackSize); + + +public: +// Original: vkCmdSetPerformanceMarkerINTEL + VkResult setPerformanceMarkerINTEL(const VkPerformanceMarkerInfoINTEL* pMarkerInfo); + + +public: +// Original: vkCmdSetPerformanceStreamMarkerINTEL + VkResult setPerformanceStreamMarkerINTEL(const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); + + +public: +// Original: vkCmdSetPerformanceOverrideINTEL + VkResult setPerformanceOverrideINTEL(const VkPerformanceOverrideInfoINTEL* pOverrideInfo); + + +public: +// Original: vkCmdSetLineStipple + void setLineStipple(uint32_t lineStippleFactor, uint16_t lineStipplePattern); + + +public: +// Original: vkCmdSetLineStippleKHR + void setLineStippleKHR(uint32_t lineStippleFactor, uint16_t lineStipplePattern); + + +public: +// Original: vkCmdSetLineStippleEXT + void setLineStippleEXT(uint32_t lineStippleFactor, uint16_t lineStipplePattern); + + +public: +// Original: vkCmdBuildAccelerationStructuresKHR + void buildAccelerationStructuresKHR(uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* ppBuildRangeInfos); + + +public: +// Original: vkCmdBuildAccelerationStructuresIndirectKHR + void buildAccelerationStructuresIndirectKHR(uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* ppMaxPrimitiveCounts); + + +public: +// Original: vkCmdSetCullMode + void setCullMode(VkCullModeFlags cullMode); + + +public: +// Original: vkCmdSetCullModeEXT + void setCullModeEXT(VkCullModeFlags cullMode); + + +public: +// Original: vkCmdSetFrontFace + void setFrontFace(VkFrontFace frontFace); + + +public: +// Original: vkCmdSetFrontFaceEXT + void setFrontFaceEXT(VkFrontFace frontFace); + + +public: +// Original: vkCmdSetPrimitiveTopology + void setPrimitiveTopology(VkPrimitiveTopology primitiveTopology); + + +public: +// Original: vkCmdSetPrimitiveTopologyEXT + void setPrimitiveTopologyEXT(VkPrimitiveTopology primitiveTopology); + + +public: +// Original: vkCmdSetViewportWithCount + void setViewportWithCount(uint32_t viewportCount, const VkViewport* pViewports); + + +public: +// Original: vkCmdSetViewportWithCountEXT + void setViewportWithCountEXT(uint32_t viewportCount, const VkViewport* pViewports); + + +public: +// Original: vkCmdSetScissorWithCount + void setScissorWithCount(uint32_t scissorCount, const VkRect2D* pScissors); + + +public: +// Original: vkCmdSetScissorWithCountEXT + void setScissorWithCountEXT(uint32_t scissorCount, const VkRect2D* pScissors); + + +public: +// Original: vkCmdBindIndexBuffer2 + void bindIndexBuffer2(IntrusivePtr buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType); + + +public: +// Original: vkCmdBindIndexBuffer2KHR + void bindIndexBuffer2KHR(IntrusivePtr buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType); + + +public: +// Original: vkCmdBindVertexBuffers2 + void bindVertexBuffers2(uint32_t firstBinding, uint32_t bindingCount, const std::vector>& pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); + + +public: +// Original: vkCmdBindVertexBuffers2EXT + void bindVertexBuffers2EXT(uint32_t firstBinding, uint32_t bindingCount, const std::vector>& pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); + + +public: +// Original: vkCmdSetDepthTestEnable + void setDepthTestEnable(VkBool32 depthTestEnable); + + +public: +// Original: vkCmdSetDepthTestEnableEXT + void setDepthTestEnableEXT(VkBool32 depthTestEnable); + + +public: +// Original: vkCmdSetDepthWriteEnable + void setDepthWriteEnable(VkBool32 depthWriteEnable); + + +public: +// Original: vkCmdSetDepthWriteEnableEXT + void setDepthWriteEnableEXT(VkBool32 depthWriteEnable); + + +public: +// Original: vkCmdSetDepthCompareOp + void setDepthCompareOp(VkCompareOp depthCompareOp); + + +public: +// Original: vkCmdSetDepthCompareOpEXT + void setDepthCompareOpEXT(VkCompareOp depthCompareOp); + + +public: +// Original: vkCmdSetDepthBoundsTestEnable + void setDepthBoundsTestEnable(VkBool32 depthBoundsTestEnable); + + +public: +// Original: vkCmdSetDepthBoundsTestEnableEXT + void setDepthBoundsTestEnableEXT(VkBool32 depthBoundsTestEnable); + + +public: +// Original: vkCmdSetStencilTestEnable + void setStencilTestEnable(VkBool32 stencilTestEnable); + + +public: +// Original: vkCmdSetStencilTestEnableEXT + void setStencilTestEnableEXT(VkBool32 stencilTestEnable); + + +public: +// Original: vkCmdSetStencilOp + void setStencilOp(VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); + + +public: +// Original: vkCmdSetStencilOpEXT + void setStencilOpEXT(VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); + + +public: +// Original: vkCmdSetPatchControlPointsEXT + void setPatchControlPointsEXT(uint32_t patchControlPoints); + + +public: +// Original: vkCmdSetRasterizerDiscardEnable + void setRasterizerDiscardEnable(VkBool32 rasterizerDiscardEnable); + + +public: +// Original: vkCmdSetRasterizerDiscardEnableEXT + void setRasterizerDiscardEnableEXT(VkBool32 rasterizerDiscardEnable); + + +public: +// Original: vkCmdSetDepthBiasEnable + void setDepthBiasEnable(VkBool32 depthBiasEnable); + + +public: +// Original: vkCmdSetDepthBiasEnableEXT + void setDepthBiasEnableEXT(VkBool32 depthBiasEnable); + + +public: +// Original: vkCmdSetLogicOpEXT + void setLogicOpEXT(VkLogicOp logicOp); + + +public: +// Original: vkCmdSetPrimitiveRestartEnable + void setPrimitiveRestartEnable(VkBool32 primitiveRestartEnable); + + +public: +// Original: vkCmdSetPrimitiveRestartEnableEXT + void setPrimitiveRestartEnableEXT(VkBool32 primitiveRestartEnable); + + +public: +// Original: vkCmdSetTessellationDomainOriginEXT + void setTessellationDomainOriginEXT(VkTessellationDomainOrigin domainOrigin); + + +public: +// Original: vkCmdSetDepthClampEnableEXT + void setDepthClampEnableEXT(VkBool32 depthClampEnable); + + +public: +// Original: vkCmdSetPolygonModeEXT + void setPolygonModeEXT(VkPolygonMode polygonMode); + + +public: +// Original: vkCmdSetRasterizationSamplesEXT + void setRasterizationSamplesEXT(VkSampleCountFlagBits rasterizationSamples); + + +public: +// Original: vkCmdSetSampleMaskEXT + void setSampleMaskEXT(VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask); + + +public: +// Original: vkCmdSetAlphaToCoverageEnableEXT + void setAlphaToCoverageEnableEXT(VkBool32 alphaToCoverageEnable); + + +public: +// Original: vkCmdSetAlphaToOneEnableEXT + void setAlphaToOneEnableEXT(VkBool32 alphaToOneEnable); + + +public: +// Original: vkCmdSetLogicOpEnableEXT + void setLogicOpEnableEXT(VkBool32 logicOpEnable); + + +public: +// Original: vkCmdSetColorBlendEnableEXT + void setColorBlendEnableEXT(uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables); + + +public: +// Original: vkCmdSetColorBlendEquationEXT + void setColorBlendEquationEXT(uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations); + + +public: +// Original: vkCmdSetColorWriteMaskEXT + void setColorWriteMaskEXT(uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks); + + +public: +// Original: vkCmdSetRasterizationStreamEXT + void setRasterizationStreamEXT(uint32_t rasterizationStream); + + +public: +// Original: vkCmdSetConservativeRasterizationModeEXT + void setConservativeRasterizationModeEXT(VkConservativeRasterizationModeEXT conservativeRasterizationMode); + + +public: +// Original: vkCmdSetExtraPrimitiveOverestimationSizeEXT + void setExtraPrimitiveOverestimationSizeEXT(float extraPrimitiveOverestimationSize); + + +public: +// Original: vkCmdSetDepthClipEnableEXT + void setDepthClipEnableEXT(VkBool32 depthClipEnable); + + +public: +// Original: vkCmdSetSampleLocationsEnableEXT + void setSampleLocationsEnableEXT(VkBool32 sampleLocationsEnable); + + +public: +// Original: vkCmdSetColorBlendAdvancedEXT + void setColorBlendAdvancedEXT(uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced); + + +public: +// Original: vkCmdSetProvokingVertexModeEXT + void setProvokingVertexModeEXT(VkProvokingVertexModeEXT provokingVertexMode); + + +public: +// Original: vkCmdSetLineRasterizationModeEXT + void setLineRasterizationModeEXT(VkLineRasterizationModeEXT lineRasterizationMode); + + +public: +// Original: vkCmdSetLineStippleEnableEXT + void setLineStippleEnableEXT(VkBool32 stippledLineEnable); + + +public: +// Original: vkCmdSetDepthClipNegativeOneToOneEXT + void setDepthClipNegativeOneToOneEXT(VkBool32 negativeOneToOne); + + +public: +// Original: vkCmdSetViewportWScalingEnableNV + void setViewportWScalingEnableNV(VkBool32 viewportWScalingEnable); + + +public: +// Original: vkCmdSetViewportSwizzleNV + void setViewportSwizzleNV(uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles); + + +public: +// Original: vkCmdSetCoverageToColorEnableNV + void setCoverageToColorEnableNV(VkBool32 coverageToColorEnable); + + +public: +// Original: vkCmdSetCoverageToColorLocationNV + void setCoverageToColorLocationNV(uint32_t coverageToColorLocation); + + +public: +// Original: vkCmdSetCoverageModulationModeNV + void setCoverageModulationModeNV(VkCoverageModulationModeNV coverageModulationMode); + + +public: +// Original: vkCmdSetCoverageModulationTableEnableNV + void setCoverageModulationTableEnableNV(VkBool32 coverageModulationTableEnable); + + +public: +// Original: vkCmdSetCoverageModulationTableNV + void setCoverageModulationTableNV(uint32_t coverageModulationTableCount, const float* pCoverageModulationTable); + + +public: +// Original: vkCmdSetShadingRateImageEnableNV + void setShadingRateImageEnableNV(VkBool32 shadingRateImageEnable); + + +public: +// Original: vkCmdSetCoverageReductionModeNV + void setCoverageReductionModeNV(VkCoverageReductionModeNV coverageReductionMode); + + +public: +// Original: vkCmdSetRepresentativeFragmentTestEnableNV + void setRepresentativeFragmentTestEnableNV(VkBool32 representativeFragmentTestEnable); + + +public: +// Original: vkCmdCopyBuffer2 + void copyBuffer2(const VkCopyBufferInfo2* pCopyBufferInfo); + + +public: +// Original: vkCmdCopyBuffer2KHR + void copyBuffer2KHR(const VkCopyBufferInfo2* pCopyBufferInfo); + + +public: +// Original: vkCmdCopyImage2 + void copyImage2(const VkCopyImageInfo2* pCopyImageInfo); + + +public: +// Original: vkCmdCopyImage2KHR + void copyImage2KHR(const VkCopyImageInfo2* pCopyImageInfo); + + +public: +// Original: vkCmdBlitImage2 + void blitImage2(const VkBlitImageInfo2* pBlitImageInfo); + + +public: +// Original: vkCmdBlitImage2KHR + void blitImage2KHR(const VkBlitImageInfo2* pBlitImageInfo); + + +public: +// Original: vkCmdCopyBufferToImage2 + void copyBufferToImage2(const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); + + +public: +// Original: vkCmdCopyBufferToImage2KHR + void copyBufferToImage2KHR(const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); + + +public: +// Original: vkCmdCopyImageToBuffer2 + void copyImageToBuffer2(const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); + + +public: +// Original: vkCmdCopyImageToBuffer2KHR + void copyImageToBuffer2KHR(const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); + + +public: +// Original: vkCmdResolveImage2 + void resolveImage2(const VkResolveImageInfo2* pResolveImageInfo); + + +public: +// Original: vkCmdResolveImage2KHR + void resolveImage2KHR(const VkResolveImageInfo2* pResolveImageInfo); + + +public: +// Original: vkCmdSetFragmentShadingRateKHR + void setFragmentShadingRateKHR(const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps); + + +public: +// Original: vkCmdSetFragmentShadingRateEnumNV + void setFragmentShadingRateEnumNV(VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps); + + +public: +// Original: vkCmdSetVertexInputEXT + void setVertexInputEXT(uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); + + +public: +// Original: vkCmdSetColorWriteEnableEXT + void setColorWriteEnableEXT(uint32_t attachmentCount, const VkBool32* pColorWriteEnables); + + +public: +// Original: vkCmdSetEvent2 + void setEvent2(IntrusivePtr event, const VkDependencyInfo* pDependencyInfo); + + +public: +// Original: vkCmdSetEvent2KHR + void setEvent2KHR(IntrusivePtr event, const VkDependencyInfo* pDependencyInfo); + + +public: +// Original: vkCmdResetEvent2 + void resetEvent2(IntrusivePtr event, VkPipelineStageFlags2 stageMask); + + +public: +// Original: vkCmdResetEvent2KHR + void resetEvent2KHR(IntrusivePtr event, VkPipelineStageFlags2 stageMask); + + +public: +// Original: vkCmdWaitEvents2 + void waitEvents2(uint32_t eventCount, const std::vector>& pEvents, const VkDependencyInfo* pDependencyInfos); + + +public: +// Original: vkCmdWaitEvents2KHR + void waitEvents2KHR(uint32_t eventCount, const std::vector>& pEvents, const VkDependencyInfo* pDependencyInfos); + + +public: +// Original: vkCmdPipelineBarrier2 + void pipelineBarrier2(const VkDependencyInfo* pDependencyInfo); + + +public: +// Original: vkCmdPipelineBarrier2KHR + void pipelineBarrier2KHR(const VkDependencyInfo* pDependencyInfo); + + +public: +// Original: vkCmdWriteTimestamp2 + void writeTimestamp2(VkPipelineStageFlags2 stage, IntrusivePtr queryPool, uint32_t query); + + +public: +// Original: vkCmdWriteTimestamp2KHR + void writeTimestamp2KHR(VkPipelineStageFlags2 stage, IntrusivePtr queryPool, uint32_t query); + + +public: +// Original: vkCmdWriteBufferMarker2AMD + void writeBufferMarker2AMD(VkPipelineStageFlags2 stage, IntrusivePtr dstBuffer, VkDeviceSize dstOffset, uint32_t marker); + + +public: +// Original: vkCmdDecodeVideoKHR + void decodeVideoKHR(const VkVideoDecodeInfoKHR* pDecodeInfo); + + +public: +// Original: vkCmdBeginVideoCodingKHR + void beginVideoCodingKHR(const VkVideoBeginCodingInfoKHR* pBeginInfo); + + +public: +// Original: vkCmdControlVideoCodingKHR + void controlVideoCodingKHR(const VkVideoCodingControlInfoKHR* pCodingControlInfo); + + +public: +// Original: vkCmdEndVideoCodingKHR + void endVideoCodingKHR(const VkVideoEndCodingInfoKHR* pEndCodingInfo); + + +public: +// Original: vkCmdEncodeVideoKHR + void encodeVideoKHR(const VkVideoEncodeInfoKHR* pEncodeInfo); + + +public: +// Original: vkCmdDecompressMemoryNV + void decompressMemoryNV(uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions); + + +public: +// Original: vkCmdDecompressMemoryIndirectCountNV + void decompressMemoryIndirectCountNV(VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride); + + +public: +// Original: vkCmdBuildPartitionedAccelerationStructuresNV + void buildPartitionedAccelerationStructuresNV(const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo); + + +public: +// Original: vkCmdCuLaunchKernelNVX + void cuLaunchKernelNVX(const VkCuLaunchInfoNVX* pLaunchInfo); + + +public: +// Original: vkCmdBindDescriptorBuffersEXT + void bindDescriptorBuffersEXT(uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos); + + +public: +// Original: vkCmdSetDescriptorBufferOffsetsEXT + void setDescriptorBufferOffsetsEXT(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets); + + +public: +// Original: vkCmdBindDescriptorBufferEmbeddedSamplersEXT + void bindDescriptorBufferEmbeddedSamplersEXT(VkPipelineBindPoint pipelineBindPoint, IntrusivePtr layout, uint32_t set); + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkCmdCudaLaunchKernelNV + void cudaLaunchKernelNV(const VkCudaLaunchInfoNV* pLaunchInfo); +#endif + + +public: +// Original: vkCmdBeginRendering + void beginRendering(const VkRenderingInfo* pRenderingInfo); + + +public: +// Original: vkCmdBeginRenderingKHR + void beginRenderingKHR(const VkRenderingInfo* pRenderingInfo); + + +public: +// Original: vkCmdEndRendering + void endRendering(); + + +public: +// Original: vkCmdEndRendering2EXT + void endRendering2EXT(const VkRenderingEndInfoEXT* pRenderingEndInfo); + + +public: +// Original: vkCmdEndRenderingKHR + void endRenderingKHR(); + + +public: +// Original: vkCmdBuildMicromapsEXT + void buildMicromapsEXT(uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); + + +public: +// Original: vkCmdCopyMicromapEXT + void copyMicromapEXT(const VkCopyMicromapInfoEXT* pInfo); + + +public: +// Original: vkCmdCopyMicromapToMemoryEXT + void copyMicromapToMemoryEXT(const VkCopyMicromapToMemoryInfoEXT* pInfo); + + +public: +// Original: vkCmdCopyMemoryToMicromapEXT + void copyMemoryToMicromapEXT(const VkCopyMemoryToMicromapInfoEXT* pInfo); + + +public: +// Original: vkCmdWriteMicromapsPropertiesEXT + void writeMicromapsPropertiesEXT(uint32_t micromapCount, const std::vector>& pMicromaps, VkQueryType queryType, IntrusivePtr queryPool, uint32_t firstQuery); + + +public: +// Original: vkCmdBindTileMemoryQCOM + void bindTileMemoryQCOM(const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo); + + +public: +// Original: vkCmdOpticalFlowExecuteNV + void opticalFlowExecuteNV(IntrusivePtr session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo); + + +public: +// Original: vkCmdSetDepthBias2EXT + void setDepthBias2EXT(const VkDepthBiasInfoEXT* pDepthBiasInfo); + + +public: +// Original: vkCmdBindShadersEXT + void bindShadersEXT(uint32_t stageCount, const VkShaderStageFlagBits* pStages, const std::vector>& pShaders); + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkCmdInitializeGraphScratchMemoryAMDX + void initializeGraphScratchMemoryAMDX(IntrusivePtr executionGraph, VkDeviceAddress scratch, VkDeviceSize scratchSize); +#endif + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkCmdDispatchGraphAMDX + void dispatchGraphAMDX(VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo); +#endif + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkCmdDispatchGraphIndirectAMDX + void dispatchGraphIndirectAMDX(VkDeviceAddress scratch, VkDeviceSize scratchSize, const VkDispatchGraphCountInfoAMDX* pCountInfo); +#endif + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkCmdDispatchGraphIndirectCountAMDX + void dispatchGraphIndirectCountAMDX(VkDeviceAddress scratch, VkDeviceSize scratchSize, VkDeviceAddress countInfo); +#endif + + +public: +// Original: vkCmdBindDescriptorSets2 + void bindDescriptorSets2(const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo); + + +public: +// Original: vkCmdBindDescriptorSets2KHR + void bindDescriptorSets2KHR(const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo); + + +public: +// Original: vkCmdPushConstants2 + void pushConstants2(const VkPushConstantsInfo* pPushConstantsInfo); + + +public: +// Original: vkCmdPushConstants2KHR + void pushConstants2KHR(const VkPushConstantsInfo* pPushConstantsInfo); + + +public: +// Original: vkCmdPushDescriptorSet2 + void pushDescriptorSet2(const VkPushDescriptorSetInfo* pPushDescriptorSetInfo); + + +public: +// Original: vkCmdPushDescriptorSet2KHR + void pushDescriptorSet2KHR(const VkPushDescriptorSetInfo* pPushDescriptorSetInfo); + + +public: +// Original: vkCmdPushDescriptorSetWithTemplate2 + void pushDescriptorSetWithTemplate2(const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo); + + +public: +// Original: vkCmdPushDescriptorSetWithTemplate2KHR + void pushDescriptorSetWithTemplate2KHR(const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo); + + +public: +// Original: vkCmdSetDescriptorBufferOffsets2EXT + void setDescriptorBufferOffsets2EXT(const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo); + + +public: +// Original: vkCmdBindDescriptorBufferEmbeddedSamplers2EXT + void bindDescriptorBufferEmbeddedSamplers2EXT(const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo); + + +public: +// Original: vkCmdSetRenderingAttachmentLocations + void setRenderingAttachmentLocations(const VkRenderingAttachmentLocationInfo* pLocationInfo); + + +public: +// Original: vkCmdSetRenderingAttachmentLocationsKHR + void setRenderingAttachmentLocationsKHR(const VkRenderingAttachmentLocationInfo* pLocationInfo); + + +public: +// Original: vkCmdSetRenderingInputAttachmentIndices + void setRenderingInputAttachmentIndices(const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo); + + +public: +// Original: vkCmdSetRenderingInputAttachmentIndicesKHR + void setRenderingInputAttachmentIndicesKHR(const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo); + + +public: +// Original: vkCmdSetDepthClampRangeEXT + void setDepthClampRangeEXT(VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange); + + +public: +// Original: vkCmdConvertCooperativeVectorMatrixNV + void convertCooperativeVectorMatrixNV(uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos); + + +public: +// Original: vkCmdDispatchTileQCOM + void dispatchTileQCOM(); + + +public: +// Original: vkCmdBeginPerTileExecutionQCOM + void beginPerTileExecutionQCOM(const VkPerTileBeginInfoQCOM* pPerTileBeginInfo); + + +public: +// Original: vkCmdEndPerTileExecutionQCOM + void endPerTileExecutionQCOM(const VkPerTileEndInfoQCOM* pPerTileEndInfo); + +}; +using PCommandBuffer = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandPool.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandPool.cpp new file mode 100644 index 0000000..a9ab2e8 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandPool.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + CommandPool::CommandPool(IntrusivePtr owner0, VkCommandPool handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + CommandPool::~CommandPool() { + if (_handle && _owned) { + (void)vk.vkDestroyCommandPool(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateCommandPool +CommandPool::CommandPool(IntrusivePtr parent, const VkCommandPoolCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkCommandPool _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateCommandPool(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateCommandPool failed"); + _handle = _out; +} +// Original: vkCreateCommandPool (factory) +IntrusivePtr CommandPool::create(IntrusivePtr parent, const VkCommandPoolCreateInfo* pCreateInfo) { + return IntrusivePtr(new CommandPool(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandPool.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandPool.hpp new file mode 100644 index 0000000..b5ec7be --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CommandPool.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkCommandPool +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class CommandPool : public RefCounted { +public: + VkCommandPool getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkCommandPool handle) { + return IntrusivePtr(new CommandPool(owner0, handle, false)); + } +private: + explicit CommandPool(IntrusivePtr owner0, VkCommandPool handle, bool owned); + ~CommandPool() override; +private: + VkCommandPool _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateCommandPool + explicit CommandPool(IntrusivePtr parent, const VkCommandPoolCreateInfo* pCreateInfo); +// Original: vkCreateCommandPool (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkCommandPoolCreateInfo* pCreateInfo); + +}; +using PCommandPool = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuFunctionNVX.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuFunctionNVX.cpp new file mode 100644 index 0000000..aa6aeb7 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuFunctionNVX.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + CuFunctionNVX::CuFunctionNVX(IntrusivePtr owner0, VkCuFunctionNVX handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + CuFunctionNVX::~CuFunctionNVX() { + if (_handle && _owned) { + (void)vk.vkDestroyCuFunctionNVX(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateCuFunctionNVX +CuFunctionNVX::CuFunctionNVX(IntrusivePtr parent, const VkCuFunctionCreateInfoNVX* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkCuFunctionNVX _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateCuFunctionNVX(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateCuFunctionNVX failed"); + _handle = _out; +} +// Original: vkCreateCuFunctionNVX (factory) +IntrusivePtr CuFunctionNVX::create(IntrusivePtr parent, const VkCuFunctionCreateInfoNVX* pCreateInfo) { + return IntrusivePtr(new CuFunctionNVX(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuFunctionNVX.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuFunctionNVX.hpp new file mode 100644 index 0000000..cabb280 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuFunctionNVX.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkCuFunctionNVX +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class CuFunctionNVX : public RefCounted { +public: + VkCuFunctionNVX getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkCuFunctionNVX handle) { + return IntrusivePtr(new CuFunctionNVX(owner0, handle, false)); + } +private: + explicit CuFunctionNVX(IntrusivePtr owner0, VkCuFunctionNVX handle, bool owned); + ~CuFunctionNVX() override; +private: + VkCuFunctionNVX _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateCuFunctionNVX + explicit CuFunctionNVX(IntrusivePtr parent, const VkCuFunctionCreateInfoNVX* pCreateInfo); +// Original: vkCreateCuFunctionNVX (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkCuFunctionCreateInfoNVX* pCreateInfo); + +}; +using PCuFunctionNVX = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuModuleNVX.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuModuleNVX.cpp new file mode 100644 index 0000000..710fd23 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuModuleNVX.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + CuModuleNVX::CuModuleNVX(IntrusivePtr owner0, VkCuModuleNVX handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + CuModuleNVX::~CuModuleNVX() { + if (_handle && _owned) { + (void)vk.vkDestroyCuModuleNVX(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateCuModuleNVX +CuModuleNVX::CuModuleNVX(IntrusivePtr parent, const VkCuModuleCreateInfoNVX* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkCuModuleNVX _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateCuModuleNVX(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateCuModuleNVX failed"); + _handle = _out; +} +// Original: vkCreateCuModuleNVX (factory) +IntrusivePtr CuModuleNVX::create(IntrusivePtr parent, const VkCuModuleCreateInfoNVX* pCreateInfo) { + return IntrusivePtr(new CuModuleNVX(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuModuleNVX.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuModuleNVX.hpp new file mode 100644 index 0000000..9c3bfce --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CuModuleNVX.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkCuModuleNVX +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class CuModuleNVX : public RefCounted { +public: + VkCuModuleNVX getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkCuModuleNVX handle) { + return IntrusivePtr(new CuModuleNVX(owner0, handle, false)); + } +private: + explicit CuModuleNVX(IntrusivePtr owner0, VkCuModuleNVX handle, bool owned); + ~CuModuleNVX() override; +private: + VkCuModuleNVX _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateCuModuleNVX + explicit CuModuleNVX(IntrusivePtr parent, const VkCuModuleCreateInfoNVX* pCreateInfo); +// Original: vkCreateCuModuleNVX (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkCuModuleCreateInfoNVX* pCreateInfo); + +}; +using PCuModuleNVX = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaFunctionNV.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaFunctionNV.cpp new file mode 100644 index 0000000..714c062 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaFunctionNV.cpp @@ -0,0 +1,37 @@ +#include +#include + + +namespace VulkanPP { + + CudaFunctionNV::CudaFunctionNV(IntrusivePtr owner0, VkCudaFunctionNV handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + CudaFunctionNV::~CudaFunctionNV() { + if (_handle && _owned) { +#if defined(VK_ENABLE_BETA_EXTENSIONS) + (void)vk.vkDestroyCudaFunctionNV(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; +#endif + } +} + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkCreateCudaFunctionNV +CudaFunctionNV::CudaFunctionNV(IntrusivePtr parent, const VkCudaFunctionCreateInfoNV* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkCudaFunctionNV _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateCudaFunctionNV(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateCudaFunctionNV failed"); + _handle = _out; +} +// Original: vkCreateCudaFunctionNV (factory) +IntrusivePtr CudaFunctionNV::create(IntrusivePtr parent, const VkCudaFunctionCreateInfoNV* pCreateInfo) { + return IntrusivePtr(new CudaFunctionNV(parent, pCreateInfo)); +} +#endif + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaFunctionNV.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaFunctionNV.hpp new file mode 100644 index 0000000..d0edd27 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaFunctionNV.hpp @@ -0,0 +1,45 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkCudaFunctionNV +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class CudaFunctionNV : public RefCounted { +public: + VkCudaFunctionNV getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkCudaFunctionNV handle) { + return IntrusivePtr(new CudaFunctionNV(owner0, handle, false)); + } +private: + explicit CudaFunctionNV(IntrusivePtr owner0, VkCudaFunctionNV handle, bool owned); + ~CudaFunctionNV() override; +private: + VkCudaFunctionNV _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkCreateCudaFunctionNV + explicit CudaFunctionNV(IntrusivePtr parent, const VkCudaFunctionCreateInfoNV* pCreateInfo); +// Original: vkCreateCudaFunctionNV (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkCudaFunctionCreateInfoNV* pCreateInfo); +#endif + +}; +using PCudaFunctionNV = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaModuleNV.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaModuleNV.cpp new file mode 100644 index 0000000..81fe862 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaModuleNV.cpp @@ -0,0 +1,37 @@ +#include +#include + + +namespace VulkanPP { + + CudaModuleNV::CudaModuleNV(IntrusivePtr owner0, VkCudaModuleNV handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + CudaModuleNV::~CudaModuleNV() { + if (_handle && _owned) { +#if defined(VK_ENABLE_BETA_EXTENSIONS) + (void)vk.vkDestroyCudaModuleNV(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; +#endif + } +} + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkCreateCudaModuleNV +CudaModuleNV::CudaModuleNV(IntrusivePtr parent, const VkCudaModuleCreateInfoNV* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkCudaModuleNV _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateCudaModuleNV(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateCudaModuleNV failed"); + _handle = _out; +} +// Original: vkCreateCudaModuleNV (factory) +IntrusivePtr CudaModuleNV::create(IntrusivePtr parent, const VkCudaModuleCreateInfoNV* pCreateInfo) { + return IntrusivePtr(new CudaModuleNV(parent, pCreateInfo)); +} +#endif + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaModuleNV.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaModuleNV.hpp new file mode 100644 index 0000000..48c030c --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/CudaModuleNV.hpp @@ -0,0 +1,45 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkCudaModuleNV +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class CudaModuleNV : public RefCounted { +public: + VkCudaModuleNV getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkCudaModuleNV handle) { + return IntrusivePtr(new CudaModuleNV(owner0, handle, false)); + } +private: + explicit CudaModuleNV(IntrusivePtr owner0, VkCudaModuleNV handle, bool owned); + ~CudaModuleNV() override; +private: + VkCudaModuleNV _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkCreateCudaModuleNV + explicit CudaModuleNV(IntrusivePtr parent, const VkCudaModuleCreateInfoNV* pCreateInfo); +// Original: vkCreateCudaModuleNV (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkCudaModuleCreateInfoNV* pCreateInfo); +#endif + +}; +using PCudaModuleNV = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugReportCallbackEXT.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugReportCallbackEXT.cpp new file mode 100644 index 0000000..3caa697 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugReportCallbackEXT.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + DebugReportCallbackEXT::DebugReportCallbackEXT(IntrusivePtr owner0, VkDebugReportCallbackEXT handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + DebugReportCallbackEXT::~DebugReportCallbackEXT() { + if (_handle && _owned) { + (void)vk.vkDestroyDebugReportCallbackEXT(_owner0 ? _owner0->getHandle() : (VkInstance)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateDebugReportCallbackEXT +DebugReportCallbackEXT::DebugReportCallbackEXT(IntrusivePtr parent, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkDebugReportCallbackEXT _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDebugReportCallbackEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDebugReportCallbackEXT failed"); + _handle = _out; +} +// Original: vkCreateDebugReportCallbackEXT (factory) +IntrusivePtr DebugReportCallbackEXT::create(IntrusivePtr parent, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new DebugReportCallbackEXT(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugReportCallbackEXT.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugReportCallbackEXT.hpp new file mode 100644 index 0000000..8e5dfcc --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugReportCallbackEXT.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Instance; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDebugReportCallbackEXT +// Holds (destroy/free owners + creation parent, or producer parent): Instance +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DebugReportCallbackEXT : public RefCounted { +public: + VkDebugReportCallbackEXT getHandle() const noexcept { return _handle; } + IntrusivePtr getInstance() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDebugReportCallbackEXT handle) { + return IntrusivePtr(new DebugReportCallbackEXT(owner0, handle, false)); + } +private: + explicit DebugReportCallbackEXT(IntrusivePtr owner0, VkDebugReportCallbackEXT handle, bool owned); + ~DebugReportCallbackEXT() override; +private: + VkDebugReportCallbackEXT _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateDebugReportCallbackEXT + explicit DebugReportCallbackEXT(IntrusivePtr parent, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo); +// Original: vkCreateDebugReportCallbackEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo); + +}; +using PDebugReportCallbackEXT = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugUtilsMessengerEXT.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugUtilsMessengerEXT.cpp new file mode 100644 index 0000000..ab30e89 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugUtilsMessengerEXT.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + DebugUtilsMessengerEXT::DebugUtilsMessengerEXT(IntrusivePtr owner0, VkDebugUtilsMessengerEXT handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + DebugUtilsMessengerEXT::~DebugUtilsMessengerEXT() { + if (_handle && _owned) { + (void)vk.vkDestroyDebugUtilsMessengerEXT(_owner0 ? _owner0->getHandle() : (VkInstance)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateDebugUtilsMessengerEXT +DebugUtilsMessengerEXT::DebugUtilsMessengerEXT(IntrusivePtr parent, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkDebugUtilsMessengerEXT _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDebugUtilsMessengerEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDebugUtilsMessengerEXT failed"); + _handle = _out; +} +// Original: vkCreateDebugUtilsMessengerEXT (factory) +IntrusivePtr DebugUtilsMessengerEXT::create(IntrusivePtr parent, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new DebugUtilsMessengerEXT(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugUtilsMessengerEXT.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugUtilsMessengerEXT.hpp new file mode 100644 index 0000000..df17add --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DebugUtilsMessengerEXT.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Instance; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDebugUtilsMessengerEXT +// Holds (destroy/free owners + creation parent, or producer parent): Instance +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DebugUtilsMessengerEXT : public RefCounted { +public: + VkDebugUtilsMessengerEXT getHandle() const noexcept { return _handle; } + IntrusivePtr getInstance() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDebugUtilsMessengerEXT handle) { + return IntrusivePtr(new DebugUtilsMessengerEXT(owner0, handle, false)); + } +private: + explicit DebugUtilsMessengerEXT(IntrusivePtr owner0, VkDebugUtilsMessengerEXT handle, bool owned); + ~DebugUtilsMessengerEXT() override; +private: + VkDebugUtilsMessengerEXT _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateDebugUtilsMessengerEXT + explicit DebugUtilsMessengerEXT(IntrusivePtr parent, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo); +// Original: vkCreateDebugUtilsMessengerEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo); + +}; +using PDebugUtilsMessengerEXT = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeferredOperationKHR.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeferredOperationKHR.cpp new file mode 100644 index 0000000..ea42bba --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeferredOperationKHR.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + DeferredOperationKHR::DeferredOperationKHR(IntrusivePtr owner0, VkDeferredOperationKHR handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + DeferredOperationKHR::~DeferredOperationKHR() { + if (_handle && _owned) { + (void)vk.vkDestroyDeferredOperationKHR(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateDeferredOperationKHR +DeferredOperationKHR::DeferredOperationKHR(IntrusivePtr parent) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkDeferredOperationKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDeferredOperationKHR(parent->getHandle(), nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDeferredOperationKHR failed"); + _handle = _out; +} +// Original: vkCreateDeferredOperationKHR (factory) +IntrusivePtr DeferredOperationKHR::create(IntrusivePtr parent) { + return IntrusivePtr(new DeferredOperationKHR(parent)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeferredOperationKHR.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeferredOperationKHR.hpp new file mode 100644 index 0000000..2b34a5b --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeferredOperationKHR.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDeferredOperationKHR +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DeferredOperationKHR : public RefCounted { +public: + VkDeferredOperationKHR getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDeferredOperationKHR handle) { + return IntrusivePtr(new DeferredOperationKHR(owner0, handle, false)); + } +private: + explicit DeferredOperationKHR(IntrusivePtr owner0, VkDeferredOperationKHR handle, bool owned); + ~DeferredOperationKHR() override; +private: + VkDeferredOperationKHR _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateDeferredOperationKHR + explicit DeferredOperationKHR(IntrusivePtr parent); +// Original: vkCreateDeferredOperationKHR (factory) + static IntrusivePtr create(IntrusivePtr parent); + +}; +using PDeferredOperationKHR = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorPool.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorPool.cpp new file mode 100644 index 0000000..1476102 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorPool.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + DescriptorPool::DescriptorPool(IntrusivePtr owner0, VkDescriptorPool handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + DescriptorPool::~DescriptorPool() { + if (_handle && _owned) { + (void)vk.vkDestroyDescriptorPool(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateDescriptorPool +DescriptorPool::DescriptorPool(IntrusivePtr parent, const VkDescriptorPoolCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkDescriptorPool _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDescriptorPool(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDescriptorPool failed"); + _handle = _out; +} +// Original: vkCreateDescriptorPool (factory) +IntrusivePtr DescriptorPool::create(IntrusivePtr parent, const VkDescriptorPoolCreateInfo* pCreateInfo) { + return IntrusivePtr(new DescriptorPool(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorPool.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorPool.hpp new file mode 100644 index 0000000..79fb9ee --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorPool.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDescriptorPool +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DescriptorPool : public RefCounted { +public: + VkDescriptorPool getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDescriptorPool handle) { + return IntrusivePtr(new DescriptorPool(owner0, handle, false)); + } +private: + explicit DescriptorPool(IntrusivePtr owner0, VkDescriptorPool handle, bool owned); + ~DescriptorPool() override; +private: + VkDescriptorPool _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateDescriptorPool + explicit DescriptorPool(IntrusivePtr parent, const VkDescriptorPoolCreateInfo* pCreateInfo); +// Original: vkCreateDescriptorPool (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDescriptorPoolCreateInfo* pCreateInfo); + +}; +using PDescriptorPool = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSet.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSet.cpp new file mode 100644 index 0000000..9b550ba --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSet.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +#include + + +namespace VulkanPP { + + DescriptorSet::DescriptorSet(IntrusivePtr owner0, IntrusivePtr owner1, VkDescriptorSet handle, bool owned, const std::vector>& owners_DescriptorSetLayout) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _owner1(std::move(owner1)) + , _lifetime_owners_DescriptorSetLayout(owners_DescriptorSetLayout) +{ } + + DescriptorSet::~DescriptorSet() { + if (_handle && _owned) { + (void)vk.vkFreeDescriptorSets(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _owner1 ? _owner1->getHandle() : (VkDescriptorPool)VK_NULL_HANDLE, 0, 1, &_handle); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkAllocateDescriptorSets +std::vector> DescriptorSet::createMany(IntrusivePtr parent, const VkDescriptorSetAllocateInfo* pAllocateInfo, const std::vector>& owners_DescriptorSetLayout) { + std::vector _out; + _out.resize(pAllocateInfo->descriptorSetCount); + auto _res = vk.vkAllocateDescriptorSets(parent->getHandle(), pAllocateInfo, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkAllocateDescriptorSets failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new DescriptorSet(parent, parent, h, true, owners_DescriptorSetLayout)); + } + return _ret; +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSet.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSet.hpp new file mode 100644 index 0000000..65d1252 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSet.hpp @@ -0,0 +1,47 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class DescriptorPool; +class DescriptorSetLayout; +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDescriptorSet +// Holds (destroy/free owners + creation parent, or producer parent): Device, DescriptorPool +// Keeps (from *CreateInfo/*AllocateInfo): DescriptorSetLayout[] via VkDescriptorSetAllocateInfo::pSetLayouts[] +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DescriptorSet : public RefCounted { +public: + VkDescriptorSet getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + IntrusivePtr getDescriptorPool() const noexcept { return _owner1; } + const std::vector>& getDescriptorSetLayouts() const noexcept { return _lifetime_owners_DescriptorSetLayout; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, IntrusivePtr owner1, VkDescriptorSet handle) { + return IntrusivePtr(new DescriptorSet(owner0, owner1, handle, false, std::vector>())); + } +private: + explicit DescriptorSet(IntrusivePtr owner0, IntrusivePtr owner1, VkDescriptorSet handle, bool owned, const std::vector>& owners_DescriptorSetLayout); + ~DescriptorSet() override; +private: + VkDescriptorSet _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + IntrusivePtr _owner1; + std::vector> _lifetime_owners_DescriptorSetLayout; + +public: +// Original: vkAllocateDescriptorSets + static std::vector> createMany(IntrusivePtr parent, const VkDescriptorSetAllocateInfo* pAllocateInfo, const std::vector>& owners_DescriptorSetLayout); + +}; +using PDescriptorSet = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSetLayout.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSetLayout.cpp new file mode 100644 index 0000000..b638631 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSetLayout.cpp @@ -0,0 +1,36 @@ +#include +#include +#include + + +namespace VulkanPP { + + DescriptorSetLayout::DescriptorSetLayout(IntrusivePtr owner0, VkDescriptorSetLayout handle, bool owned, const std::vector>& owners_Sampler) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _lifetime_owners_Sampler(owners_Sampler) +{ } + + DescriptorSetLayout::~DescriptorSetLayout() { + if (_handle && _owned) { + (void)vk.vkDestroyDescriptorSetLayout(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateDescriptorSetLayout +DescriptorSetLayout::DescriptorSetLayout(IntrusivePtr parent, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const std::vector>& owners_Sampler) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) + , _lifetime_owners_Sampler(owners_Sampler) +{ + VkDescriptorSetLayout _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDescriptorSetLayout(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDescriptorSetLayout failed"); + _handle = _out; +} +// Original: vkCreateDescriptorSetLayout (factory) +IntrusivePtr DescriptorSetLayout::create(IntrusivePtr parent, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const std::vector>& owners_Sampler) { + return IntrusivePtr(new DescriptorSetLayout(parent, pCreateInfo, owners_Sampler)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSetLayout.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSetLayout.hpp new file mode 100644 index 0000000..f637f36 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorSetLayout.hpp @@ -0,0 +1,46 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; +class Sampler; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDescriptorSetLayout +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): Sampler[] via VkDescriptorSetLayoutBinding::pImmutableSamplers[] +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DescriptorSetLayout : public RefCounted { +public: + VkDescriptorSetLayout getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + const std::vector>& getSamplers() const noexcept { return _lifetime_owners_Sampler; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDescriptorSetLayout handle) { + return IntrusivePtr(new DescriptorSetLayout(owner0, handle, false, std::vector>())); + } +private: + explicit DescriptorSetLayout(IntrusivePtr owner0, VkDescriptorSetLayout handle, bool owned, const std::vector>& owners_Sampler); + ~DescriptorSetLayout() override; +private: + VkDescriptorSetLayout _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + std::vector> _lifetime_owners_Sampler; + +public: +// Original: vkCreateDescriptorSetLayout + explicit DescriptorSetLayout(IntrusivePtr parent, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const std::vector>& owners_Sampler); +// Original: vkCreateDescriptorSetLayout (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const std::vector>& owners_Sampler); + +}; +using PDescriptorSetLayout = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorUpdateTemplate.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorUpdateTemplate.cpp new file mode 100644 index 0000000..b789cc5 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorUpdateTemplate.cpp @@ -0,0 +1,55 @@ +#include +#include +#include +#include + + +namespace VulkanPP { + + DescriptorUpdateTemplate::DescriptorUpdateTemplate(IntrusivePtr owner0, VkDescriptorUpdateTemplate handle, bool owned, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _lifetime_owner_DescriptorSetLayout(std::move(owner_DescriptorSetLayout)) + , _lifetime_owner_PipelineLayout(std::move(owner_PipelineLayout)) +{ } + + DescriptorUpdateTemplate::~DescriptorUpdateTemplate() { + if (_handle && _owned) { + (void)vk.vkDestroyDescriptorUpdateTemplate(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateDescriptorUpdateTemplate +DescriptorUpdateTemplate::DescriptorUpdateTemplate(IntrusivePtr parent, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) + , _lifetime_owner_DescriptorSetLayout(owner_DescriptorSetLayout) + , _lifetime_owner_PipelineLayout(owner_PipelineLayout) +{ + VkDescriptorUpdateTemplate _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDescriptorUpdateTemplate(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDescriptorUpdateTemplate failed"); + _handle = _out; +} +// Original: vkCreateDescriptorUpdateTemplate (factory) +IntrusivePtr DescriptorUpdateTemplate::create(IntrusivePtr parent, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout) { + return IntrusivePtr(new DescriptorUpdateTemplate(parent, pCreateInfo, owner_DescriptorSetLayout, owner_PipelineLayout)); +} + +// Original: vkCreateDescriptorUpdateTemplateKHR +DescriptorUpdateTemplate::DescriptorUpdateTemplate(IntrusivePtr parent, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) + , _lifetime_owner_DescriptorSetLayout(owner_DescriptorSetLayout) + , _lifetime_owner_PipelineLayout(owner_PipelineLayout) +{ + VkDescriptorUpdateTemplate _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDescriptorUpdateTemplateKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDescriptorUpdateTemplateKHR failed"); + _handle = _out; +} +// Original: vkCreateDescriptorUpdateTemplateKHR (factory) +IntrusivePtr DescriptorUpdateTemplate::create(IntrusivePtr parent, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout) { + return IntrusivePtr(new DescriptorUpdateTemplate(parent, pCreateInfo, owner_DescriptorSetLayout, owner_PipelineLayout)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorUpdateTemplate.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorUpdateTemplate.hpp new file mode 100644 index 0000000..46b4ef7 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DescriptorUpdateTemplate.hpp @@ -0,0 +1,56 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class DescriptorSetLayout; +class Device; +class PipelineLayout; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDescriptorUpdateTemplate +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): DescriptorSetLayout via VkDescriptorUpdateTemplateCreateInfo::descriptorSetLayout; PipelineLayout via VkDescriptorUpdateTemplateCreateInfo::pipelineLayout +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DescriptorUpdateTemplate : public RefCounted { +public: + VkDescriptorUpdateTemplate getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + IntrusivePtr getDescriptorSetLayout() const noexcept { return _lifetime_owner_DescriptorSetLayout; } + IntrusivePtr getPipelineLayout() const noexcept { return _lifetime_owner_PipelineLayout; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDescriptorUpdateTemplate handle) { + return IntrusivePtr(new DescriptorUpdateTemplate(owner0, handle, false, IntrusivePtr(), IntrusivePtr())); + } +private: + explicit DescriptorUpdateTemplate(IntrusivePtr owner0, VkDescriptorUpdateTemplate handle, bool owned, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout); + ~DescriptorUpdateTemplate() override; +private: + VkDescriptorUpdateTemplate _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + IntrusivePtr _lifetime_owner_DescriptorSetLayout; + IntrusivePtr _lifetime_owner_PipelineLayout; + +public: +// Original: vkCreateDescriptorUpdateTemplate + explicit DescriptorUpdateTemplate(IntrusivePtr parent, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout); +// Original: vkCreateDescriptorUpdateTemplate (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout); + + +public: +// Original: vkCreateDescriptorUpdateTemplateKHR + explicit DescriptorUpdateTemplate(IntrusivePtr parent, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout); +// Original: vkCreateDescriptorUpdateTemplateKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, IntrusivePtr owner_DescriptorSetLayout, IntrusivePtr owner_PipelineLayout); + +}; +using PDescriptorUpdateTemplate = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Device.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Device.cpp new file mode 100644 index 0000000..2a8a2aa --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Device.cpp @@ -0,0 +1,1298 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace VulkanPP { + + Device::Device(IntrusivePtr owner0, VkDevice handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + Device::~Device() { + if (_handle && _owned) { + (void)vk.vkDestroyDevice(_handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateDevice +Device::Device(IntrusivePtr parent, const VkDeviceCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkDevice _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDevice(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDevice failed"); + _handle = _out; +} +// Original: vkCreateDevice (factory) +IntrusivePtr Device::create(IntrusivePtr parent, const VkDeviceCreateInfo* pCreateInfo) { + return IntrusivePtr(new Device(parent, pCreateInfo)); +} + +// Original: vkGetDeviceQueue +IntrusivePtr Device::getQueue(uint32_t queueFamilyIndex, uint32_t queueIndex) { + VkQueue _h = VK_NULL_HANDLE; + vk.vkGetDeviceQueue(_handle, queueFamilyIndex, queueIndex, &_h); + return IntrusivePtr(new Queue(IntrusivePtr(this), _h, false)); +} + +// Original: vkGetSwapchainImagesKHR +std::vector> Device::getImages(IntrusivePtr swapchain) { + uint32_t _count = 0; + auto _r1 = vk.vkGetSwapchainImagesKHR(_handle, swapchain->getHandle(), &_count, nullptr); + if (_r1 != VK_SUCCESS && _r1 != VK_INCOMPLETE) throw std::runtime_error("vkGetSwapchainImagesKHR (count) failed"); + std::vector _out; _out.resize(_count); + auto _r2 = vk.vkGetSwapchainImagesKHR(_handle, swapchain->getHandle(), &_count, _out.data()); + if (_r2 != VK_SUCCESS) throw std::runtime_error("vkGetSwapchainImagesKHR (fill) failed"); + std::vector> _ret; _ret.reserve(_out.size()); + IntrusivePtr _self(this); + for (auto h : _out) { _ret.emplace_back(new Image(_self, h, false)); } + return _ret; +} + +// Original: vkGetDeviceQueue2 +IntrusivePtr Device::getQueue(const VkDeviceQueueInfo2* pQueueInfo) { + VkQueue _h = VK_NULL_HANDLE; + vk.vkGetDeviceQueue2(_handle, pQueueInfo, &_h); + return IntrusivePtr(new Queue(IntrusivePtr(this), _h, false)); +} + +// Original: vkGetDeviceProcAddr +PFN_vkVoidFunction Device::getProcAddr(const char* pName) { + return vk.vkGetDeviceProcAddr(_handle, pName); +} + +// Original: vkDeviceWaitIdle +VkResult Device::waitIdle() { + return vk.vkDeviceWaitIdle(_handle); +} + +// Original: vkMapMemory +VkResult Device::mapMemory(IntrusivePtr memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void* ppData) { + return vk.vkMapMemory(_handle, memory->getHandle(), offset, size, flags, ppData); +} + +// Original: vkUnmapMemory +void Device::unmapMemory(IntrusivePtr memory) { + vk.vkUnmapMemory(_handle, memory->getHandle()); +} + +// Original: vkFlushMappedMemoryRanges +VkResult Device::flushMappedMemoryRanges(uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { + return vk.vkFlushMappedMemoryRanges(_handle, memoryRangeCount, pMemoryRanges); +} + +// Original: vkInvalidateMappedMemoryRanges +VkResult Device::invalidateMappedMemoryRanges(uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) { + return vk.vkInvalidateMappedMemoryRanges(_handle, memoryRangeCount, pMemoryRanges); +} + +// Original: vkGetDeviceMemoryCommitment +void Device::getMemoryCommitment(IntrusivePtr memory, VkDeviceSize* pCommittedMemoryInBytes) { + vk.vkGetDeviceMemoryCommitment(_handle, memory->getHandle(), pCommittedMemoryInBytes); +} + +// Original: vkGetBufferMemoryRequirements +void Device::getBufferMemoryRequirements(IntrusivePtr buffer, VkMemoryRequirements* pMemoryRequirements) { + vk.vkGetBufferMemoryRequirements(_handle, buffer->getHandle(), pMemoryRequirements); +} + +// Original: vkBindBufferMemory +VkResult Device::bindBufferMemory(IntrusivePtr buffer, IntrusivePtr memory, VkDeviceSize memoryOffset) { + return vk.vkBindBufferMemory(_handle, buffer->getHandle(), memory->getHandle(), memoryOffset); +} + +// Original: vkGetImageMemoryRequirements +void Device::getImageMemoryRequirements(IntrusivePtr image, VkMemoryRequirements* pMemoryRequirements) { + vk.vkGetImageMemoryRequirements(_handle, image->getHandle(), pMemoryRequirements); +} + +// Original: vkBindImageMemory +VkResult Device::bindImageMemory(IntrusivePtr image, IntrusivePtr memory, VkDeviceSize memoryOffset) { + return vk.vkBindImageMemory(_handle, image->getHandle(), memory->getHandle(), memoryOffset); +} + +// Original: vkGetImageSparseMemoryRequirements +void Device::getImageSparseMemoryRequirements(IntrusivePtr image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) { + vk.vkGetImageSparseMemoryRequirements(_handle, image->getHandle(), pSparseMemoryRequirementCount, pSparseMemoryRequirements); +} + +// Original: vkResetFences +VkResult Device::resetFences(uint32_t fenceCount, const std::vector>& pFences) { + std::vector _raw_pFences; _raw_pFences.reserve(pFences.size()); + for (auto const& it : pFences) _raw_pFences.push_back(it->getHandle()); + return vk.vkResetFences(_handle, fenceCount, pFences.size(), _raw_pFences.data()); +} + +// Original: vkGetFenceStatus +VkResult Device::getFenceStatus(IntrusivePtr fence) { + return vk.vkGetFenceStatus(_handle, fence->getHandle()); +} + +// Original: vkWaitForFences +VkResult Device::waitForFences(uint32_t fenceCount, const std::vector>& pFences, VkBool32 waitAll, uint64_t timeout) { + std::vector _raw_pFences; _raw_pFences.reserve(pFences.size()); + for (auto const& it : pFences) _raw_pFences.push_back(it->getHandle()); + return vk.vkWaitForFences(_handle, fenceCount, pFences.size(), _raw_pFences.data(), waitAll, timeout); +} + +// Original: vkGetEventStatus +VkResult Device::getEventStatus(IntrusivePtr event) { + return vk.vkGetEventStatus(_handle, event->getHandle()); +} + +// Original: vkSetEvent +VkResult Device::setEvent(IntrusivePtr event) { + return vk.vkSetEvent(_handle, event->getHandle()); +} + +// Original: vkResetEvent +VkResult Device::resetEvent(IntrusivePtr event) { + return vk.vkResetEvent(_handle, event->getHandle()); +} + +// Original: vkGetQueryPoolResults +VkResult Device::getQueryPoolResults(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) { + return vk.vkGetQueryPoolResults(_handle, queryPool->getHandle(), firstQuery, queryCount, dataSize, pData, stride, flags); +} + +// Original: vkResetQueryPool +void Device::resetQueryPool(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount) { + vk.vkResetQueryPool(_handle, queryPool->getHandle(), firstQuery, queryCount); +} + +// Original: vkResetQueryPoolEXT +void Device::resetQueryPoolEXT(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount) { + vk.vkResetQueryPoolEXT(_handle, queryPool->getHandle(), firstQuery, queryCount); +} + +// Original: vkGetImageSubresourceLayout +void Device::getImageSubresourceLayout(IntrusivePtr image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) { + vk.vkGetImageSubresourceLayout(_handle, image->getHandle(), pSubresource, pLayout); +} + +// Original: vkGetPipelineCacheData +VkResult Device::getPipelineCacheData(IntrusivePtr pipelineCache, size_t* pDataSize, void* pData) { + return vk.vkGetPipelineCacheData(_handle, pipelineCache->getHandle(), pDataSize, pData); +} + +// Original: vkMergePipelineCaches +VkResult Device::mergePipelineCaches(IntrusivePtr dstCache, uint32_t srcCacheCount, const std::vector>& pSrcCaches) { + std::vector _raw_pSrcCaches; _raw_pSrcCaches.reserve(pSrcCaches.size()); + for (auto const& it : pSrcCaches) _raw_pSrcCaches.push_back(it->getHandle()); + return vk.vkMergePipelineCaches(_handle, dstCache->getHandle(), srcCacheCount, pSrcCaches.size(), _raw_pSrcCaches.data()); +} + +// Original: vkGetPipelineKeyKHR +VkResult Device::getPipelineKeyKHR(const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey) { + return vk.vkGetPipelineKeyKHR(_handle, pPipelineCreateInfo, pPipelineKey); +} + +// Original: vkGetPipelineBinaryDataKHR +VkResult Device::getPipelineBinaryDataKHR(const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData) { + return vk.vkGetPipelineBinaryDataKHR(_handle, pInfo, pPipelineBinaryKey, pPipelineBinaryDataSize, pPipelineBinaryData); +} + +// Original: vkReleaseCapturedPipelineDataKHR +VkResult Device::releaseCapturedPipelineDataKHR(const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator) { + return vk.vkReleaseCapturedPipelineDataKHR(_handle, pInfo, pAllocator); +} + +// Original: vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI +VkResult Device::getSubpassShadingMaxWorkgroupSizeHUAWEI(IntrusivePtr renderpass, VkExtent2D* pMaxWorkgroupSize) { + return vk.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(_handle, renderpass->getHandle(), pMaxWorkgroupSize); +} + +// Original: vkResetDescriptorPool +VkResult Device::resetDescriptorPool(IntrusivePtr descriptorPool, VkDescriptorPoolResetFlags flags) { + return vk.vkResetDescriptorPool(_handle, descriptorPool->getHandle(), flags); +} + +// Original: vkUpdateDescriptorSets +void Device::updateDescriptorSets(uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) { + vk.vkUpdateDescriptorSets(_handle, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); +} + +// Original: vkGetRenderAreaGranularity +void Device::getRenderAreaGranularity(IntrusivePtr renderPass, VkExtent2D* pGranularity) { + vk.vkGetRenderAreaGranularity(_handle, renderPass->getHandle(), pGranularity); +} + +// Original: vkGetRenderingAreaGranularity +void Device::getRenderingAreaGranularity(const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity) { + vk.vkGetRenderingAreaGranularity(_handle, pRenderingAreaInfo, pGranularity); +} + +// Original: vkGetRenderingAreaGranularityKHR +void Device::getRenderingAreaGranularityKHR(const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity) { + vk.vkGetRenderingAreaGranularityKHR(_handle, pRenderingAreaInfo, pGranularity); +} + +// Original: vkResetCommandPool +VkResult Device::resetCommandPool(IntrusivePtr commandPool, VkCommandPoolResetFlags flags) { + return vk.vkResetCommandPool(_handle, commandPool->getHandle(), flags); +} + +// Original: vkAcquireNextImageKHR +VkResult Device::acquireNextImageKHR(IntrusivePtr swapchain, uint64_t timeout, IntrusivePtr semaphore, IntrusivePtr fence, uint32_t* pImageIndex) { + return vk.vkAcquireNextImageKHR(_handle, swapchain->getHandle(), timeout, semaphore->getHandle(), fence->getHandle(), pImageIndex); +} + +// Original: vkDebugMarkerSetObjectNameEXT +VkResult Device::debugMarkerSetObjectNameEXT(const VkDebugMarkerObjectNameInfoEXT* pNameInfo) { + return vk.vkDebugMarkerSetObjectNameEXT(_handle, pNameInfo); +} + +// Original: vkDebugMarkerSetObjectTagEXT +VkResult Device::debugMarkerSetObjectTagEXT(const VkDebugMarkerObjectTagInfoEXT* pTagInfo) { + return vk.vkDebugMarkerSetObjectTagEXT(_handle, pTagInfo); +} + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetMemoryWin32HandleNV +VkResult Device::getMemoryWin32HandleNV(IntrusivePtr memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle) { + return vk.vkGetMemoryWin32HandleNV(_handle, memory->getHandle(), handleType, pHandle); +} +#endif + +// Original: vkGetGeneratedCommandsMemoryRequirementsNV +void Device::getGeneratedCommandsMemoryRequirementsNV(const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetGeneratedCommandsMemoryRequirementsNV(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetGeneratedCommandsMemoryRequirementsEXT +void Device::getGeneratedCommandsMemoryRequirementsEXT(const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetGeneratedCommandsMemoryRequirementsEXT(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkUpdateIndirectExecutionSetPipelineEXT +void Device::updateIndirectExecutionSetPipelineEXT(IntrusivePtr indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites) { + vk.vkUpdateIndirectExecutionSetPipelineEXT(_handle, indirectExecutionSet->getHandle(), executionSetWriteCount, pExecutionSetWrites); +} + +// Original: vkUpdateIndirectExecutionSetShaderEXT +void Device::updateIndirectExecutionSetShaderEXT(IntrusivePtr indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites) { + vk.vkUpdateIndirectExecutionSetShaderEXT(_handle, indirectExecutionSet->getHandle(), executionSetWriteCount, pExecutionSetWrites); +} + +// Original: vkTrimCommandPool +void Device::trimCommandPool(IntrusivePtr commandPool, VkCommandPoolTrimFlags flags) { + vk.vkTrimCommandPool(_handle, commandPool->getHandle(), flags); +} + +// Original: vkTrimCommandPoolKHR +void Device::trimCommandPoolKHR(IntrusivePtr commandPool, VkCommandPoolTrimFlags flags) { + vk.vkTrimCommandPoolKHR(_handle, commandPool->getHandle(), flags); +} + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetMemoryWin32HandleKHR +VkResult Device::getMemoryWin32HandleKHR(const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { + return vk.vkGetMemoryWin32HandleKHR(_handle, pGetWin32HandleInfo, pHandle); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetMemoryWin32HandlePropertiesKHR +VkResult Device::getMemoryWin32HandlePropertiesKHR(VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) { + return vk.vkGetMemoryWin32HandlePropertiesKHR(_handle, handleType, handle, pMemoryWin32HandleProperties); +} +#endif + +// Original: vkGetMemoryFdKHR +VkResult Device::getMemoryFdKHR(const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) { + return vk.vkGetMemoryFdKHR(_handle, pGetFdInfo, pFd); +} + +// Original: vkGetMemoryFdPropertiesKHR +VkResult Device::getMemoryFdPropertiesKHR(VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) { + return vk.vkGetMemoryFdPropertiesKHR(_handle, handleType, fd, pMemoryFdProperties); +} + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkGetMemoryZirconHandleFUCHSIA +VkResult Device::getMemoryZirconHandleFUCHSIA(const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle) { + return vk.vkGetMemoryZirconHandleFUCHSIA(_handle, pGetZirconHandleInfo, pZirconHandle); +} +#endif + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkGetMemoryZirconHandlePropertiesFUCHSIA +VkResult Device::getMemoryZirconHandlePropertiesFUCHSIA(VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) { + return vk.vkGetMemoryZirconHandlePropertiesFUCHSIA(_handle, handleType, zirconHandle, pMemoryZirconHandleProperties); +} +#endif + +// Original: vkGetMemoryRemoteAddressNV +VkResult Device::getMemoryRemoteAddressNV(const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress) { + return vk.vkGetMemoryRemoteAddressNV(_handle, pMemoryGetRemoteAddressInfo, pAddress); +} + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetSemaphoreWin32HandleKHR +VkResult Device::getSemaphoreWin32HandleKHR(const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { + return vk.vkGetSemaphoreWin32HandleKHR(_handle, pGetWin32HandleInfo, pHandle); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkImportSemaphoreWin32HandleKHR +VkResult Device::importSemaphoreWin32HandleKHR(const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) { + return vk.vkImportSemaphoreWin32HandleKHR(_handle, pImportSemaphoreWin32HandleInfo); +} +#endif + +// Original: vkGetSemaphoreFdKHR +VkResult Device::getSemaphoreFdKHR(const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) { + return vk.vkGetSemaphoreFdKHR(_handle, pGetFdInfo, pFd); +} + +// Original: vkImportSemaphoreFdKHR +VkResult Device::importSemaphoreFdKHR(const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) { + return vk.vkImportSemaphoreFdKHR(_handle, pImportSemaphoreFdInfo); +} + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkGetSemaphoreZirconHandleFUCHSIA +VkResult Device::getSemaphoreZirconHandleFUCHSIA(const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle) { + return vk.vkGetSemaphoreZirconHandleFUCHSIA(_handle, pGetZirconHandleInfo, pZirconHandle); +} +#endif + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkImportSemaphoreZirconHandleFUCHSIA +VkResult Device::importSemaphoreZirconHandleFUCHSIA(const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) { + return vk.vkImportSemaphoreZirconHandleFUCHSIA(_handle, pImportSemaphoreZirconHandleInfo); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetFenceWin32HandleKHR +VkResult Device::getFenceWin32HandleKHR(const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle) { + return vk.vkGetFenceWin32HandleKHR(_handle, pGetWin32HandleInfo, pHandle); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkImportFenceWin32HandleKHR +VkResult Device::importFenceWin32HandleKHR(const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) { + return vk.vkImportFenceWin32HandleKHR(_handle, pImportFenceWin32HandleInfo); +} +#endif + +// Original: vkGetFenceFdKHR +VkResult Device::getFenceFdKHR(const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) { + return vk.vkGetFenceFdKHR(_handle, pGetFdInfo, pFd); +} + +// Original: vkImportFenceFdKHR +VkResult Device::importFenceFdKHR(const VkImportFenceFdInfoKHR* pImportFenceFdInfo) { + return vk.vkImportFenceFdKHR(_handle, pImportFenceFdInfo); +} + +// Original: vkDisplayPowerControlEXT +VkResult Device::displayPowerControlEXT(IntrusivePtr display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) { + return vk.vkDisplayPowerControlEXT(_handle, display->getHandle(), pDisplayPowerInfo); +} + +// Original: vkRegisterDeviceEventEXT +VkResult Device::registerEventEXT(const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, IntrusivePtr pFence) { + return vk.vkRegisterDeviceEventEXT(_handle, pDeviceEventInfo, pAllocator, pFence->getHandle()); +} + +// Original: vkRegisterDisplayEventEXT +VkResult Device::registerDisplayEventEXT(IntrusivePtr display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, IntrusivePtr pFence) { + return vk.vkRegisterDisplayEventEXT(_handle, display->getHandle(), pDisplayEventInfo, pAllocator, pFence->getHandle()); +} + +// Original: vkGetSwapchainCounterEXT +VkResult Device::getSwapchainCounterEXT(IntrusivePtr swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue) { + return vk.vkGetSwapchainCounterEXT(_handle, swapchain->getHandle(), counter, pCounterValue); +} + +// Original: vkGetDeviceGroupPeerMemoryFeatures +void Device::getGroupPeerMemoryFeatures(uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { + vk.vkGetDeviceGroupPeerMemoryFeatures(_handle, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); +} + +// Original: vkGetDeviceGroupPeerMemoryFeaturesKHR +void Device::getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { + vk.vkGetDeviceGroupPeerMemoryFeaturesKHR(_handle, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); +} + +// Original: vkBindBufferMemory2 +VkResult Device::bindBufferMemory2(uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) { + return vk.vkBindBufferMemory2(_handle, bindInfoCount, pBindInfos); +} + +// Original: vkBindBufferMemory2KHR +VkResult Device::bindBufferMemory2KHR(uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) { + return vk.vkBindBufferMemory2KHR(_handle, bindInfoCount, pBindInfos); +} + +// Original: vkBindImageMemory2 +VkResult Device::bindImageMemory2(uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) { + return vk.vkBindImageMemory2(_handle, bindInfoCount, pBindInfos); +} + +// Original: vkBindImageMemory2KHR +VkResult Device::bindImageMemory2KHR(uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) { + return vk.vkBindImageMemory2KHR(_handle, bindInfoCount, pBindInfos); +} + +// Original: vkGetDeviceGroupPresentCapabilitiesKHR +VkResult Device::getGroupPresentCapabilitiesKHR(VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) { + return vk.vkGetDeviceGroupPresentCapabilitiesKHR(_handle, pDeviceGroupPresentCapabilities); +} + +// Original: vkGetDeviceGroupSurfacePresentModesKHR +VkResult Device::getGroupSurfacePresentModesKHR(IntrusivePtr surface, VkDeviceGroupPresentModeFlagsKHR* pModes) { + return vk.vkGetDeviceGroupSurfacePresentModesKHR(_handle, surface->getHandle(), pModes); +} + +// Original: vkAcquireNextImage2KHR +VkResult Device::acquireNextImage2KHR(const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) { + return vk.vkAcquireNextImage2KHR(_handle, pAcquireInfo, pImageIndex); +} + +// Original: vkUpdateDescriptorSetWithTemplate +void Device::updateDescriptorSetWithTemplate(IntrusivePtr descriptorSet, IntrusivePtr descriptorUpdateTemplate, const void* pData) { + vk.vkUpdateDescriptorSetWithTemplate(_handle, descriptorSet->getHandle(), descriptorUpdateTemplate->getHandle(), pData); +} + +// Original: vkUpdateDescriptorSetWithTemplateKHR +void Device::updateDescriptorSetWithTemplateKHR(IntrusivePtr descriptorSet, IntrusivePtr descriptorUpdateTemplate, const void* pData) { + vk.vkUpdateDescriptorSetWithTemplateKHR(_handle, descriptorSet->getHandle(), descriptorUpdateTemplate->getHandle(), pData); +} + +// Original: vkSetHdrMetadataEXT +void Device::setHdrMetadataEXT(uint32_t swapchainCount, const std::vector>& pSwapchains, const VkHdrMetadataEXT* pMetadata) { + std::vector _raw_pSwapchains; _raw_pSwapchains.reserve(pSwapchains.size()); + for (auto const& it : pSwapchains) _raw_pSwapchains.push_back(it->getHandle()); + vk.vkSetHdrMetadataEXT(_handle, swapchainCount, pSwapchains.size(), _raw_pSwapchains.data(), pMetadata); +} + +// Original: vkGetSwapchainStatusKHR +VkResult Device::getSwapchainStatusKHR(IntrusivePtr swapchain) { + return vk.vkGetSwapchainStatusKHR(_handle, swapchain->getHandle()); +} + +// Original: vkGetRefreshCycleDurationGOOGLE +VkResult Device::getRefreshCycleDurationGOOGLE(IntrusivePtr swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) { + return vk.vkGetRefreshCycleDurationGOOGLE(_handle, swapchain->getHandle(), pDisplayTimingProperties); +} + +// Original: vkGetPastPresentationTimingGOOGLE +VkResult Device::getPastPresentationTimingGOOGLE(IntrusivePtr swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) { + return vk.vkGetPastPresentationTimingGOOGLE(_handle, swapchain->getHandle(), pPresentationTimingCount, pPresentationTimings); +} + +// Original: vkGetBufferMemoryRequirements2 +void Device::getBufferMemoryRequirements2(const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetBufferMemoryRequirements2(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetBufferMemoryRequirements2KHR +void Device::getBufferMemoryRequirements2KHR(const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetBufferMemoryRequirements2KHR(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetImageMemoryRequirements2 +void Device::getImageMemoryRequirements2(const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetImageMemoryRequirements2(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetImageMemoryRequirements2KHR +void Device::getImageMemoryRequirements2KHR(const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetImageMemoryRequirements2KHR(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetImageSparseMemoryRequirements2 +void Device::getImageSparseMemoryRequirements2(const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { + vk.vkGetImageSparseMemoryRequirements2(_handle, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); +} + +// Original: vkGetImageSparseMemoryRequirements2KHR +void Device::getImageSparseMemoryRequirements2KHR(const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { + vk.vkGetImageSparseMemoryRequirements2KHR(_handle, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); +} + +// Original: vkGetDeviceBufferMemoryRequirements +void Device::getBufferMemoryRequirements(const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetDeviceBufferMemoryRequirements(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetDeviceBufferMemoryRequirementsKHR +void Device::getBufferMemoryRequirementsKHR(const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetDeviceBufferMemoryRequirementsKHR(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetDeviceImageMemoryRequirements +void Device::getImageMemoryRequirements(const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetDeviceImageMemoryRequirements(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetDeviceImageMemoryRequirementsKHR +void Device::getImageMemoryRequirementsKHR(const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetDeviceImageMemoryRequirementsKHR(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkGetDeviceImageSparseMemoryRequirements +void Device::getImageSparseMemoryRequirements(const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { + vk.vkGetDeviceImageSparseMemoryRequirements(_handle, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); +} + +// Original: vkGetDeviceImageSparseMemoryRequirementsKHR +void Device::getImageSparseMemoryRequirementsKHR(const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { + vk.vkGetDeviceImageSparseMemoryRequirementsKHR(_handle, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); +} + +// Original: vkGetValidationCacheDataEXT +VkResult Device::getValidationCacheDataEXT(IntrusivePtr validationCache, size_t* pDataSize, void* pData) { + return vk.vkGetValidationCacheDataEXT(_handle, validationCache->getHandle(), pDataSize, pData); +} + +// Original: vkMergeValidationCachesEXT +VkResult Device::mergeValidationCachesEXT(IntrusivePtr dstCache, uint32_t srcCacheCount, const std::vector>& pSrcCaches) { + std::vector _raw_pSrcCaches; _raw_pSrcCaches.reserve(pSrcCaches.size()); + for (auto const& it : pSrcCaches) _raw_pSrcCaches.push_back(it->getHandle()); + return vk.vkMergeValidationCachesEXT(_handle, dstCache->getHandle(), srcCacheCount, pSrcCaches.size(), _raw_pSrcCaches.data()); +} + +// Original: vkGetDescriptorSetLayoutSupport +void Device::getDescriptorSetLayoutSupport(const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) { + vk.vkGetDescriptorSetLayoutSupport(_handle, pCreateInfo, pSupport); +} + +// Original: vkGetDescriptorSetLayoutSupportKHR +void Device::getDescriptorSetLayoutSupportKHR(const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) { + vk.vkGetDescriptorSetLayoutSupportKHR(_handle, pCreateInfo, pSupport); +} + +// Original: vkGetShaderInfoAMD +VkResult Device::getShaderInfoAMD(IntrusivePtr pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo) { + return vk.vkGetShaderInfoAMD(_handle, pipeline->getHandle(), shaderStage, infoType, pInfoSize, pInfo); +} + +// Original: vkSetLocalDimmingAMD +void Device::setLocalDimmingAMD(IntrusivePtr swapChain, VkBool32 localDimmingEnable) { + vk.vkSetLocalDimmingAMD(_handle, swapChain->getHandle(), localDimmingEnable); +} + +// Original: vkGetCalibratedTimestampsKHR +VkResult Device::getCalibratedTimestampsKHR(uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) { + return vk.vkGetCalibratedTimestampsKHR(_handle, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); +} + +// Original: vkGetCalibratedTimestampsEXT +VkResult Device::getCalibratedTimestampsEXT(uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) { + return vk.vkGetCalibratedTimestampsEXT(_handle, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); +} + +// Original: vkSetDebugUtilsObjectNameEXT +VkResult Device::setDebugUtilsObjectNameEXT(const VkDebugUtilsObjectNameInfoEXT* pNameInfo) { + return vk.vkSetDebugUtilsObjectNameEXT(_handle, pNameInfo); +} + +// Original: vkSetDebugUtilsObjectTagEXT +VkResult Device::setDebugUtilsObjectTagEXT(const VkDebugUtilsObjectTagInfoEXT* pTagInfo) { + return vk.vkSetDebugUtilsObjectTagEXT(_handle, pTagInfo); +} + +// Original: vkGetMemoryHostPointerPropertiesEXT +VkResult Device::getMemoryHostPointerPropertiesEXT(VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) { + return vk.vkGetMemoryHostPointerPropertiesEXT(_handle, handleType, pHostPointer, pMemoryHostPointerProperties); +} + +// Original: vkGetSemaphoreCounterValue +VkResult Device::getSemaphoreCounterValue(IntrusivePtr semaphore, uint64_t* pValue) { + return vk.vkGetSemaphoreCounterValue(_handle, semaphore->getHandle(), pValue); +} + +// Original: vkGetSemaphoreCounterValueKHR +VkResult Device::getSemaphoreCounterValueKHR(IntrusivePtr semaphore, uint64_t* pValue) { + return vk.vkGetSemaphoreCounterValueKHR(_handle, semaphore->getHandle(), pValue); +} + +// Original: vkWaitSemaphores +VkResult Device::waitSemaphores(const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) { + return vk.vkWaitSemaphores(_handle, pWaitInfo, timeout); +} + +// Original: vkWaitSemaphoresKHR +VkResult Device::waitSemaphoresKHR(const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) { + return vk.vkWaitSemaphoresKHR(_handle, pWaitInfo, timeout); +} + +// Original: vkSignalSemaphore +VkResult Device::signalSemaphore(const VkSemaphoreSignalInfo* pSignalInfo) { + return vk.vkSignalSemaphore(_handle, pSignalInfo); +} + +// Original: vkSignalSemaphoreKHR +VkResult Device::signalSemaphoreKHR(const VkSemaphoreSignalInfo* pSignalInfo) { + return vk.vkSignalSemaphoreKHR(_handle, pSignalInfo); +} + +#if defined(VK_USE_PLATFORM_ANDROID_KHR) +// Original: vkGetAndroidHardwareBufferPropertiesANDROID +VkResult Device::getAndroidHardwareBufferPropertiesANDROID(const AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) { + return vk.vkGetAndroidHardwareBufferPropertiesANDROID(_handle, buffer, pProperties); +} +#endif + +#if defined(VK_USE_PLATFORM_ANDROID_KHR) +// Original: vkGetMemoryAndroidHardwareBufferANDROID +VkResult Device::getMemoryAndroidHardwareBufferANDROID(const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, AHardwareBuffer* pBuffer) { + return vk.vkGetMemoryAndroidHardwareBufferANDROID(_handle, pInfo, pBuffer); +} +#endif + +// Original: vkCompileDeferredNV +VkResult Device::compileDeferredNV(IntrusivePtr pipeline, uint32_t shader) { + return vk.vkCompileDeferredNV(_handle, pipeline->getHandle(), shader); +} + +// Original: vkGetAccelerationStructureMemoryRequirementsNV +void Device::getAccelerationStructureMemoryRequirementsNV(const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) { + vk.vkGetAccelerationStructureMemoryRequirementsNV(_handle, pInfo, pMemoryRequirements); +} + +// Original: vkBindAccelerationStructureMemoryNV +VkResult Device::bindAccelerationStructureMemoryNV(uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) { + return vk.vkBindAccelerationStructureMemoryNV(_handle, bindInfoCount, pBindInfos); +} + +// Original: vkCopyAccelerationStructureKHR +VkResult Device::copyAccelerationStructureKHR(IntrusivePtr deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo) { + return vk.vkCopyAccelerationStructureKHR(_handle, deferredOperation->getHandle(), pInfo); +} + +// Original: vkCopyAccelerationStructureToMemoryKHR +VkResult Device::copyAccelerationStructureToMemoryKHR(IntrusivePtr deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) { + return vk.vkCopyAccelerationStructureToMemoryKHR(_handle, deferredOperation->getHandle(), pInfo); +} + +// Original: vkCopyMemoryToAccelerationStructureKHR +VkResult Device::copyMemoryToAccelerationStructureKHR(IntrusivePtr deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) { + return vk.vkCopyMemoryToAccelerationStructureKHR(_handle, deferredOperation->getHandle(), pInfo); +} + +// Original: vkWriteAccelerationStructuresPropertiesKHR +VkResult Device::writeAccelerationStructuresPropertiesKHR(uint32_t accelerationStructureCount, const std::vector>& pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride) { + std::vector _raw_pAccelerationStructures; _raw_pAccelerationStructures.reserve(pAccelerationStructures.size()); + for (auto const& it : pAccelerationStructures) _raw_pAccelerationStructures.push_back(it->getHandle()); + return vk.vkWriteAccelerationStructuresPropertiesKHR(_handle, accelerationStructureCount, pAccelerationStructures.size(), _raw_pAccelerationStructures.data(), queryType, dataSize, pData, stride); +} + +// Original: vkGetRayTracingShaderGroupHandlesKHR +VkResult Device::getRayTracingShaderGroupHandlesKHR(IntrusivePtr pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) { + return vk.vkGetRayTracingShaderGroupHandlesKHR(_handle, pipeline->getHandle(), firstGroup, groupCount, dataSize, pData); +} + +// Original: vkGetRayTracingShaderGroupHandlesNV +VkResult Device::getRayTracingShaderGroupHandlesNV(IntrusivePtr pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) { + return vk.vkGetRayTracingShaderGroupHandlesNV(_handle, pipeline->getHandle(), firstGroup, groupCount, dataSize, pData); +} + +// Original: vkGetRayTracingCaptureReplayShaderGroupHandlesKHR +VkResult Device::getRayTracingCaptureReplayShaderGroupHandlesKHR(IntrusivePtr pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) { + return vk.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(_handle, pipeline->getHandle(), firstGroup, groupCount, dataSize, pData); +} + +// Original: vkGetAccelerationStructureHandleNV +VkResult Device::getAccelerationStructureHandleNV(IntrusivePtr accelerationStructure, size_t dataSize, void* pData) { + return vk.vkGetAccelerationStructureHandleNV(_handle, accelerationStructure->getHandle(), dataSize, pData); +} + +// Original: vkGetClusterAccelerationStructureBuildSizesNV +void Device::getClusterAccelerationStructureBuildSizesNV(const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + vk.vkGetClusterAccelerationStructureBuildSizesNV(_handle, pInfo, pSizeInfo); +} + +// Original: vkGetDeviceAccelerationStructureCompatibilityKHR +void Device::getAccelerationStructureCompatibilityKHR(const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) { + vk.vkGetDeviceAccelerationStructureCompatibilityKHR(_handle, pVersionInfo, pCompatibility); +} + +// Original: vkGetRayTracingShaderGroupStackSizeKHR +VkDeviceSize Device::getRayTracingShaderGroupStackSizeKHR(IntrusivePtr pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader) { + return vk.vkGetRayTracingShaderGroupStackSizeKHR(_handle, pipeline->getHandle(), group, groupShader); +} + +// Original: vkGetImageViewHandleNVX +uint32_t Device::getImageViewHandleNVX(const VkImageViewHandleInfoNVX* pInfo) { + return vk.vkGetImageViewHandleNVX(_handle, pInfo); +} + +// Original: vkGetImageViewHandle64NVX +uint64_t Device::getImageViewHandle64NVX(const VkImageViewHandleInfoNVX* pInfo) { + return vk.vkGetImageViewHandle64NVX(_handle, pInfo); +} + +// Original: vkGetImageViewAddressNVX +VkResult Device::getImageViewAddressNVX(IntrusivePtr imageView, VkImageViewAddressPropertiesNVX* pProperties) { + return vk.vkGetImageViewAddressNVX(_handle, imageView->getHandle(), pProperties); +} + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetDeviceGroupSurfacePresentModes2EXT +VkResult Device::getGroupSurfacePresentModes2EXT(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes) { + return vk.vkGetDeviceGroupSurfacePresentModes2EXT(_handle, pSurfaceInfo, pModes); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkAcquireFullScreenExclusiveModeEXT +VkResult Device::acquireFullScreenExclusiveModeEXT(IntrusivePtr swapchain) { + return vk.vkAcquireFullScreenExclusiveModeEXT(_handle, swapchain->getHandle()); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkReleaseFullScreenExclusiveModeEXT +VkResult Device::releaseFullScreenExclusiveModeEXT(IntrusivePtr swapchain) { + return vk.vkReleaseFullScreenExclusiveModeEXT(_handle, swapchain->getHandle()); +} +#endif + +// Original: vkAcquireProfilingLockKHR +VkResult Device::acquireProfilingLockKHR(const VkAcquireProfilingLockInfoKHR* pInfo) { + return vk.vkAcquireProfilingLockKHR(_handle, pInfo); +} + +// Original: vkReleaseProfilingLockKHR +void Device::releaseProfilingLockKHR() { + vk.vkReleaseProfilingLockKHR(_handle); +} + +// Original: vkGetImageDrmFormatModifierPropertiesEXT +VkResult Device::getImageDrmFormatModifierPropertiesEXT(IntrusivePtr image, VkImageDrmFormatModifierPropertiesEXT* pProperties) { + return vk.vkGetImageDrmFormatModifierPropertiesEXT(_handle, image->getHandle(), pProperties); +} + +// Original: vkGetBufferOpaqueCaptureAddress +uint64_t Device::getBufferOpaqueCaptureAddress(const VkBufferDeviceAddressInfo* pInfo) { + return vk.vkGetBufferOpaqueCaptureAddress(_handle, pInfo); +} + +// Original: vkGetBufferOpaqueCaptureAddressKHR +uint64_t Device::getBufferOpaqueCaptureAddressKHR(const VkBufferDeviceAddressInfo* pInfo) { + return vk.vkGetBufferOpaqueCaptureAddressKHR(_handle, pInfo); +} + +// Original: vkGetBufferDeviceAddress +VkDeviceAddress Device::getBufferAddress(const VkBufferDeviceAddressInfo* pInfo) { + return vk.vkGetBufferDeviceAddress(_handle, pInfo); +} + +// Original: vkGetBufferDeviceAddressKHR +VkDeviceAddress Device::getBufferAddressKHR(const VkBufferDeviceAddressInfo* pInfo) { + return vk.vkGetBufferDeviceAddressKHR(_handle, pInfo); +} + +// Original: vkGetBufferDeviceAddressEXT +VkDeviceAddress Device::getBufferAddressEXT(const VkBufferDeviceAddressInfo* pInfo) { + return vk.vkGetBufferDeviceAddressEXT(_handle, pInfo); +} + +// Original: vkInitializePerformanceApiINTEL +VkResult Device::initializePerformanceApiINTEL(const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) { + return vk.vkInitializePerformanceApiINTEL(_handle, pInitializeInfo); +} + +// Original: vkUninitializePerformanceApiINTEL +void Device::uninitializePerformanceApiINTEL() { + vk.vkUninitializePerformanceApiINTEL(_handle); +} + +// Original: vkAcquirePerformanceConfigurationINTEL +VkResult Device::acquirePerformanceConfigurationINTEL(const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, IntrusivePtr pConfiguration) { + return vk.vkAcquirePerformanceConfigurationINTEL(_handle, pAcquireInfo, pConfiguration->getHandle()); +} + +// Original: vkReleasePerformanceConfigurationINTEL +VkResult Device::releasePerformanceConfigurationINTEL(IntrusivePtr configuration) { + return vk.vkReleasePerformanceConfigurationINTEL(_handle, configuration->getHandle()); +} + +// Original: vkGetPerformanceParameterINTEL +VkResult Device::getPerformanceParameterINTEL(VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue) { + return vk.vkGetPerformanceParameterINTEL(_handle, parameter, pValue); +} + +// Original: vkGetDeviceMemoryOpaqueCaptureAddress +uint64_t Device::getMemoryOpaqueCaptureAddress(const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) { + return vk.vkGetDeviceMemoryOpaqueCaptureAddress(_handle, pInfo); +} + +// Original: vkGetDeviceMemoryOpaqueCaptureAddressKHR +uint64_t Device::getMemoryOpaqueCaptureAddressKHR(const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) { + return vk.vkGetDeviceMemoryOpaqueCaptureAddressKHR(_handle, pInfo); +} + +// Original: vkGetPipelineExecutablePropertiesKHR +VkResult Device::getPipelineExecutablePropertiesKHR(const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) { + return vk.vkGetPipelineExecutablePropertiesKHR(_handle, pPipelineInfo, pExecutableCount, pProperties); +} + +// Original: vkGetPipelineExecutableStatisticsKHR +VkResult Device::getPipelineExecutableStatisticsKHR(const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) { + return vk.vkGetPipelineExecutableStatisticsKHR(_handle, pExecutableInfo, pStatisticCount, pStatistics); +} + +// Original: vkGetPipelineExecutableInternalRepresentationsKHR +VkResult Device::getPipelineExecutableInternalRepresentationsKHR(const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) { + return vk.vkGetPipelineExecutableInternalRepresentationsKHR(_handle, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations); +} + +// Original: vkBuildAccelerationStructuresKHR +VkResult Device::buildAccelerationStructuresKHR(IntrusivePtr deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* ppBuildRangeInfos) { + return vk.vkBuildAccelerationStructuresKHR(_handle, deferredOperation->getHandle(), infoCount, pInfos, ppBuildRangeInfos); +} + +// Original: vkGetAccelerationStructureDeviceAddressKHR +VkDeviceAddress Device::getAccelerationStructureAddressKHR(const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) { + return vk.vkGetAccelerationStructureDeviceAddressKHR(_handle, pInfo); +} + +// Original: vkGetDeferredOperationMaxConcurrencyKHR +uint32_t Device::getDeferredOperationMaxConcurrencyKHR(IntrusivePtr operation) { + return vk.vkGetDeferredOperationMaxConcurrencyKHR(_handle, operation->getHandle()); +} + +// Original: vkGetDeferredOperationResultKHR +VkResult Device::getDeferredOperationResultKHR(IntrusivePtr operation) { + return vk.vkGetDeferredOperationResultKHR(_handle, operation->getHandle()); +} + +// Original: vkDeferredOperationJoinKHR +VkResult Device::deferredOperationJoinKHR(IntrusivePtr operation) { + return vk.vkDeferredOperationJoinKHR(_handle, operation->getHandle()); +} + +// Original: vkGetPipelineIndirectMemoryRequirementsNV +void Device::getPipelineIndirectMemoryRequirementsNV(const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements) { + vk.vkGetPipelineIndirectMemoryRequirementsNV(_handle, pCreateInfo, pMemoryRequirements); +} + +// Original: vkGetPipelineIndirectDeviceAddressNV +VkDeviceAddress Device::getPipelineIndirectAddressNV(const VkPipelineIndirectDeviceAddressInfoNV* pInfo) { + return vk.vkGetPipelineIndirectDeviceAddressNV(_handle, pInfo); +} + +// Original: vkAntiLagUpdateAMD +void Device::antiLagUpdateAMD(const VkAntiLagDataAMD* pData) { + vk.vkAntiLagUpdateAMD(_handle, pData); +} + +// Original: vkSetPrivateData +VkResult Device::setPrivateData(VkObjectType objectType, uint64_t objectHandle, IntrusivePtr privateDataSlot, uint64_t data) { + return vk.vkSetPrivateData(_handle, objectType, objectHandle, privateDataSlot->getHandle(), data); +} + +// Original: vkSetPrivateDataEXT +VkResult Device::setPrivateDataEXT(VkObjectType objectType, uint64_t objectHandle, IntrusivePtr privateDataSlot, uint64_t data) { + return vk.vkSetPrivateDataEXT(_handle, objectType, objectHandle, privateDataSlot->getHandle(), data); +} + +// Original: vkGetPrivateData +void Device::getPrivateData(VkObjectType objectType, uint64_t objectHandle, IntrusivePtr privateDataSlot, uint64_t* pData) { + vk.vkGetPrivateData(_handle, objectType, objectHandle, privateDataSlot->getHandle(), pData); +} + +// Original: vkGetPrivateDataEXT +void Device::getPrivateDataEXT(VkObjectType objectType, uint64_t objectHandle, IntrusivePtr privateDataSlot, uint64_t* pData) { + vk.vkGetPrivateDataEXT(_handle, objectType, objectHandle, privateDataSlot->getHandle(), pData); +} + +// Original: vkGetAccelerationStructureBuildSizesKHR +void Device::getAccelerationStructureBuildSizesKHR(VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + vk.vkGetAccelerationStructureBuildSizesKHR(_handle, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo); +} + +// Original: vkCopyMemoryToImage +VkResult Device::copyMemoryToImage(const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo) { + return vk.vkCopyMemoryToImage(_handle, pCopyMemoryToImageInfo); +} + +// Original: vkCopyMemoryToImageEXT +VkResult Device::copyMemoryToImageEXT(const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo) { + return vk.vkCopyMemoryToImageEXT(_handle, pCopyMemoryToImageInfo); +} + +// Original: vkCopyImageToMemory +VkResult Device::copyImageToMemory(const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo) { + return vk.vkCopyImageToMemory(_handle, pCopyImageToMemoryInfo); +} + +// Original: vkCopyImageToMemoryEXT +VkResult Device::copyImageToMemoryEXT(const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo) { + return vk.vkCopyImageToMemoryEXT(_handle, pCopyImageToMemoryInfo); +} + +// Original: vkCopyImageToImage +VkResult Device::copyImageToImage(const VkCopyImageToImageInfo* pCopyImageToImageInfo) { + return vk.vkCopyImageToImage(_handle, pCopyImageToImageInfo); +} + +// Original: vkCopyImageToImageEXT +VkResult Device::copyImageToImageEXT(const VkCopyImageToImageInfo* pCopyImageToImageInfo) { + return vk.vkCopyImageToImageEXT(_handle, pCopyImageToImageInfo); +} + +// Original: vkTransitionImageLayout +VkResult Device::transitionImageLayout(uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions) { + return vk.vkTransitionImageLayout(_handle, transitionCount, pTransitions); +} + +// Original: vkTransitionImageLayoutEXT +VkResult Device::transitionImageLayoutEXT(uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions) { + return vk.vkTransitionImageLayoutEXT(_handle, transitionCount, pTransitions); +} + +// Original: vkUpdateVideoSessionParametersKHR +VkResult Device::updateVideoSessionParametersKHR(IntrusivePtr videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) { + return vk.vkUpdateVideoSessionParametersKHR(_handle, videoSessionParameters->getHandle(), pUpdateInfo); +} + +// Original: vkGetEncodedVideoSessionParametersKHR +VkResult Device::getEncodedVideoSessionParametersKHR(const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData) { + return vk.vkGetEncodedVideoSessionParametersKHR(_handle, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData); +} + +// Original: vkGetVideoSessionMemoryRequirementsKHR +VkResult Device::getVideoSessionMemoryRequirementsKHR(IntrusivePtr videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements) { + return vk.vkGetVideoSessionMemoryRequirementsKHR(_handle, videoSession->getHandle(), pMemoryRequirementsCount, pMemoryRequirements); +} + +// Original: vkBindVideoSessionMemoryKHR +VkResult Device::bindVideoSessionMemoryKHR(IntrusivePtr videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos) { + return vk.vkBindVideoSessionMemoryKHR(_handle, videoSession->getHandle(), bindSessionMemoryInfoCount, pBindSessionMemoryInfos); +} + +// Original: vkGetPartitionedAccelerationStructuresBuildSizesNV +void Device::getPartitionedAccelerationStructuresBuildSizesNV(const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) { + vk.vkGetPartitionedAccelerationStructuresBuildSizesNV(_handle, pInfo, pSizeInfo); +} + +// Original: vkGetDescriptorSetLayoutSizeEXT +void Device::getDescriptorSetLayoutSizeEXT(IntrusivePtr layout, VkDeviceSize* pLayoutSizeInBytes) { + vk.vkGetDescriptorSetLayoutSizeEXT(_handle, layout->getHandle(), pLayoutSizeInBytes); +} + +// Original: vkGetDescriptorSetLayoutBindingOffsetEXT +void Device::getDescriptorSetLayoutBindingOffsetEXT(IntrusivePtr layout, uint32_t binding, VkDeviceSize* pOffset) { + vk.vkGetDescriptorSetLayoutBindingOffsetEXT(_handle, layout->getHandle(), binding, pOffset); +} + +// Original: vkGetDescriptorEXT +void Device::getDescriptorEXT(const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor) { + vk.vkGetDescriptorEXT(_handle, pDescriptorInfo, dataSize, pDescriptor); +} + +// Original: vkGetBufferOpaqueCaptureDescriptorDataEXT +VkResult Device::getBufferOpaqueCaptureDescriptorDataEXT(const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData) { + return vk.vkGetBufferOpaqueCaptureDescriptorDataEXT(_handle, pInfo, pData); +} + +// Original: vkGetImageOpaqueCaptureDescriptorDataEXT +VkResult Device::getImageOpaqueCaptureDescriptorDataEXT(const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData) { + return vk.vkGetImageOpaqueCaptureDescriptorDataEXT(_handle, pInfo, pData); +} + +// Original: vkGetImageViewOpaqueCaptureDescriptorDataEXT +VkResult Device::getImageViewOpaqueCaptureDescriptorDataEXT(const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData) { + return vk.vkGetImageViewOpaqueCaptureDescriptorDataEXT(_handle, pInfo, pData); +} + +// Original: vkGetSamplerOpaqueCaptureDescriptorDataEXT +VkResult Device::getSamplerOpaqueCaptureDescriptorDataEXT(const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData) { + return vk.vkGetSamplerOpaqueCaptureDescriptorDataEXT(_handle, pInfo, pData); +} + +// Original: vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT +VkResult Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT(const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData) { + return vk.vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(_handle, pInfo, pData); +} + +// Original: vkSetDeviceMemoryPriorityEXT +void Device::setMemoryPriorityEXT(IntrusivePtr memory, float priority) { + vk.vkSetDeviceMemoryPriorityEXT(_handle, memory->getHandle(), priority); +} + +// Original: vkWaitForPresentKHR +VkResult Device::waitForPresentKHR(IntrusivePtr swapchain, uint64_t presentId, uint64_t timeout) { + return vk.vkWaitForPresentKHR(_handle, swapchain->getHandle(), presentId, timeout); +} + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkSetBufferCollectionBufferConstraintsFUCHSIA +VkResult Device::setBufferCollectionBufferConstraintsFUCHSIA(IntrusivePtr collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) { + return vk.vkSetBufferCollectionBufferConstraintsFUCHSIA(_handle, collection->getHandle(), pBufferConstraintsInfo); +} +#endif + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkSetBufferCollectionImageConstraintsFUCHSIA +VkResult Device::setBufferCollectionImageConstraintsFUCHSIA(IntrusivePtr collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) { + return vk.vkSetBufferCollectionImageConstraintsFUCHSIA(_handle, collection->getHandle(), pImageConstraintsInfo); +} +#endif + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkGetBufferCollectionPropertiesFUCHSIA +VkResult Device::getBufferCollectionPropertiesFUCHSIA(IntrusivePtr collection, VkBufferCollectionPropertiesFUCHSIA* pProperties) { + return vk.vkGetBufferCollectionPropertiesFUCHSIA(_handle, collection->getHandle(), pProperties); +} +#endif + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkGetCudaModuleCacheNV +VkResult Device::getCudaModuleCacheNV(IntrusivePtr module, size_t* pCacheSize, void* pCacheData) { + return vk.vkGetCudaModuleCacheNV(_handle, module->getHandle(), pCacheSize, pCacheData); +} +#endif + +// Original: vkGetDescriptorSetLayoutHostMappingInfoVALVE +void Device::getDescriptorSetLayoutHostMappingInfoVALVE(const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) { + vk.vkGetDescriptorSetLayoutHostMappingInfoVALVE(_handle, pBindingReference, pHostMapping); +} + +// Original: vkGetDescriptorSetHostMappingVALVE +void Device::getDescriptorSetHostMappingVALVE(IntrusivePtr descriptorSet, void* ppData) { + vk.vkGetDescriptorSetHostMappingVALVE(_handle, descriptorSet->getHandle(), ppData); +} + +// Original: vkBuildMicromapsEXT +VkResult Device::buildMicromapsEXT(IntrusivePtr deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos) { + return vk.vkBuildMicromapsEXT(_handle, deferredOperation->getHandle(), infoCount, pInfos); +} + +// Original: vkCopyMicromapEXT +VkResult Device::copyMicromapEXT(IntrusivePtr deferredOperation, const VkCopyMicromapInfoEXT* pInfo) { + return vk.vkCopyMicromapEXT(_handle, deferredOperation->getHandle(), pInfo); +} + +// Original: vkCopyMicromapToMemoryEXT +VkResult Device::copyMicromapToMemoryEXT(IntrusivePtr deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo) { + return vk.vkCopyMicromapToMemoryEXT(_handle, deferredOperation->getHandle(), pInfo); +} + +// Original: vkCopyMemoryToMicromapEXT +VkResult Device::copyMemoryToMicromapEXT(IntrusivePtr deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo) { + return vk.vkCopyMemoryToMicromapEXT(_handle, deferredOperation->getHandle(), pInfo); +} + +// Original: vkWriteMicromapsPropertiesEXT +VkResult Device::writeMicromapsPropertiesEXT(uint32_t micromapCount, const std::vector>& pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride) { + std::vector _raw_pMicromaps; _raw_pMicromaps.reserve(pMicromaps.size()); + for (auto const& it : pMicromaps) _raw_pMicromaps.push_back(it->getHandle()); + return vk.vkWriteMicromapsPropertiesEXT(_handle, micromapCount, pMicromaps.size(), _raw_pMicromaps.data(), queryType, dataSize, pData, stride); +} + +// Original: vkGetDeviceMicromapCompatibilityEXT +void Device::getMicromapCompatibilityEXT(const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) { + vk.vkGetDeviceMicromapCompatibilityEXT(_handle, pVersionInfo, pCompatibility); +} + +// Original: vkGetMicromapBuildSizesEXT +void Device::getMicromapBuildSizesEXT(VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo) { + vk.vkGetMicromapBuildSizesEXT(_handle, buildType, pBuildInfo, pSizeInfo); +} + +// Original: vkGetShaderModuleIdentifierEXT +void Device::getShaderModuleIdentifierEXT(IntrusivePtr shaderModule, VkShaderModuleIdentifierEXT* pIdentifier) { + vk.vkGetShaderModuleIdentifierEXT(_handle, shaderModule->getHandle(), pIdentifier); +} + +// Original: vkGetShaderModuleCreateInfoIdentifierEXT +void Device::getShaderModuleCreateInfoIdentifierEXT(const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier) { + vk.vkGetShaderModuleCreateInfoIdentifierEXT(_handle, pCreateInfo, pIdentifier); +} + +// Original: vkGetImageSubresourceLayout2 +void Device::getImageSubresourceLayout2(IntrusivePtr image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout) { + vk.vkGetImageSubresourceLayout2(_handle, image->getHandle(), pSubresource, pLayout); +} + +// Original: vkGetImageSubresourceLayout2KHR +void Device::getImageSubresourceLayout2KHR(IntrusivePtr image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout) { + vk.vkGetImageSubresourceLayout2KHR(_handle, image->getHandle(), pSubresource, pLayout); +} + +// Original: vkGetImageSubresourceLayout2EXT +void Device::getImageSubresourceLayout2EXT(IntrusivePtr image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout) { + vk.vkGetImageSubresourceLayout2EXT(_handle, image->getHandle(), pSubresource, pLayout); +} + +// Original: vkGetPipelinePropertiesEXT +VkResult Device::getPipelinePropertiesEXT(const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties) { + return vk.vkGetPipelinePropertiesEXT(_handle, pPipelineInfo, pPipelineProperties); +} + +#if defined(VK_USE_PLATFORM_METAL_EXT) +// Original: vkExportMetalObjectsEXT +void Device::exportMetalObjectsEXT(VkExportMetalObjectsInfoEXT* pMetalObjectsInfo) { + vk.vkExportMetalObjectsEXT(_handle, pMetalObjectsInfo); +} +#endif + +// Original: vkGetFramebufferTilePropertiesQCOM +VkResult Device::getFramebufferTilePropertiesQCOM(IntrusivePtr framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) { + return vk.vkGetFramebufferTilePropertiesQCOM(_handle, framebuffer->getHandle(), pPropertiesCount, pProperties); +} + +// Original: vkGetDynamicRenderingTilePropertiesQCOM +VkResult Device::getDynamicRenderingTilePropertiesQCOM(const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) { + return vk.vkGetDynamicRenderingTilePropertiesQCOM(_handle, pRenderingInfo, pProperties); +} + +// Original: vkBindOpticalFlowSessionImageNV +VkResult Device::bindOpticalFlowSessionImageNV(IntrusivePtr session, VkOpticalFlowSessionBindingPointNV bindingPoint, IntrusivePtr view, VkImageLayout layout) { + return vk.vkBindOpticalFlowSessionImageNV(_handle, session->getHandle(), bindingPoint, view->getHandle(), layout); +} + +// Original: vkGetDeviceFaultInfoEXT +VkResult Device::getFaultInfoEXT(VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo) { + return vk.vkGetDeviceFaultInfoEXT(_handle, pFaultCounts, pFaultInfo); +} + +// Original: vkReleaseSwapchainImagesEXT +VkResult Device::releaseSwapchainImagesEXT(const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) { + return vk.vkReleaseSwapchainImagesEXT(_handle, pReleaseInfo); +} + +// Original: vkGetDeviceImageSubresourceLayout +void Device::getImageSubresourceLayout(const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout) { + vk.vkGetDeviceImageSubresourceLayout(_handle, pInfo, pLayout); +} + +// Original: vkGetDeviceImageSubresourceLayoutKHR +void Device::getImageSubresourceLayoutKHR(const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout) { + vk.vkGetDeviceImageSubresourceLayoutKHR(_handle, pInfo, pLayout); +} + +// Original: vkMapMemory2 +VkResult Device::mapMemory2(const VkMemoryMapInfo* pMemoryMapInfo, void* ppData) { + return vk.vkMapMemory2(_handle, pMemoryMapInfo, ppData); +} + +// Original: vkMapMemory2KHR +VkResult Device::mapMemory2KHR(const VkMemoryMapInfo* pMemoryMapInfo, void* ppData) { + return vk.vkMapMemory2KHR(_handle, pMemoryMapInfo, ppData); +} + +// Original: vkUnmapMemory2 +VkResult Device::unmapMemory2(const VkMemoryUnmapInfo* pMemoryUnmapInfo) { + return vk.vkUnmapMemory2(_handle, pMemoryUnmapInfo); +} + +// Original: vkUnmapMemory2KHR +VkResult Device::unmapMemory2KHR(const VkMemoryUnmapInfo* pMemoryUnmapInfo) { + return vk.vkUnmapMemory2KHR(_handle, pMemoryUnmapInfo); +} + +// Original: vkGetShaderBinaryDataEXT +VkResult Device::getShaderBinaryDataEXT(IntrusivePtr shader, size_t* pDataSize, void* pData) { + return vk.vkGetShaderBinaryDataEXT(_handle, shader->getHandle(), pDataSize, pData); +} + +#if defined(VK_USE_PLATFORM_SCREEN_QNX) +// Original: vkGetScreenBufferPropertiesQNX +VkResult Device::getScreenBufferPropertiesQNX(const _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties) { + return vk.vkGetScreenBufferPropertiesQNX(_handle, buffer, pProperties); +} +#endif + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkGetExecutionGraphPipelineScratchSizeAMDX +VkResult Device::getExecutionGraphPipelineScratchSizeAMDX(IntrusivePtr executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo) { + return vk.vkGetExecutionGraphPipelineScratchSizeAMDX(_handle, executionGraph->getHandle(), pSizeInfo); +} +#endif + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkGetExecutionGraphPipelineNodeIndexAMDX +VkResult Device::getExecutionGraphPipelineNodeIndexAMDX(IntrusivePtr executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex) { + return vk.vkGetExecutionGraphPipelineNodeIndexAMDX(_handle, executionGraph->getHandle(), pNodeInfo, pNodeIndex); +} +#endif + +// Original: vkSetLatencySleepModeNV +VkResult Device::setLatencySleepModeNV(IntrusivePtr swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo) { + return vk.vkSetLatencySleepModeNV(_handle, swapchain->getHandle(), pSleepModeInfo); +} + +// Original: vkLatencySleepNV +VkResult Device::latencySleepNV(IntrusivePtr swapchain, const VkLatencySleepInfoNV* pSleepInfo) { + return vk.vkLatencySleepNV(_handle, swapchain->getHandle(), pSleepInfo); +} + +// Original: vkSetLatencyMarkerNV +void Device::setLatencyMarkerNV(IntrusivePtr swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo) { + vk.vkSetLatencyMarkerNV(_handle, swapchain->getHandle(), pLatencyMarkerInfo); +} + +// Original: vkGetLatencyTimingsNV +void Device::getLatencyTimingsNV(IntrusivePtr swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo) { + vk.vkGetLatencyTimingsNV(_handle, swapchain->getHandle(), pLatencyMarkerInfo); +} + +#if defined(VK_USE_PLATFORM_METAL_EXT) +// Original: vkGetMemoryMetalHandleEXT +VkResult Device::getMemoryMetalHandleEXT(const VkMemoryGetMetalHandleInfoEXT* pGetMetalHandleInfo, void* pHandle) { + return vk.vkGetMemoryMetalHandleEXT(_handle, pGetMetalHandleInfo, pHandle); +} +#endif + +#if defined(VK_USE_PLATFORM_METAL_EXT) +// Original: vkGetMemoryMetalHandlePropertiesEXT +VkResult Device::getMemoryMetalHandlePropertiesEXT(VkExternalMemoryHandleTypeFlagBits handleType, const void* pHandle, VkMemoryMetalHandlePropertiesEXT* pMemoryMetalHandleProperties) { + return vk.vkGetMemoryMetalHandlePropertiesEXT(_handle, handleType, pHandle, pMemoryMetalHandleProperties); +} +#endif + +// Original: vkConvertCooperativeVectorMatrixNV +VkResult Device::convertCooperativeVectorMatrixNV(const VkConvertCooperativeVectorMatrixInfoNV* pInfo) { + return vk.vkConvertCooperativeVectorMatrixNV(_handle, pInfo); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Device.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Device.hpp new file mode 100644 index 0000000..0626172 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Device.hpp @@ -0,0 +1,1281 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class AccelerationStructureKHR; +class AccelerationStructureNV; +class Buffer; +class BufferCollectionFUCHSIA; +class CommandPool; +class CudaModuleNV; +class DeferredOperationKHR; +class DescriptorPool; +class DescriptorSet; +class DescriptorSetLayout; +class DescriptorUpdateTemplate; +class DeviceMemory; +class DisplayKHR; +class Event; +class Fence; +class Framebuffer; +class Image; +class ImageView; +class IndirectExecutionSetEXT; +class MicromapEXT; +class OpticalFlowSessionNV; +class PerformanceConfigurationINTEL; +class PhysicalDevice; +class Pipeline; +class PipelineCache; +class PrivateDataSlot; +class QueryPool; +class Queue; +class RenderPass; +class Semaphore; +class ShaderEXT; +class ShaderModule; +class SurfaceKHR; +class SwapchainKHR; +class ValidationCacheEXT; +class VideoSessionKHR; +class VideoSessionParametersKHR; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDevice +// Holds (destroy/free owners + creation parent, or producer parent): PhysicalDevice +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Device : public RefCounted { +public: + VkDevice getHandle() const noexcept { return _handle; } + IntrusivePtr getPhysicalDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDevice handle) { + return IntrusivePtr(new Device(owner0, handle, false)); + } +private: + explicit Device(IntrusivePtr owner0, VkDevice handle, bool owned); + ~Device() override; +private: + VkDevice _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateDevice + explicit Device(IntrusivePtr parent, const VkDeviceCreateInfo* pCreateInfo); +// Original: vkCreateDevice (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDeviceCreateInfo* pCreateInfo); + + +public: +// Original: vkGetDeviceQueue + IntrusivePtr getQueue(uint32_t queueFamilyIndex, uint32_t queueIndex); + + +public: +// Original: vkGetSwapchainImagesKHR + std::vector> getImages(IntrusivePtr swapchain); + + +public: +// Original: vkGetDeviceQueue2 + IntrusivePtr getQueue(const VkDeviceQueueInfo2* pQueueInfo); + + +public: +// Original: vkGetDeviceProcAddr + PFN_vkVoidFunction getProcAddr(const char* pName); + + +public: +// Original: vkDeviceWaitIdle + VkResult waitIdle(); + + +public: +// Original: vkMapMemory + VkResult mapMemory(IntrusivePtr memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void* ppData); + + +public: +// Original: vkUnmapMemory + void unmapMemory(IntrusivePtr memory); + + +public: +// Original: vkFlushMappedMemoryRanges + VkResult flushMappedMemoryRanges(uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); + + +public: +// Original: vkInvalidateMappedMemoryRanges + VkResult invalidateMappedMemoryRanges(uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); + + +public: +// Original: vkGetDeviceMemoryCommitment + void getMemoryCommitment(IntrusivePtr memory, VkDeviceSize* pCommittedMemoryInBytes); + + +public: +// Original: vkGetBufferMemoryRequirements + void getBufferMemoryRequirements(IntrusivePtr buffer, VkMemoryRequirements* pMemoryRequirements); + + +public: +// Original: vkBindBufferMemory + VkResult bindBufferMemory(IntrusivePtr buffer, IntrusivePtr memory, VkDeviceSize memoryOffset); + + +public: +// Original: vkGetImageMemoryRequirements + void getImageMemoryRequirements(IntrusivePtr image, VkMemoryRequirements* pMemoryRequirements); + + +public: +// Original: vkBindImageMemory + VkResult bindImageMemory(IntrusivePtr image, IntrusivePtr memory, VkDeviceSize memoryOffset); + + +public: +// Original: vkGetImageSparseMemoryRequirements + void getImageSparseMemoryRequirements(IntrusivePtr image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements); + + +public: +// Original: vkResetFences + VkResult resetFences(uint32_t fenceCount, const std::vector>& pFences); + + +public: +// Original: vkGetFenceStatus + VkResult getFenceStatus(IntrusivePtr fence); + + +public: +// Original: vkWaitForFences + VkResult waitForFences(uint32_t fenceCount, const std::vector>& pFences, VkBool32 waitAll, uint64_t timeout); + + +public: +// Original: vkGetEventStatus + VkResult getEventStatus(IntrusivePtr event); + + +public: +// Original: vkSetEvent + VkResult setEvent(IntrusivePtr event); + + +public: +// Original: vkResetEvent + VkResult resetEvent(IntrusivePtr event); + + +public: +// Original: vkGetQueryPoolResults + VkResult getQueryPoolResults(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags); + + +public: +// Original: vkResetQueryPool + void resetQueryPool(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount); + + +public: +// Original: vkResetQueryPoolEXT + void resetQueryPoolEXT(IntrusivePtr queryPool, uint32_t firstQuery, uint32_t queryCount); + + +public: +// Original: vkGetImageSubresourceLayout + void getImageSubresourceLayout(IntrusivePtr image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); + + +public: +// Original: vkGetPipelineCacheData + VkResult getPipelineCacheData(IntrusivePtr pipelineCache, size_t* pDataSize, void* pData); + + +public: +// Original: vkMergePipelineCaches + VkResult mergePipelineCaches(IntrusivePtr dstCache, uint32_t srcCacheCount, const std::vector>& pSrcCaches); + + +public: +// Original: vkGetPipelineKeyKHR + VkResult getPipelineKeyKHR(const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey); + + +public: +// Original: vkGetPipelineBinaryDataKHR + VkResult getPipelineBinaryDataKHR(const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData); + + +public: +// Original: vkReleaseCapturedPipelineDataKHR + VkResult releaseCapturedPipelineDataKHR(const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator); + + +public: +// Original: vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI + VkResult getSubpassShadingMaxWorkgroupSizeHUAWEI(IntrusivePtr renderpass, VkExtent2D* pMaxWorkgroupSize); + + +public: +// Original: vkResetDescriptorPool + VkResult resetDescriptorPool(IntrusivePtr descriptorPool, VkDescriptorPoolResetFlags flags); + + +public: +// Original: vkUpdateDescriptorSets + void updateDescriptorSets(uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies); + + +public: +// Original: vkGetRenderAreaGranularity + void getRenderAreaGranularity(IntrusivePtr renderPass, VkExtent2D* pGranularity); + + +public: +// Original: vkGetRenderingAreaGranularity + void getRenderingAreaGranularity(const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity); + + +public: +// Original: vkGetRenderingAreaGranularityKHR + void getRenderingAreaGranularityKHR(const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity); + + +public: +// Original: vkResetCommandPool + VkResult resetCommandPool(IntrusivePtr commandPool, VkCommandPoolResetFlags flags); + + +public: +// Original: vkAcquireNextImageKHR + VkResult acquireNextImageKHR(IntrusivePtr swapchain, uint64_t timeout, IntrusivePtr semaphore, IntrusivePtr fence, uint32_t* pImageIndex); + + +public: +// Original: vkDebugMarkerSetObjectNameEXT + VkResult debugMarkerSetObjectNameEXT(const VkDebugMarkerObjectNameInfoEXT* pNameInfo); + + +public: +// Original: vkDebugMarkerSetObjectTagEXT + VkResult debugMarkerSetObjectTagEXT(const VkDebugMarkerObjectTagInfoEXT* pTagInfo); + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetMemoryWin32HandleNV + VkResult getMemoryWin32HandleNV(IntrusivePtr memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); +#endif + + +public: +// Original: vkGetGeneratedCommandsMemoryRequirementsNV + void getGeneratedCommandsMemoryRequirementsNV(const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetGeneratedCommandsMemoryRequirementsEXT + void getGeneratedCommandsMemoryRequirementsEXT(const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkUpdateIndirectExecutionSetPipelineEXT + void updateIndirectExecutionSetPipelineEXT(IntrusivePtr indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites); + + +public: +// Original: vkUpdateIndirectExecutionSetShaderEXT + void updateIndirectExecutionSetShaderEXT(IntrusivePtr indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites); + + +public: +// Original: vkTrimCommandPool + void trimCommandPool(IntrusivePtr commandPool, VkCommandPoolTrimFlags flags); + + +public: +// Original: vkTrimCommandPoolKHR + void trimCommandPoolKHR(IntrusivePtr commandPool, VkCommandPoolTrimFlags flags); + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetMemoryWin32HandleKHR + VkResult getMemoryWin32HandleKHR(const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetMemoryWin32HandlePropertiesKHR + VkResult getMemoryWin32HandlePropertiesKHR(VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); +#endif + + +public: +// Original: vkGetMemoryFdKHR + VkResult getMemoryFdKHR(const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); + + +public: +// Original: vkGetMemoryFdPropertiesKHR + VkResult getMemoryFdPropertiesKHR(VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); + + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkGetMemoryZirconHandleFUCHSIA + VkResult getMemoryZirconHandleFUCHSIA(const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); +#endif + + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkGetMemoryZirconHandlePropertiesFUCHSIA + VkResult getMemoryZirconHandlePropertiesFUCHSIA(VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); +#endif + + +public: +// Original: vkGetMemoryRemoteAddressNV + VkResult getMemoryRemoteAddressNV(const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress); + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetSemaphoreWin32HandleKHR + VkResult getSemaphoreWin32HandleKHR(const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkImportSemaphoreWin32HandleKHR + VkResult importSemaphoreWin32HandleKHR(const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); +#endif + + +public: +// Original: vkGetSemaphoreFdKHR + VkResult getSemaphoreFdKHR(const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); + + +public: +// Original: vkImportSemaphoreFdKHR + VkResult importSemaphoreFdKHR(const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); + + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkGetSemaphoreZirconHandleFUCHSIA + VkResult getSemaphoreZirconHandleFUCHSIA(const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); +#endif + + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkImportSemaphoreZirconHandleFUCHSIA + VkResult importSemaphoreZirconHandleFUCHSIA(const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetFenceWin32HandleKHR + VkResult getFenceWin32HandleKHR(const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkImportFenceWin32HandleKHR + VkResult importFenceWin32HandleKHR(const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); +#endif + + +public: +// Original: vkGetFenceFdKHR + VkResult getFenceFdKHR(const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); + + +public: +// Original: vkImportFenceFdKHR + VkResult importFenceFdKHR(const VkImportFenceFdInfoKHR* pImportFenceFdInfo); + + +public: +// Original: vkDisplayPowerControlEXT + VkResult displayPowerControlEXT(IntrusivePtr display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); + + +public: +// Original: vkRegisterDeviceEventEXT + VkResult registerEventEXT(const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, IntrusivePtr pFence); + + +public: +// Original: vkRegisterDisplayEventEXT + VkResult registerDisplayEventEXT(IntrusivePtr display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, IntrusivePtr pFence); + + +public: +// Original: vkGetSwapchainCounterEXT + VkResult getSwapchainCounterEXT(IntrusivePtr swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); + + +public: +// Original: vkGetDeviceGroupPeerMemoryFeatures + void getGroupPeerMemoryFeatures(uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); + + +public: +// Original: vkGetDeviceGroupPeerMemoryFeaturesKHR + void getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); + + +public: +// Original: vkBindBufferMemory2 + VkResult bindBufferMemory2(uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); + + +public: +// Original: vkBindBufferMemory2KHR + VkResult bindBufferMemory2KHR(uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); + + +public: +// Original: vkBindImageMemory2 + VkResult bindImageMemory2(uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); + + +public: +// Original: vkBindImageMemory2KHR + VkResult bindImageMemory2KHR(uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); + + +public: +// Original: vkGetDeviceGroupPresentCapabilitiesKHR + VkResult getGroupPresentCapabilitiesKHR(VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); + + +public: +// Original: vkGetDeviceGroupSurfacePresentModesKHR + VkResult getGroupSurfacePresentModesKHR(IntrusivePtr surface, VkDeviceGroupPresentModeFlagsKHR* pModes); + + +public: +// Original: vkAcquireNextImage2KHR + VkResult acquireNextImage2KHR(const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex); + + +public: +// Original: vkUpdateDescriptorSetWithTemplate + void updateDescriptorSetWithTemplate(IntrusivePtr descriptorSet, IntrusivePtr descriptorUpdateTemplate, const void* pData); + + +public: +// Original: vkUpdateDescriptorSetWithTemplateKHR + void updateDescriptorSetWithTemplateKHR(IntrusivePtr descriptorSet, IntrusivePtr descriptorUpdateTemplate, const void* pData); + + +public: +// Original: vkSetHdrMetadataEXT + void setHdrMetadataEXT(uint32_t swapchainCount, const std::vector>& pSwapchains, const VkHdrMetadataEXT* pMetadata); + + +public: +// Original: vkGetSwapchainStatusKHR + VkResult getSwapchainStatusKHR(IntrusivePtr swapchain); + + +public: +// Original: vkGetRefreshCycleDurationGOOGLE + VkResult getRefreshCycleDurationGOOGLE(IntrusivePtr swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); + + +public: +// Original: vkGetPastPresentationTimingGOOGLE + VkResult getPastPresentationTimingGOOGLE(IntrusivePtr swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); + + +public: +// Original: vkGetBufferMemoryRequirements2 + void getBufferMemoryRequirements2(const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetBufferMemoryRequirements2KHR + void getBufferMemoryRequirements2KHR(const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetImageMemoryRequirements2 + void getImageMemoryRequirements2(const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetImageMemoryRequirements2KHR + void getImageMemoryRequirements2KHR(const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetImageSparseMemoryRequirements2 + void getImageSparseMemoryRequirements2(const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + + +public: +// Original: vkGetImageSparseMemoryRequirements2KHR + void getImageSparseMemoryRequirements2KHR(const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + + +public: +// Original: vkGetDeviceBufferMemoryRequirements + void getBufferMemoryRequirements(const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetDeviceBufferMemoryRequirementsKHR + void getBufferMemoryRequirementsKHR(const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetDeviceImageMemoryRequirements + void getImageMemoryRequirements(const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetDeviceImageMemoryRequirementsKHR + void getImageMemoryRequirementsKHR(const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetDeviceImageSparseMemoryRequirements + void getImageSparseMemoryRequirements(const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + + +public: +// Original: vkGetDeviceImageSparseMemoryRequirementsKHR + void getImageSparseMemoryRequirementsKHR(const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + + +public: +// Original: vkGetValidationCacheDataEXT + VkResult getValidationCacheDataEXT(IntrusivePtr validationCache, size_t* pDataSize, void* pData); + + +public: +// Original: vkMergeValidationCachesEXT + VkResult mergeValidationCachesEXT(IntrusivePtr dstCache, uint32_t srcCacheCount, const std::vector>& pSrcCaches); + + +public: +// Original: vkGetDescriptorSetLayoutSupport + void getDescriptorSetLayoutSupport(const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); + + +public: +// Original: vkGetDescriptorSetLayoutSupportKHR + void getDescriptorSetLayoutSupportKHR(const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); + + +public: +// Original: vkGetShaderInfoAMD + VkResult getShaderInfoAMD(IntrusivePtr pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); + + +public: +// Original: vkSetLocalDimmingAMD + void setLocalDimmingAMD(IntrusivePtr swapChain, VkBool32 localDimmingEnable); + + +public: +// Original: vkGetCalibratedTimestampsKHR + VkResult getCalibratedTimestampsKHR(uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); + + +public: +// Original: vkGetCalibratedTimestampsEXT + VkResult getCalibratedTimestampsEXT(uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); + + +public: +// Original: vkSetDebugUtilsObjectNameEXT + VkResult setDebugUtilsObjectNameEXT(const VkDebugUtilsObjectNameInfoEXT* pNameInfo); + + +public: +// Original: vkSetDebugUtilsObjectTagEXT + VkResult setDebugUtilsObjectTagEXT(const VkDebugUtilsObjectTagInfoEXT* pTagInfo); + + +public: +// Original: vkGetMemoryHostPointerPropertiesEXT + VkResult getMemoryHostPointerPropertiesEXT(VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); + + +public: +// Original: vkGetSemaphoreCounterValue + VkResult getSemaphoreCounterValue(IntrusivePtr semaphore, uint64_t* pValue); + + +public: +// Original: vkGetSemaphoreCounterValueKHR + VkResult getSemaphoreCounterValueKHR(IntrusivePtr semaphore, uint64_t* pValue); + + +public: +// Original: vkWaitSemaphores + VkResult waitSemaphores(const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); + + +public: +// Original: vkWaitSemaphoresKHR + VkResult waitSemaphoresKHR(const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); + + +public: +// Original: vkSignalSemaphore + VkResult signalSemaphore(const VkSemaphoreSignalInfo* pSignalInfo); + + +public: +// Original: vkSignalSemaphoreKHR + VkResult signalSemaphoreKHR(const VkSemaphoreSignalInfo* pSignalInfo); + + +#if defined(VK_USE_PLATFORM_ANDROID_KHR) +public: +// Original: vkGetAndroidHardwareBufferPropertiesANDROID + VkResult getAndroidHardwareBufferPropertiesANDROID(const AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); +#endif + + +#if defined(VK_USE_PLATFORM_ANDROID_KHR) +public: +// Original: vkGetMemoryAndroidHardwareBufferANDROID + VkResult getMemoryAndroidHardwareBufferANDROID(const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, AHardwareBuffer* pBuffer); +#endif + + +public: +// Original: vkCompileDeferredNV + VkResult compileDeferredNV(IntrusivePtr pipeline, uint32_t shader); + + +public: +// Original: vkGetAccelerationStructureMemoryRequirementsNV + void getAccelerationStructureMemoryRequirementsNV(const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); + + +public: +// Original: vkBindAccelerationStructureMemoryNV + VkResult bindAccelerationStructureMemoryNV(uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); + + +public: +// Original: vkCopyAccelerationStructureKHR + VkResult copyAccelerationStructureKHR(IntrusivePtr deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo); + + +public: +// Original: vkCopyAccelerationStructureToMemoryKHR + VkResult copyAccelerationStructureToMemoryKHR(IntrusivePtr deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); + + +public: +// Original: vkCopyMemoryToAccelerationStructureKHR + VkResult copyMemoryToAccelerationStructureKHR(IntrusivePtr deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); + + +public: +// Original: vkWriteAccelerationStructuresPropertiesKHR + VkResult writeAccelerationStructuresPropertiesKHR(uint32_t accelerationStructureCount, const std::vector>& pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); + + +public: +// Original: vkGetRayTracingShaderGroupHandlesKHR + VkResult getRayTracingShaderGroupHandlesKHR(IntrusivePtr pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); + + +public: +// Original: vkGetRayTracingShaderGroupHandlesNV + VkResult getRayTracingShaderGroupHandlesNV(IntrusivePtr pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); + + +public: +// Original: vkGetRayTracingCaptureReplayShaderGroupHandlesKHR + VkResult getRayTracingCaptureReplayShaderGroupHandlesKHR(IntrusivePtr pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); + + +public: +// Original: vkGetAccelerationStructureHandleNV + VkResult getAccelerationStructureHandleNV(IntrusivePtr accelerationStructure, size_t dataSize, void* pData); + + +public: +// Original: vkGetClusterAccelerationStructureBuildSizesNV + void getClusterAccelerationStructureBuildSizesNV(const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); + + +public: +// Original: vkGetDeviceAccelerationStructureCompatibilityKHR + void getAccelerationStructureCompatibilityKHR(const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); + + +public: +// Original: vkGetRayTracingShaderGroupStackSizeKHR + VkDeviceSize getRayTracingShaderGroupStackSizeKHR(IntrusivePtr pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader); + + +public: +// Original: vkGetImageViewHandleNVX + uint32_t getImageViewHandleNVX(const VkImageViewHandleInfoNVX* pInfo); + + +public: +// Original: vkGetImageViewHandle64NVX + uint64_t getImageViewHandle64NVX(const VkImageViewHandleInfoNVX* pInfo); + + +public: +// Original: vkGetImageViewAddressNVX + VkResult getImageViewAddressNVX(IntrusivePtr imageView, VkImageViewAddressPropertiesNVX* pProperties); + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetDeviceGroupSurfacePresentModes2EXT + VkResult getGroupSurfacePresentModes2EXT(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkAcquireFullScreenExclusiveModeEXT + VkResult acquireFullScreenExclusiveModeEXT(IntrusivePtr swapchain); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkReleaseFullScreenExclusiveModeEXT + VkResult releaseFullScreenExclusiveModeEXT(IntrusivePtr swapchain); +#endif + + +public: +// Original: vkAcquireProfilingLockKHR + VkResult acquireProfilingLockKHR(const VkAcquireProfilingLockInfoKHR* pInfo); + + +public: +// Original: vkReleaseProfilingLockKHR + void releaseProfilingLockKHR(); + + +public: +// Original: vkGetImageDrmFormatModifierPropertiesEXT + VkResult getImageDrmFormatModifierPropertiesEXT(IntrusivePtr image, VkImageDrmFormatModifierPropertiesEXT* pProperties); + + +public: +// Original: vkGetBufferOpaqueCaptureAddress + uint64_t getBufferOpaqueCaptureAddress(const VkBufferDeviceAddressInfo* pInfo); + + +public: +// Original: vkGetBufferOpaqueCaptureAddressKHR + uint64_t getBufferOpaqueCaptureAddressKHR(const VkBufferDeviceAddressInfo* pInfo); + + +public: +// Original: vkGetBufferDeviceAddress + VkDeviceAddress getBufferAddress(const VkBufferDeviceAddressInfo* pInfo); + + +public: +// Original: vkGetBufferDeviceAddressKHR + VkDeviceAddress getBufferAddressKHR(const VkBufferDeviceAddressInfo* pInfo); + + +public: +// Original: vkGetBufferDeviceAddressEXT + VkDeviceAddress getBufferAddressEXT(const VkBufferDeviceAddressInfo* pInfo); + + +public: +// Original: vkInitializePerformanceApiINTEL + VkResult initializePerformanceApiINTEL(const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); + + +public: +// Original: vkUninitializePerformanceApiINTEL + void uninitializePerformanceApiINTEL(); + + +public: +// Original: vkAcquirePerformanceConfigurationINTEL + VkResult acquirePerformanceConfigurationINTEL(const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, IntrusivePtr pConfiguration); + + +public: +// Original: vkReleasePerformanceConfigurationINTEL + VkResult releasePerformanceConfigurationINTEL(IntrusivePtr configuration); + + +public: +// Original: vkGetPerformanceParameterINTEL + VkResult getPerformanceParameterINTEL(VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue); + + +public: +// Original: vkGetDeviceMemoryOpaqueCaptureAddress + uint64_t getMemoryOpaqueCaptureAddress(const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); + + +public: +// Original: vkGetDeviceMemoryOpaqueCaptureAddressKHR + uint64_t getMemoryOpaqueCaptureAddressKHR(const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); + + +public: +// Original: vkGetPipelineExecutablePropertiesKHR + VkResult getPipelineExecutablePropertiesKHR(const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties); + + +public: +// Original: vkGetPipelineExecutableStatisticsKHR + VkResult getPipelineExecutableStatisticsKHR(const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics); + + +public: +// Original: vkGetPipelineExecutableInternalRepresentationsKHR + VkResult getPipelineExecutableInternalRepresentationsKHR(const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); + + +public: +// Original: vkBuildAccelerationStructuresKHR + VkResult buildAccelerationStructuresKHR(IntrusivePtr deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* ppBuildRangeInfos); + + +public: +// Original: vkGetAccelerationStructureDeviceAddressKHR + VkDeviceAddress getAccelerationStructureAddressKHR(const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); + + +public: +// Original: vkGetDeferredOperationMaxConcurrencyKHR + uint32_t getDeferredOperationMaxConcurrencyKHR(IntrusivePtr operation); + + +public: +// Original: vkGetDeferredOperationResultKHR + VkResult getDeferredOperationResultKHR(IntrusivePtr operation); + + +public: +// Original: vkDeferredOperationJoinKHR + VkResult deferredOperationJoinKHR(IntrusivePtr operation); + + +public: +// Original: vkGetPipelineIndirectMemoryRequirementsNV + void getPipelineIndirectMemoryRequirementsNV(const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements); + + +public: +// Original: vkGetPipelineIndirectDeviceAddressNV + VkDeviceAddress getPipelineIndirectAddressNV(const VkPipelineIndirectDeviceAddressInfoNV* pInfo); + + +public: +// Original: vkAntiLagUpdateAMD + void antiLagUpdateAMD(const VkAntiLagDataAMD* pData); + + +public: +// Original: vkSetPrivateData + VkResult setPrivateData(VkObjectType objectType, uint64_t objectHandle, IntrusivePtr privateDataSlot, uint64_t data); + + +public: +// Original: vkSetPrivateDataEXT + VkResult setPrivateDataEXT(VkObjectType objectType, uint64_t objectHandle, IntrusivePtr privateDataSlot, uint64_t data); + + +public: +// Original: vkGetPrivateData + void getPrivateData(VkObjectType objectType, uint64_t objectHandle, IntrusivePtr privateDataSlot, uint64_t* pData); + + +public: +// Original: vkGetPrivateDataEXT + void getPrivateDataEXT(VkObjectType objectType, uint64_t objectHandle, IntrusivePtr privateDataSlot, uint64_t* pData); + + +public: +// Original: vkGetAccelerationStructureBuildSizesKHR + void getAccelerationStructureBuildSizesKHR(VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); + + +public: +// Original: vkCopyMemoryToImage + VkResult copyMemoryToImage(const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo); + + +public: +// Original: vkCopyMemoryToImageEXT + VkResult copyMemoryToImageEXT(const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo); + + +public: +// Original: vkCopyImageToMemory + VkResult copyImageToMemory(const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo); + + +public: +// Original: vkCopyImageToMemoryEXT + VkResult copyImageToMemoryEXT(const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo); + + +public: +// Original: vkCopyImageToImage + VkResult copyImageToImage(const VkCopyImageToImageInfo* pCopyImageToImageInfo); + + +public: +// Original: vkCopyImageToImageEXT + VkResult copyImageToImageEXT(const VkCopyImageToImageInfo* pCopyImageToImageInfo); + + +public: +// Original: vkTransitionImageLayout + VkResult transitionImageLayout(uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions); + + +public: +// Original: vkTransitionImageLayoutEXT + VkResult transitionImageLayoutEXT(uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions); + + +public: +// Original: vkUpdateVideoSessionParametersKHR + VkResult updateVideoSessionParametersKHR(IntrusivePtr videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); + + +public: +// Original: vkGetEncodedVideoSessionParametersKHR + VkResult getEncodedVideoSessionParametersKHR(const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData); + + +public: +// Original: vkGetVideoSessionMemoryRequirementsKHR + VkResult getVideoSessionMemoryRequirementsKHR(IntrusivePtr videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements); + + +public: +// Original: vkBindVideoSessionMemoryKHR + VkResult bindVideoSessionMemoryKHR(IntrusivePtr videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos); + + +public: +// Original: vkGetPartitionedAccelerationStructuresBuildSizesNV + void getPartitionedAccelerationStructuresBuildSizesNV(const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); + + +public: +// Original: vkGetDescriptorSetLayoutSizeEXT + void getDescriptorSetLayoutSizeEXT(IntrusivePtr layout, VkDeviceSize* pLayoutSizeInBytes); + + +public: +// Original: vkGetDescriptorSetLayoutBindingOffsetEXT + void getDescriptorSetLayoutBindingOffsetEXT(IntrusivePtr layout, uint32_t binding, VkDeviceSize* pOffset); + + +public: +// Original: vkGetDescriptorEXT + void getDescriptorEXT(const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor); + + +public: +// Original: vkGetBufferOpaqueCaptureDescriptorDataEXT + VkResult getBufferOpaqueCaptureDescriptorDataEXT(const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData); + + +public: +// Original: vkGetImageOpaqueCaptureDescriptorDataEXT + VkResult getImageOpaqueCaptureDescriptorDataEXT(const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData); + + +public: +// Original: vkGetImageViewOpaqueCaptureDescriptorDataEXT + VkResult getImageViewOpaqueCaptureDescriptorDataEXT(const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData); + + +public: +// Original: vkGetSamplerOpaqueCaptureDescriptorDataEXT + VkResult getSamplerOpaqueCaptureDescriptorDataEXT(const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData); + + +public: +// Original: vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT + VkResult getAccelerationStructureOpaqueCaptureDescriptorDataEXT(const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData); + + +public: +// Original: vkSetDeviceMemoryPriorityEXT + void setMemoryPriorityEXT(IntrusivePtr memory, float priority); + + +public: +// Original: vkWaitForPresentKHR + VkResult waitForPresentKHR(IntrusivePtr swapchain, uint64_t presentId, uint64_t timeout); + + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkSetBufferCollectionBufferConstraintsFUCHSIA + VkResult setBufferCollectionBufferConstraintsFUCHSIA(IntrusivePtr collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); +#endif + + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkSetBufferCollectionImageConstraintsFUCHSIA + VkResult setBufferCollectionImageConstraintsFUCHSIA(IntrusivePtr collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); +#endif + + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkGetBufferCollectionPropertiesFUCHSIA + VkResult getBufferCollectionPropertiesFUCHSIA(IntrusivePtr collection, VkBufferCollectionPropertiesFUCHSIA* pProperties); +#endif + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkGetCudaModuleCacheNV + VkResult getCudaModuleCacheNV(IntrusivePtr module, size_t* pCacheSize, void* pCacheData); +#endif + + +public: +// Original: vkGetDescriptorSetLayoutHostMappingInfoVALVE + void getDescriptorSetLayoutHostMappingInfoVALVE(const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); + + +public: +// Original: vkGetDescriptorSetHostMappingVALVE + void getDescriptorSetHostMappingVALVE(IntrusivePtr descriptorSet, void* ppData); + + +public: +// Original: vkBuildMicromapsEXT + VkResult buildMicromapsEXT(IntrusivePtr deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); + + +public: +// Original: vkCopyMicromapEXT + VkResult copyMicromapEXT(IntrusivePtr deferredOperation, const VkCopyMicromapInfoEXT* pInfo); + + +public: +// Original: vkCopyMicromapToMemoryEXT + VkResult copyMicromapToMemoryEXT(IntrusivePtr deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo); + + +public: +// Original: vkCopyMemoryToMicromapEXT + VkResult copyMemoryToMicromapEXT(IntrusivePtr deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo); + + +public: +// Original: vkWriteMicromapsPropertiesEXT + VkResult writeMicromapsPropertiesEXT(uint32_t micromapCount, const std::vector>& pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); + + +public: +// Original: vkGetDeviceMicromapCompatibilityEXT + void getMicromapCompatibilityEXT(const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); + + +public: +// Original: vkGetMicromapBuildSizesEXT + void getMicromapBuildSizesEXT(VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo); + + +public: +// Original: vkGetShaderModuleIdentifierEXT + void getShaderModuleIdentifierEXT(IntrusivePtr shaderModule, VkShaderModuleIdentifierEXT* pIdentifier); + + +public: +// Original: vkGetShaderModuleCreateInfoIdentifierEXT + void getShaderModuleCreateInfoIdentifierEXT(const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier); + + +public: +// Original: vkGetImageSubresourceLayout2 + void getImageSubresourceLayout2(IntrusivePtr image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout); + + +public: +// Original: vkGetImageSubresourceLayout2KHR + void getImageSubresourceLayout2KHR(IntrusivePtr image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout); + + +public: +// Original: vkGetImageSubresourceLayout2EXT + void getImageSubresourceLayout2EXT(IntrusivePtr image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout); + + +public: +// Original: vkGetPipelinePropertiesEXT + VkResult getPipelinePropertiesEXT(const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties); + + +#if defined(VK_USE_PLATFORM_METAL_EXT) +public: +// Original: vkExportMetalObjectsEXT + void exportMetalObjectsEXT(VkExportMetalObjectsInfoEXT* pMetalObjectsInfo); +#endif + + +public: +// Original: vkGetFramebufferTilePropertiesQCOM + VkResult getFramebufferTilePropertiesQCOM(IntrusivePtr framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties); + + +public: +// Original: vkGetDynamicRenderingTilePropertiesQCOM + VkResult getDynamicRenderingTilePropertiesQCOM(const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties); + + +public: +// Original: vkBindOpticalFlowSessionImageNV + VkResult bindOpticalFlowSessionImageNV(IntrusivePtr session, VkOpticalFlowSessionBindingPointNV bindingPoint, IntrusivePtr view, VkImageLayout layout); + + +public: +// Original: vkGetDeviceFaultInfoEXT + VkResult getFaultInfoEXT(VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo); + + +public: +// Original: vkReleaseSwapchainImagesEXT + VkResult releaseSwapchainImagesEXT(const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo); + + +public: +// Original: vkGetDeviceImageSubresourceLayout + void getImageSubresourceLayout(const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout); + + +public: +// Original: vkGetDeviceImageSubresourceLayoutKHR + void getImageSubresourceLayoutKHR(const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout); + + +public: +// Original: vkMapMemory2 + VkResult mapMemory2(const VkMemoryMapInfo* pMemoryMapInfo, void* ppData); + + +public: +// Original: vkMapMemory2KHR + VkResult mapMemory2KHR(const VkMemoryMapInfo* pMemoryMapInfo, void* ppData); + + +public: +// Original: vkUnmapMemory2 + VkResult unmapMemory2(const VkMemoryUnmapInfo* pMemoryUnmapInfo); + + +public: +// Original: vkUnmapMemory2KHR + VkResult unmapMemory2KHR(const VkMemoryUnmapInfo* pMemoryUnmapInfo); + + +public: +// Original: vkGetShaderBinaryDataEXT + VkResult getShaderBinaryDataEXT(IntrusivePtr shader, size_t* pDataSize, void* pData); + + +#if defined(VK_USE_PLATFORM_SCREEN_QNX) +public: +// Original: vkGetScreenBufferPropertiesQNX + VkResult getScreenBufferPropertiesQNX(const _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties); +#endif + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkGetExecutionGraphPipelineScratchSizeAMDX + VkResult getExecutionGraphPipelineScratchSizeAMDX(IntrusivePtr executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); +#endif + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkGetExecutionGraphPipelineNodeIndexAMDX + VkResult getExecutionGraphPipelineNodeIndexAMDX(IntrusivePtr executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex); +#endif + + +public: +// Original: vkSetLatencySleepModeNV + VkResult setLatencySleepModeNV(IntrusivePtr swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo); + + +public: +// Original: vkLatencySleepNV + VkResult latencySleepNV(IntrusivePtr swapchain, const VkLatencySleepInfoNV* pSleepInfo); + + +public: +// Original: vkSetLatencyMarkerNV + void setLatencyMarkerNV(IntrusivePtr swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); + + +public: +// Original: vkGetLatencyTimingsNV + void getLatencyTimingsNV(IntrusivePtr swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); + + +#if defined(VK_USE_PLATFORM_METAL_EXT) +public: +// Original: vkGetMemoryMetalHandleEXT + VkResult getMemoryMetalHandleEXT(const VkMemoryGetMetalHandleInfoEXT* pGetMetalHandleInfo, void* pHandle); +#endif + + +#if defined(VK_USE_PLATFORM_METAL_EXT) +public: +// Original: vkGetMemoryMetalHandlePropertiesEXT + VkResult getMemoryMetalHandlePropertiesEXT(VkExternalMemoryHandleTypeFlagBits handleType, const void* pHandle, VkMemoryMetalHandlePropertiesEXT* pMemoryMetalHandleProperties); +#endif + + +public: +// Original: vkConvertCooperativeVectorMatrixNV + VkResult convertCooperativeVectorMatrixNV(const VkConvertCooperativeVectorMatrixInfoNV* pInfo); + +}; +using PDevice = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeviceMemory.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeviceMemory.cpp new file mode 100644 index 0000000..f8dffe6 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeviceMemory.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + DeviceMemory::DeviceMemory(IntrusivePtr owner0, VkDeviceMemory handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + DeviceMemory::~DeviceMemory() { + if (_handle && _owned) { + (void)vk.vkFreeMemory(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkAllocateMemory +DeviceMemory::DeviceMemory(IntrusivePtr parent, const VkMemoryAllocateInfo* pAllocateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkDeviceMemory _out = VK_NULL_HANDLE; + auto _res = vk.vkAllocateMemory(parent->getHandle(), pAllocateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkAllocateMemory failed"); + _handle = _out; +} +// Original: vkAllocateMemory (factory) +IntrusivePtr DeviceMemory::create(IntrusivePtr parent, const VkMemoryAllocateInfo* pAllocateInfo) { + return IntrusivePtr(new DeviceMemory(parent, pAllocateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeviceMemory.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeviceMemory.hpp new file mode 100644 index 0000000..696a395 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DeviceMemory.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDeviceMemory +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DeviceMemory : public RefCounted { +public: + VkDeviceMemory getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDeviceMemory handle) { + return IntrusivePtr(new DeviceMemory(owner0, handle, false)); + } +private: + explicit DeviceMemory(IntrusivePtr owner0, VkDeviceMemory handle, bool owned); + ~DeviceMemory() override; +private: + VkDeviceMemory _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkAllocateMemory + explicit DeviceMemory(IntrusivePtr parent, const VkMemoryAllocateInfo* pAllocateInfo); +// Original: vkAllocateMemory (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkMemoryAllocateInfo* pAllocateInfo); + +}; +using PDeviceMemory = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayKHR.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayKHR.cpp new file mode 100644 index 0000000..01d01df --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayKHR.cpp @@ -0,0 +1,17 @@ +#include +#include + + +namespace VulkanPP { + + DisplayKHR::DisplayKHR(IntrusivePtr owner0, VkDisplayKHR handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + DisplayKHR::~DisplayKHR() { + if (_handle && _owned) { + } +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayKHR.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayKHR.hpp new file mode 100644 index 0000000..215eeba --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayKHR.hpp @@ -0,0 +1,36 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class PhysicalDevice; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDisplayKHR +// Holds (destroy/free owners + creation parent, or producer parent): PhysicalDevice +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DisplayKHR : public RefCounted { +public: + VkDisplayKHR getHandle() const noexcept { return _handle; } + IntrusivePtr getPhysicalDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDisplayKHR handle) { + return IntrusivePtr(new DisplayKHR(owner0, handle, false)); + } +private: + explicit DisplayKHR(IntrusivePtr owner0, VkDisplayKHR handle, bool owned); + ~DisplayKHR() override; +private: + VkDisplayKHR _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; +}; +using PDisplayKHR = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayModeKHR.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayModeKHR.cpp new file mode 100644 index 0000000..9f108e5 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayModeKHR.cpp @@ -0,0 +1,32 @@ +#include +#include +#include + + +namespace VulkanPP { + + DisplayModeKHR::DisplayModeKHR(IntrusivePtr owner0, VkDisplayModeKHR handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + DisplayModeKHR::~DisplayModeKHR() { + if (_handle && _owned) { + } +} + +// Original: vkCreateDisplayModeKHR +DisplayModeKHR::DisplayModeKHR(IntrusivePtr parent, IntrusivePtr display, const VkDisplayModeCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkDisplayModeKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDisplayModeKHR(parent->getHandle(), display->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDisplayModeKHR failed"); + _handle = _out; +} +// Original: vkCreateDisplayModeKHR (factory) +IntrusivePtr DisplayModeKHR::create(IntrusivePtr parent, IntrusivePtr display, const VkDisplayModeCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new DisplayModeKHR(parent, display, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayModeKHR.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayModeKHR.hpp new file mode 100644 index 0000000..4cd1804 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/DisplayModeKHR.hpp @@ -0,0 +1,44 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class DisplayKHR; +class PhysicalDevice; + + + +// === Lifetime summary (deterministic) === +// Handle: VkDisplayModeKHR +// Holds (destroy/free owners + creation parent, or producer parent): PhysicalDevice +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class DisplayModeKHR : public RefCounted { +public: + VkDisplayModeKHR getHandle() const noexcept { return _handle; } + IntrusivePtr getPhysicalDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkDisplayModeKHR handle) { + return IntrusivePtr(new DisplayModeKHR(owner0, handle, false)); + } +private: + explicit DisplayModeKHR(IntrusivePtr owner0, VkDisplayModeKHR handle, bool owned); + ~DisplayModeKHR() override; +private: + VkDisplayModeKHR _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateDisplayModeKHR + explicit DisplayModeKHR(IntrusivePtr parent, IntrusivePtr display, const VkDisplayModeCreateInfoKHR* pCreateInfo); +// Original: vkCreateDisplayModeKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, IntrusivePtr display, const VkDisplayModeCreateInfoKHR* pCreateInfo); + +}; +using PDisplayModeKHR = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Event.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Event.cpp new file mode 100644 index 0000000..26f32c6 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Event.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + Event::Event(IntrusivePtr owner0, VkEvent handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + Event::~Event() { + if (_handle && _owned) { + (void)vk.vkDestroyEvent(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateEvent +Event::Event(IntrusivePtr parent, const VkEventCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkEvent _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateEvent(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateEvent failed"); + _handle = _out; +} +// Original: vkCreateEvent (factory) +IntrusivePtr Event::create(IntrusivePtr parent, const VkEventCreateInfo* pCreateInfo) { + return IntrusivePtr(new Event(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Event.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Event.hpp new file mode 100644 index 0000000..2cb0f9f --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Event.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkEvent +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Event : public RefCounted { +public: + VkEvent getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkEvent handle) { + return IntrusivePtr(new Event(owner0, handle, false)); + } +private: + explicit Event(IntrusivePtr owner0, VkEvent handle, bool owned); + ~Event() override; +private: + VkEvent _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateEvent + explicit Event(IntrusivePtr parent, const VkEventCreateInfo* pCreateInfo); +// Original: vkCreateEvent (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkEventCreateInfo* pCreateInfo); + +}; +using PEvent = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ExternalComputeQueueNV.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ExternalComputeQueueNV.cpp new file mode 100644 index 0000000..5dc2b72 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ExternalComputeQueueNV.cpp @@ -0,0 +1,38 @@ +#include +#include + + +namespace VulkanPP { + + ExternalComputeQueueNV::ExternalComputeQueueNV(IntrusivePtr owner0, VkExternalComputeQueueNV handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + ExternalComputeQueueNV::~ExternalComputeQueueNV() { + if (_handle && _owned) { + (void)vk.vkDestroyExternalComputeQueueNV(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateExternalComputeQueueNV +ExternalComputeQueueNV::ExternalComputeQueueNV(IntrusivePtr parent, const VkExternalComputeQueueCreateInfoNV* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkExternalComputeQueueNV _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateExternalComputeQueueNV(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateExternalComputeQueueNV failed"); + _handle = _out; +} +// Original: vkCreateExternalComputeQueueNV (factory) +IntrusivePtr ExternalComputeQueueNV::create(IntrusivePtr parent, const VkExternalComputeQueueCreateInfoNV* pCreateInfo) { + return IntrusivePtr(new ExternalComputeQueueNV(parent, pCreateInfo)); +} + +// Original: vkGetExternalComputeQueueDataNV +void ExternalComputeQueueNV::getExternalComputeQueueDataNV(VkExternalComputeQueueDataParamsNV* params, void* pData) { + vk.vkGetExternalComputeQueueDataNV(_handle, params, pData); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ExternalComputeQueueNV.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ExternalComputeQueueNV.hpp new file mode 100644 index 0000000..ba38cf0 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ExternalComputeQueueNV.hpp @@ -0,0 +1,48 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkExternalComputeQueueNV +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class ExternalComputeQueueNV : public RefCounted { +public: + VkExternalComputeQueueNV getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkExternalComputeQueueNV handle) { + return IntrusivePtr(new ExternalComputeQueueNV(owner0, handle, false)); + } +private: + explicit ExternalComputeQueueNV(IntrusivePtr owner0, VkExternalComputeQueueNV handle, bool owned); + ~ExternalComputeQueueNV() override; +private: + VkExternalComputeQueueNV _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateExternalComputeQueueNV + explicit ExternalComputeQueueNV(IntrusivePtr parent, const VkExternalComputeQueueCreateInfoNV* pCreateInfo); +// Original: vkCreateExternalComputeQueueNV (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkExternalComputeQueueCreateInfoNV* pCreateInfo); + + +public: +// Original: vkGetExternalComputeQueueDataNV + void getExternalComputeQueueDataNV(VkExternalComputeQueueDataParamsNV* params, void* pData); + +}; +using PExternalComputeQueueNV = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Fence.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Fence.cpp new file mode 100644 index 0000000..5a6058e --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Fence.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + Fence::Fence(IntrusivePtr owner0, VkFence handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + Fence::~Fence() { + if (_handle && _owned) { + (void)vk.vkDestroyFence(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateFence +Fence::Fence(IntrusivePtr parent, const VkFenceCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkFence _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateFence(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateFence failed"); + _handle = _out; +} +// Original: vkCreateFence (factory) +IntrusivePtr Fence::create(IntrusivePtr parent, const VkFenceCreateInfo* pCreateInfo) { + return IntrusivePtr(new Fence(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Fence.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Fence.hpp new file mode 100644 index 0000000..5091109 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Fence.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkFence +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Fence : public RefCounted { +public: + VkFence getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkFence handle) { + return IntrusivePtr(new Fence(owner0, handle, false)); + } +private: + explicit Fence(IntrusivePtr owner0, VkFence handle, bool owned); + ~Fence() override; +private: + VkFence _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateFence + explicit Fence(IntrusivePtr parent, const VkFenceCreateInfo* pCreateInfo); +// Original: vkCreateFence (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkFenceCreateInfo* pCreateInfo); + +}; +using PFence = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Framebuffer.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Framebuffer.cpp new file mode 100644 index 0000000..2a4f4fa --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Framebuffer.cpp @@ -0,0 +1,39 @@ +#include +#include +#include +#include + + +namespace VulkanPP { + + Framebuffer::Framebuffer(IntrusivePtr owner0, VkFramebuffer handle, bool owned, IntrusivePtr owner_RenderPass, const std::vector>& owners_ImageView) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _lifetime_owner_RenderPass(std::move(owner_RenderPass)) + , _lifetime_owners_ImageView(owners_ImageView) +{ } + + Framebuffer::~Framebuffer() { + if (_handle && _owned) { + (void)vk.vkDestroyFramebuffer(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateFramebuffer +Framebuffer::Framebuffer(IntrusivePtr parent, const VkFramebufferCreateInfo* pCreateInfo, IntrusivePtr owner_RenderPass, const std::vector>& owners_ImageView) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) + , _lifetime_owner_RenderPass(owner_RenderPass) + , _lifetime_owners_ImageView(owners_ImageView) +{ + VkFramebuffer _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateFramebuffer(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateFramebuffer failed"); + _handle = _out; +} +// Original: vkCreateFramebuffer (factory) +IntrusivePtr Framebuffer::create(IntrusivePtr parent, const VkFramebufferCreateInfo* pCreateInfo, IntrusivePtr owner_RenderPass, const std::vector>& owners_ImageView) { + return IntrusivePtr(new Framebuffer(parent, pCreateInfo, owner_RenderPass, owners_ImageView)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Framebuffer.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Framebuffer.hpp new file mode 100644 index 0000000..68931d3 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Framebuffer.hpp @@ -0,0 +1,49 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; +class ImageView; +class RenderPass; + + + +// === Lifetime summary (deterministic) === +// Handle: VkFramebuffer +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): RenderPass via VkFramebufferCreateInfo::renderPass; ImageView[] via VkFramebufferCreateInfo::pAttachments[] +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Framebuffer : public RefCounted { +public: + VkFramebuffer getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + IntrusivePtr getRenderPass() const noexcept { return _lifetime_owner_RenderPass; } + const std::vector>& getImageViews() const noexcept { return _lifetime_owners_ImageView; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkFramebuffer handle) { + return IntrusivePtr(new Framebuffer(owner0, handle, false, IntrusivePtr(), std::vector>())); + } +private: + explicit Framebuffer(IntrusivePtr owner0, VkFramebuffer handle, bool owned, IntrusivePtr owner_RenderPass, const std::vector>& owners_ImageView); + ~Framebuffer() override; +private: + VkFramebuffer _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + IntrusivePtr _lifetime_owner_RenderPass; + std::vector> _lifetime_owners_ImageView; + +public: +// Original: vkCreateFramebuffer + explicit Framebuffer(IntrusivePtr parent, const VkFramebufferCreateInfo* pCreateInfo, IntrusivePtr owner_RenderPass, const std::vector>& owners_ImageView); +// Original: vkCreateFramebuffer (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkFramebufferCreateInfo* pCreateInfo, IntrusivePtr owner_RenderPass, const std::vector>& owners_ImageView); + +}; +using PFramebuffer = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Image.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Image.cpp new file mode 100644 index 0000000..f5d5fa6 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Image.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + Image::Image(IntrusivePtr owner0, VkImage handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + Image::~Image() { + if (_handle && _owned) { + (void)vk.vkDestroyImage(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateImage +Image::Image(IntrusivePtr parent, const VkImageCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkImage _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateImage(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateImage failed"); + _handle = _out; +} +// Original: vkCreateImage (factory) +IntrusivePtr Image::create(IntrusivePtr parent, const VkImageCreateInfo* pCreateInfo) { + return IntrusivePtr(new Image(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Image.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Image.hpp new file mode 100644 index 0000000..5e73269 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Image.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkImage +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Image : public RefCounted { +public: + VkImage getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkImage handle) { + return IntrusivePtr(new Image(owner0, handle, false)); + } +private: + explicit Image(IntrusivePtr owner0, VkImage handle, bool owned); + ~Image() override; +private: + VkImage _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateImage + explicit Image(IntrusivePtr parent, const VkImageCreateInfo* pCreateInfo); +// Original: vkCreateImage (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkImageCreateInfo* pCreateInfo); + +}; +using PImage = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ImageView.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ImageView.cpp new file mode 100644 index 0000000..7b04d94 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ImageView.cpp @@ -0,0 +1,36 @@ +#include +#include +#include + + +namespace VulkanPP { + + ImageView::ImageView(IntrusivePtr owner0, VkImageView handle, bool owned, IntrusivePtr owner_Image) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _lifetime_owner_Image(std::move(owner_Image)) +{ } + + ImageView::~ImageView() { + if (_handle && _owned) { + (void)vk.vkDestroyImageView(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateImageView +ImageView::ImageView(IntrusivePtr parent, const VkImageViewCreateInfo* pCreateInfo, IntrusivePtr owner_Image) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) + , _lifetime_owner_Image(owner_Image) +{ + VkImageView _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateImageView(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateImageView failed"); + _handle = _out; +} +// Original: vkCreateImageView (factory) +IntrusivePtr ImageView::create(IntrusivePtr parent, const VkImageViewCreateInfo* pCreateInfo, IntrusivePtr owner_Image) { + return IntrusivePtr(new ImageView(parent, pCreateInfo, owner_Image)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ImageView.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ImageView.hpp new file mode 100644 index 0000000..7c7f4e4 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ImageView.hpp @@ -0,0 +1,46 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; +class Image; + + + +// === Lifetime summary (deterministic) === +// Handle: VkImageView +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): Image via VkImageViewCreateInfo::image +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class ImageView : public RefCounted { +public: + VkImageView getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + IntrusivePtr getImage() const noexcept { return _lifetime_owner_Image; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkImageView handle) { + return IntrusivePtr(new ImageView(owner0, handle, false, IntrusivePtr())); + } +private: + explicit ImageView(IntrusivePtr owner0, VkImageView handle, bool owned, IntrusivePtr owner_Image); + ~ImageView() override; +private: + VkImageView _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + IntrusivePtr _lifetime_owner_Image; + +public: +// Original: vkCreateImageView + explicit ImageView(IntrusivePtr parent, const VkImageViewCreateInfo* pCreateInfo, IntrusivePtr owner_Image); +// Original: vkCreateImageView (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkImageViewCreateInfo* pCreateInfo, IntrusivePtr owner_Image); + +}; +using PImageView = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutEXT.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutEXT.cpp new file mode 100644 index 0000000..dac6b22 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutEXT.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + IndirectCommandsLayoutEXT::IndirectCommandsLayoutEXT(IntrusivePtr owner0, VkIndirectCommandsLayoutEXT handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + IndirectCommandsLayoutEXT::~IndirectCommandsLayoutEXT() { + if (_handle && _owned) { + (void)vk.vkDestroyIndirectCommandsLayoutEXT(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateIndirectCommandsLayoutEXT +IndirectCommandsLayoutEXT::IndirectCommandsLayoutEXT(IntrusivePtr parent, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkIndirectCommandsLayoutEXT _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateIndirectCommandsLayoutEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateIndirectCommandsLayoutEXT failed"); + _handle = _out; +} +// Original: vkCreateIndirectCommandsLayoutEXT (factory) +IntrusivePtr IndirectCommandsLayoutEXT::create(IntrusivePtr parent, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new IndirectCommandsLayoutEXT(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutEXT.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutEXT.hpp new file mode 100644 index 0000000..5e51cfb --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutEXT.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkIndirectCommandsLayoutEXT +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class IndirectCommandsLayoutEXT : public RefCounted { +public: + VkIndirectCommandsLayoutEXT getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkIndirectCommandsLayoutEXT handle) { + return IntrusivePtr(new IndirectCommandsLayoutEXT(owner0, handle, false)); + } +private: + explicit IndirectCommandsLayoutEXT(IntrusivePtr owner0, VkIndirectCommandsLayoutEXT handle, bool owned); + ~IndirectCommandsLayoutEXT() override; +private: + VkIndirectCommandsLayoutEXT _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateIndirectCommandsLayoutEXT + explicit IndirectCommandsLayoutEXT(IntrusivePtr parent, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo); +// Original: vkCreateIndirectCommandsLayoutEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo); + +}; +using PIndirectCommandsLayoutEXT = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutNV.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutNV.cpp new file mode 100644 index 0000000..8e568f4 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutNV.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + IndirectCommandsLayoutNV::IndirectCommandsLayoutNV(IntrusivePtr owner0, VkIndirectCommandsLayoutNV handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + IndirectCommandsLayoutNV::~IndirectCommandsLayoutNV() { + if (_handle && _owned) { + (void)vk.vkDestroyIndirectCommandsLayoutNV(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateIndirectCommandsLayoutNV +IndirectCommandsLayoutNV::IndirectCommandsLayoutNV(IntrusivePtr parent, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkIndirectCommandsLayoutNV _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateIndirectCommandsLayoutNV(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateIndirectCommandsLayoutNV failed"); + _handle = _out; +} +// Original: vkCreateIndirectCommandsLayoutNV (factory) +IntrusivePtr IndirectCommandsLayoutNV::create(IntrusivePtr parent, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo) { + return IntrusivePtr(new IndirectCommandsLayoutNV(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutNV.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutNV.hpp new file mode 100644 index 0000000..ea65996 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectCommandsLayoutNV.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkIndirectCommandsLayoutNV +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class IndirectCommandsLayoutNV : public RefCounted { +public: + VkIndirectCommandsLayoutNV getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkIndirectCommandsLayoutNV handle) { + return IntrusivePtr(new IndirectCommandsLayoutNV(owner0, handle, false)); + } +private: + explicit IndirectCommandsLayoutNV(IntrusivePtr owner0, VkIndirectCommandsLayoutNV handle, bool owned); + ~IndirectCommandsLayoutNV() override; +private: + VkIndirectCommandsLayoutNV _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateIndirectCommandsLayoutNV + explicit IndirectCommandsLayoutNV(IntrusivePtr parent, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo); +// Original: vkCreateIndirectCommandsLayoutNV (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo); + +}; +using PIndirectCommandsLayoutNV = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectExecutionSetEXT.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectExecutionSetEXT.cpp new file mode 100644 index 0000000..5cd5baa --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectExecutionSetEXT.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + IndirectExecutionSetEXT::IndirectExecutionSetEXT(IntrusivePtr owner0, VkIndirectExecutionSetEXT handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + IndirectExecutionSetEXT::~IndirectExecutionSetEXT() { + if (_handle && _owned) { + (void)vk.vkDestroyIndirectExecutionSetEXT(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateIndirectExecutionSetEXT +IndirectExecutionSetEXT::IndirectExecutionSetEXT(IntrusivePtr parent, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkIndirectExecutionSetEXT _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateIndirectExecutionSetEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateIndirectExecutionSetEXT failed"); + _handle = _out; +} +// Original: vkCreateIndirectExecutionSetEXT (factory) +IntrusivePtr IndirectExecutionSetEXT::create(IntrusivePtr parent, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new IndirectExecutionSetEXT(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectExecutionSetEXT.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectExecutionSetEXT.hpp new file mode 100644 index 0000000..15b6df2 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/IndirectExecutionSetEXT.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkIndirectExecutionSetEXT +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class IndirectExecutionSetEXT : public RefCounted { +public: + VkIndirectExecutionSetEXT getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkIndirectExecutionSetEXT handle) { + return IntrusivePtr(new IndirectExecutionSetEXT(owner0, handle, false)); + } +private: + explicit IndirectExecutionSetEXT(IntrusivePtr owner0, VkIndirectExecutionSetEXT handle, bool owned); + ~IndirectExecutionSetEXT() override; +private: + VkIndirectExecutionSetEXT _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateIndirectExecutionSetEXT + explicit IndirectExecutionSetEXT(IntrusivePtr parent, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo); +// Original: vkCreateIndirectExecutionSetEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo); + +}; +using PIndirectExecutionSetEXT = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Instance.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Instance.cpp new file mode 100644 index 0000000..bacaa5f --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Instance.cpp @@ -0,0 +1,70 @@ +#include +#include + + +namespace VulkanPP { + + Instance::Instance(VkInstance handle, bool owned) + : _handle(handle), _owned(owned) +{ } + + Instance::~Instance() { + if (_handle && _owned) { + (void)vk.vkDestroyInstance(_handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateInstance +Instance::Instance(const VkInstanceCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) +{ + VkInstance _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateInstance(pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateInstance failed"); + _handle = _out; +} +// Original: vkCreateInstance (factory) +IntrusivePtr Instance::create(const VkInstanceCreateInfo* pCreateInfo) { + return IntrusivePtr(new Instance(pCreateInfo)); +} + +// Original: vkEnumeratePhysicalDevices +std::vector> Instance::getPhysicalDevices() { + uint32_t _count = 0; + auto _r1 = vk.vkEnumeratePhysicalDevices(_handle, &_count, nullptr); + if (_r1 != VK_SUCCESS && _r1 != VK_INCOMPLETE) throw std::runtime_error("vkEnumeratePhysicalDevices (count) failed"); + std::vector _out; _out.resize(_count); + auto _r2 = vk.vkEnumeratePhysicalDevices(_handle, &_count, _out.data()); + if (_r2 != VK_SUCCESS) throw std::runtime_error("vkEnumeratePhysicalDevices (fill) failed"); + std::vector> _ret; _ret.reserve(_out.size()); + IntrusivePtr _self(this); + for (auto h : _out) { _ret.emplace_back(new PhysicalDevice(_self, h, false)); } + return _ret; +} + +// Original: vkGetInstanceProcAddr +PFN_vkVoidFunction Instance::getProcAddr(const char* pName) { + return vk.vkGetInstanceProcAddr(_handle, pName); +} + +// Original: vkDebugReportMessageEXT +void Instance::debugReportMessageEXT(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage) { + vk.vkDebugReportMessageEXT(_handle, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage); +} + +// Original: vkEnumeratePhysicalDeviceGroups +VkResult Instance::enumeratePhysicalDeviceGroups(uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { + return vk.vkEnumeratePhysicalDeviceGroups(_handle, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); +} + +// Original: vkEnumeratePhysicalDeviceGroupsKHR +VkResult Instance::enumeratePhysicalDeviceGroupsKHR(uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { + return vk.vkEnumeratePhysicalDeviceGroupsKHR(_handle, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties); +} + +// Original: vkSubmitDebugUtilsMessageEXT +void Instance::submitDebugUtilsMessageEXT(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) { + vk.vkSubmitDebugUtilsMessageEXT(_handle, messageSeverity, messageTypes, pCallbackData); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Instance.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Instance.hpp new file mode 100644 index 0000000..b855d45 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Instance.hpp @@ -0,0 +1,71 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class PhysicalDevice; + + + +// === Lifetime summary (deterministic) === +// Handle: VkInstance +// Holds (destroy/free owners + creation parent, or producer parent): — +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Instance : public RefCounted { +public: + VkInstance getHandle() const noexcept { return _handle; } +public: + static IntrusivePtr fromHandle(VkInstance handle) { + return IntrusivePtr(new Instance(handle, false)); + } +private: + explicit Instance(VkInstance handle, bool owned); + ~Instance() override; +private: + VkInstance _handle{VK_NULL_HANDLE}; + bool _owned{false}; + +public: +// Original: vkCreateInstance + explicit Instance(const VkInstanceCreateInfo* pCreateInfo); +// Original: vkCreateInstance (factory) + static IntrusivePtr create(const VkInstanceCreateInfo* pCreateInfo); + + +public: +// Original: vkEnumeratePhysicalDevices + std::vector> getPhysicalDevices(); + + +public: +// Original: vkGetInstanceProcAddr + PFN_vkVoidFunction getProcAddr(const char* pName); + + +public: +// Original: vkDebugReportMessageEXT + void debugReportMessageEXT(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage); + + +public: +// Original: vkEnumeratePhysicalDeviceGroups + VkResult enumeratePhysicalDeviceGroups(uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); + + +public: +// Original: vkEnumeratePhysicalDeviceGroupsKHR + VkResult enumeratePhysicalDeviceGroupsKHR(uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); + + +public: +// Original: vkSubmitDebugUtilsMessageEXT + void submitDebugUtilsMessageEXT(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); + +}; +using PInstance = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/MicromapEXT.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/MicromapEXT.cpp new file mode 100644 index 0000000..30a2cf5 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/MicromapEXT.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + MicromapEXT::MicromapEXT(IntrusivePtr owner0, VkMicromapEXT handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + MicromapEXT::~MicromapEXT() { + if (_handle && _owned) { + (void)vk.vkDestroyMicromapEXT(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateMicromapEXT +MicromapEXT::MicromapEXT(IntrusivePtr parent, const VkMicromapCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkMicromapEXT _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateMicromapEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateMicromapEXT failed"); + _handle = _out; +} +// Original: vkCreateMicromapEXT (factory) +IntrusivePtr MicromapEXT::create(IntrusivePtr parent, const VkMicromapCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new MicromapEXT(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/MicromapEXT.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/MicromapEXT.hpp new file mode 100644 index 0000000..974f5e9 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/MicromapEXT.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkMicromapEXT +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class MicromapEXT : public RefCounted { +public: + VkMicromapEXT getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkMicromapEXT handle) { + return IntrusivePtr(new MicromapEXT(owner0, handle, false)); + } +private: + explicit MicromapEXT(IntrusivePtr owner0, VkMicromapEXT handle, bool owned); + ~MicromapEXT() override; +private: + VkMicromapEXT _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateMicromapEXT + explicit MicromapEXT(IntrusivePtr parent, const VkMicromapCreateInfoEXT* pCreateInfo); +// Original: vkCreateMicromapEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkMicromapCreateInfoEXT* pCreateInfo); + +}; +using PMicromapEXT = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/OpticalFlowSessionNV.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/OpticalFlowSessionNV.cpp new file mode 100644 index 0000000..538ae25 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/OpticalFlowSessionNV.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + OpticalFlowSessionNV::OpticalFlowSessionNV(IntrusivePtr owner0, VkOpticalFlowSessionNV handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + OpticalFlowSessionNV::~OpticalFlowSessionNV() { + if (_handle && _owned) { + (void)vk.vkDestroyOpticalFlowSessionNV(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateOpticalFlowSessionNV +OpticalFlowSessionNV::OpticalFlowSessionNV(IntrusivePtr parent, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkOpticalFlowSessionNV _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateOpticalFlowSessionNV(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateOpticalFlowSessionNV failed"); + _handle = _out; +} +// Original: vkCreateOpticalFlowSessionNV (factory) +IntrusivePtr OpticalFlowSessionNV::create(IntrusivePtr parent, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo) { + return IntrusivePtr(new OpticalFlowSessionNV(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/OpticalFlowSessionNV.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/OpticalFlowSessionNV.hpp new file mode 100644 index 0000000..eda7bc1 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/OpticalFlowSessionNV.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkOpticalFlowSessionNV +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class OpticalFlowSessionNV : public RefCounted { +public: + VkOpticalFlowSessionNV getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkOpticalFlowSessionNV handle) { + return IntrusivePtr(new OpticalFlowSessionNV(owner0, handle, false)); + } +private: + explicit OpticalFlowSessionNV(IntrusivePtr owner0, VkOpticalFlowSessionNV handle, bool owned); + ~OpticalFlowSessionNV() override; +private: + VkOpticalFlowSessionNV _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateOpticalFlowSessionNV + explicit OpticalFlowSessionNV(IntrusivePtr parent, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo); +// Original: vkCreateOpticalFlowSessionNV (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo); + +}; +using POpticalFlowSessionNV = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/PhysicalDevice.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PhysicalDevice.cpp new file mode 100644 index 0000000..6957903 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PhysicalDevice.cpp @@ -0,0 +1,450 @@ +#include +#include +#include +#include +#include + + +namespace VulkanPP { + + PhysicalDevice::PhysicalDevice(IntrusivePtr owner0, VkPhysicalDevice handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + PhysicalDevice::~PhysicalDevice() { + if (_handle && _owned) { + } +} + +// Original: vkGetDisplayPlaneSupportedDisplaysKHR +std::vector> PhysicalDevice::getDisplayKHRs(uint32_t planeIndex) { + uint32_t _count = 0; + auto _r1 = vk.vkGetDisplayPlaneSupportedDisplaysKHR(_handle, planeIndex, &_count, nullptr); + if (_r1 != VK_SUCCESS && _r1 != VK_INCOMPLETE) throw std::runtime_error("vkGetDisplayPlaneSupportedDisplaysKHR (count) failed"); + std::vector _out; _out.resize(_count); + auto _r2 = vk.vkGetDisplayPlaneSupportedDisplaysKHR(_handle, planeIndex, &_count, _out.data()); + if (_r2 != VK_SUCCESS) throw std::runtime_error("vkGetDisplayPlaneSupportedDisplaysKHR (fill) failed"); + std::vector> _ret; _ret.reserve(_out.size()); + IntrusivePtr _self(this); + for (auto h : _out) { _ret.emplace_back(new DisplayKHR(_self, h, false)); } + return _ret; +} + +#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) +// Original: vkGetRandROutputDisplayEXT +IntrusivePtr PhysicalDevice::getDisplayKHR(Display* dpy, RROutput rrOutput) { + VkDisplayKHR _h = VK_NULL_HANDLE; + auto _r = vk.vkGetRandROutputDisplayEXT(_handle, dpy, rrOutput, &_h); + if (_r != VK_SUCCESS) throw std::runtime_error("vkGetRandROutputDisplayEXT failed"); + return IntrusivePtr(new DisplayKHR(IntrusivePtr(this), _h, false)); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetWinrtDisplayNV +IntrusivePtr PhysicalDevice::getDisplayKHR(uint32_t deviceRelativeId) { + VkDisplayKHR _h = VK_NULL_HANDLE; + auto _r = vk.vkGetWinrtDisplayNV(_handle, deviceRelativeId, &_h); + if (_r != VK_SUCCESS) throw std::runtime_error("vkGetWinrtDisplayNV failed"); + return IntrusivePtr(new DisplayKHR(IntrusivePtr(this), _h, false)); +} +#endif + +// Original: vkGetDrmDisplayEXT +IntrusivePtr PhysicalDevice::getDisplayKHR(int32_t drmFd, uint32_t connectorId) { + VkDisplayKHR _h = VK_NULL_HANDLE; + auto _r = vk.vkGetDrmDisplayEXT(_handle, drmFd, connectorId, &_h); + if (_r != VK_SUCCESS) throw std::runtime_error("vkGetDrmDisplayEXT failed"); + return IntrusivePtr(new DisplayKHR(IntrusivePtr(this), _h, false)); +} + +// Original: vkGetPhysicalDeviceProperties +void PhysicalDevice::getProperties(VkPhysicalDeviceProperties* pProperties) { + vk.vkGetPhysicalDeviceProperties(_handle, pProperties); +} + +// Original: vkGetPhysicalDeviceQueueFamilyProperties +void PhysicalDevice::getQueueFamilyProperties(uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) { + vk.vkGetPhysicalDeviceQueueFamilyProperties(_handle, pQueueFamilyPropertyCount, pQueueFamilyProperties); +} + +// Original: vkGetPhysicalDeviceMemoryProperties +void PhysicalDevice::getMemoryProperties(VkPhysicalDeviceMemoryProperties* pMemoryProperties) { + vk.vkGetPhysicalDeviceMemoryProperties(_handle, pMemoryProperties); +} + +// Original: vkGetPhysicalDeviceFeatures +void PhysicalDevice::getFeatures(VkPhysicalDeviceFeatures* pFeatures) { + vk.vkGetPhysicalDeviceFeatures(_handle, pFeatures); +} + +// Original: vkGetPhysicalDeviceFormatProperties +void PhysicalDevice::getFormatProperties(VkFormat format, VkFormatProperties* pFormatProperties) { + vk.vkGetPhysicalDeviceFormatProperties(_handle, format, pFormatProperties); +} + +// Original: vkGetPhysicalDeviceImageFormatProperties +VkResult PhysicalDevice::getImageFormatProperties(VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) { + return vk.vkGetPhysicalDeviceImageFormatProperties(_handle, format, type, tiling, usage, flags, pImageFormatProperties); +} + +// Original: vkEnumerateDeviceLayerProperties +VkResult PhysicalDevice::enumerateDeviceLayerProperties(uint32_t* pPropertyCount, VkLayerProperties* pProperties) { + return vk.vkEnumerateDeviceLayerProperties(_handle, pPropertyCount, pProperties); +} + +// Original: vkEnumerateDeviceExtensionProperties +VkResult PhysicalDevice::enumerateDeviceExtensionProperties(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) { + return vk.vkEnumerateDeviceExtensionProperties(_handle, pLayerName, pPropertyCount, pProperties); +} + +// Original: vkGetPhysicalDeviceSparseImageFormatProperties +void PhysicalDevice::getSparseImageFormatProperties(VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) { + vk.vkGetPhysicalDeviceSparseImageFormatProperties(_handle, format, type, samples, usage, tiling, pPropertyCount, pProperties); +} + +// Original: vkGetPhysicalDeviceDisplayPropertiesKHR +VkResult PhysicalDevice::getDisplayPropertiesKHR(uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) { + return vk.vkGetPhysicalDeviceDisplayPropertiesKHR(_handle, pPropertyCount, pProperties); +} + +// Original: vkGetPhysicalDeviceDisplayPlanePropertiesKHR +VkResult PhysicalDevice::getDisplayPlanePropertiesKHR(uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) { + return vk.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(_handle, pPropertyCount, pProperties); +} + +// Original: vkGetDisplayModePropertiesKHR +VkResult PhysicalDevice::getDisplayModePropertiesKHR(IntrusivePtr display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) { + return vk.vkGetDisplayModePropertiesKHR(_handle, display->getHandle(), pPropertyCount, pProperties); +} + +// Original: vkGetDisplayPlaneCapabilitiesKHR +VkResult PhysicalDevice::getDisplayPlaneCapabilitiesKHR(IntrusivePtr mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) { + return vk.vkGetDisplayPlaneCapabilitiesKHR(_handle, mode->getHandle(), planeIndex, pCapabilities); +} + +// Original: vkGetPhysicalDeviceSurfaceSupportKHR +VkResult PhysicalDevice::getSurfaceSupportKHR(uint32_t queueFamilyIndex, IntrusivePtr surface, VkBool32* pSupported) { + return vk.vkGetPhysicalDeviceSurfaceSupportKHR(_handle, queueFamilyIndex, surface->getHandle(), pSupported); +} + +// Original: vkGetPhysicalDeviceSurfaceCapabilitiesKHR +VkResult PhysicalDevice::getSurfaceCapabilitiesKHR(IntrusivePtr surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) { + return vk.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(_handle, surface->getHandle(), pSurfaceCapabilities); +} + +// Original: vkGetPhysicalDeviceSurfaceFormatsKHR +VkResult PhysicalDevice::getSurfaceFormatsKHR(IntrusivePtr surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) { + return vk.vkGetPhysicalDeviceSurfaceFormatsKHR(_handle, surface->getHandle(), pSurfaceFormatCount, pSurfaceFormats); +} + +// Original: vkGetPhysicalDeviceSurfacePresentModesKHR +VkResult PhysicalDevice::getSurfacePresentModesKHR(IntrusivePtr surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) { + return vk.vkGetPhysicalDeviceSurfacePresentModesKHR(_handle, surface->getHandle(), pPresentModeCount, pPresentModes); +} + +#if defined(VK_USE_PLATFORM_WAYLAND_KHR) +// Original: vkGetPhysicalDeviceWaylandPresentationSupportKHR +VkBool32 PhysicalDevice::getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex, wl_display* display) { + return vk.vkGetPhysicalDeviceWaylandPresentationSupportKHR(_handle, queueFamilyIndex, display); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetPhysicalDeviceWin32PresentationSupportKHR +VkBool32 PhysicalDevice::getWin32PresentationSupportKHR(uint32_t queueFamilyIndex) { + return vk.vkGetPhysicalDeviceWin32PresentationSupportKHR(_handle, queueFamilyIndex); +} +#endif + +#if defined(VK_USE_PLATFORM_XLIB_KHR) +// Original: vkGetPhysicalDeviceXlibPresentationSupportKHR +VkBool32 PhysicalDevice::getXlibPresentationSupportKHR(uint32_t queueFamilyIndex, Display* dpy, VisualID visualID) { + return vk.vkGetPhysicalDeviceXlibPresentationSupportKHR(_handle, queueFamilyIndex, dpy, visualID); +} +#endif + +#if defined(VK_USE_PLATFORM_XCB_KHR) +// Original: vkGetPhysicalDeviceXcbPresentationSupportKHR +VkBool32 PhysicalDevice::getXcbPresentationSupportKHR(uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id) { + return vk.vkGetPhysicalDeviceXcbPresentationSupportKHR(_handle, queueFamilyIndex, connection, visual_id); +} +#endif + +#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) +// Original: vkGetPhysicalDeviceDirectFBPresentationSupportEXT +VkBool32 PhysicalDevice::getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex, IDirectFB* dfb) { + return vk.vkGetPhysicalDeviceDirectFBPresentationSupportEXT(_handle, queueFamilyIndex, dfb); +} +#endif + +#if defined(VK_USE_PLATFORM_SCREEN_QNX) +// Original: vkGetPhysicalDeviceScreenPresentationSupportQNX +VkBool32 PhysicalDevice::getScreenPresentationSupportQNX(uint32_t queueFamilyIndex, _screen_window* window) { + return vk.vkGetPhysicalDeviceScreenPresentationSupportQNX(_handle, queueFamilyIndex, window); +} +#endif + +// Original: vkGetPhysicalDeviceExternalImageFormatPropertiesNV +VkResult PhysicalDevice::getExternalImageFormatPropertiesNV(VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) { + return vk.vkGetPhysicalDeviceExternalImageFormatPropertiesNV(_handle, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties); +} + +// Original: vkGetPhysicalDeviceFeatures2 +void PhysicalDevice::getFeatures2(VkPhysicalDeviceFeatures2* pFeatures) { + vk.vkGetPhysicalDeviceFeatures2(_handle, pFeatures); +} + +// Original: vkGetPhysicalDeviceFeatures2KHR +void PhysicalDevice::getFeatures2KHR(VkPhysicalDeviceFeatures2* pFeatures) { + vk.vkGetPhysicalDeviceFeatures2KHR(_handle, pFeatures); +} + +// Original: vkGetPhysicalDeviceProperties2 +void PhysicalDevice::getProperties2(VkPhysicalDeviceProperties2* pProperties) { + vk.vkGetPhysicalDeviceProperties2(_handle, pProperties); +} + +// Original: vkGetPhysicalDeviceProperties2KHR +void PhysicalDevice::getProperties2KHR(VkPhysicalDeviceProperties2* pProperties) { + vk.vkGetPhysicalDeviceProperties2KHR(_handle, pProperties); +} + +// Original: vkGetPhysicalDeviceFormatProperties2 +void PhysicalDevice::getFormatProperties2(VkFormat format, VkFormatProperties2* pFormatProperties) { + vk.vkGetPhysicalDeviceFormatProperties2(_handle, format, pFormatProperties); +} + +// Original: vkGetPhysicalDeviceFormatProperties2KHR +void PhysicalDevice::getFormatProperties2KHR(VkFormat format, VkFormatProperties2* pFormatProperties) { + vk.vkGetPhysicalDeviceFormatProperties2KHR(_handle, format, pFormatProperties); +} + +// Original: vkGetPhysicalDeviceImageFormatProperties2 +VkResult PhysicalDevice::getImageFormatProperties2(const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) { + return vk.vkGetPhysicalDeviceImageFormatProperties2(_handle, pImageFormatInfo, pImageFormatProperties); +} + +// Original: vkGetPhysicalDeviceImageFormatProperties2KHR +VkResult PhysicalDevice::getImageFormatProperties2KHR(const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) { + return vk.vkGetPhysicalDeviceImageFormatProperties2KHR(_handle, pImageFormatInfo, pImageFormatProperties); +} + +// Original: vkGetPhysicalDeviceQueueFamilyProperties2 +void PhysicalDevice::getQueueFamilyProperties2(uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) { + vk.vkGetPhysicalDeviceQueueFamilyProperties2(_handle, pQueueFamilyPropertyCount, pQueueFamilyProperties); +} + +// Original: vkGetPhysicalDeviceQueueFamilyProperties2KHR +void PhysicalDevice::getQueueFamilyProperties2KHR(uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) { + vk.vkGetPhysicalDeviceQueueFamilyProperties2KHR(_handle, pQueueFamilyPropertyCount, pQueueFamilyProperties); +} + +// Original: vkGetPhysicalDeviceMemoryProperties2 +void PhysicalDevice::getMemoryProperties2(VkPhysicalDeviceMemoryProperties2* pMemoryProperties) { + vk.vkGetPhysicalDeviceMemoryProperties2(_handle, pMemoryProperties); +} + +// Original: vkGetPhysicalDeviceMemoryProperties2KHR +void PhysicalDevice::getMemoryProperties2KHR(VkPhysicalDeviceMemoryProperties2* pMemoryProperties) { + vk.vkGetPhysicalDeviceMemoryProperties2KHR(_handle, pMemoryProperties); +} + +// Original: vkGetPhysicalDeviceSparseImageFormatProperties2 +void PhysicalDevice::getSparseImageFormatProperties2(const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) { + vk.vkGetPhysicalDeviceSparseImageFormatProperties2(_handle, pFormatInfo, pPropertyCount, pProperties); +} + +// Original: vkGetPhysicalDeviceSparseImageFormatProperties2KHR +void PhysicalDevice::getSparseImageFormatProperties2KHR(const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) { + vk.vkGetPhysicalDeviceSparseImageFormatProperties2KHR(_handle, pFormatInfo, pPropertyCount, pProperties); +} + +// Original: vkGetPhysicalDeviceExternalBufferProperties +void PhysicalDevice::getExternalBufferProperties(const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) { + vk.vkGetPhysicalDeviceExternalBufferProperties(_handle, pExternalBufferInfo, pExternalBufferProperties); +} + +// Original: vkGetPhysicalDeviceExternalBufferPropertiesKHR +void PhysicalDevice::getExternalBufferPropertiesKHR(const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) { + vk.vkGetPhysicalDeviceExternalBufferPropertiesKHR(_handle, pExternalBufferInfo, pExternalBufferProperties); +} + +// Original: vkGetPhysicalDeviceExternalSemaphoreProperties +void PhysicalDevice::getExternalSemaphoreProperties(const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) { + vk.vkGetPhysicalDeviceExternalSemaphoreProperties(_handle, pExternalSemaphoreInfo, pExternalSemaphoreProperties); +} + +// Original: vkGetPhysicalDeviceExternalSemaphorePropertiesKHR +void PhysicalDevice::getExternalSemaphorePropertiesKHR(const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) { + vk.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(_handle, pExternalSemaphoreInfo, pExternalSemaphoreProperties); +} + +// Original: vkGetPhysicalDeviceExternalFenceProperties +void PhysicalDevice::getExternalFenceProperties(const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) { + vk.vkGetPhysicalDeviceExternalFenceProperties(_handle, pExternalFenceInfo, pExternalFenceProperties); +} + +// Original: vkGetPhysicalDeviceExternalFencePropertiesKHR +void PhysicalDevice::getExternalFencePropertiesKHR(const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) { + vk.vkGetPhysicalDeviceExternalFencePropertiesKHR(_handle, pExternalFenceInfo, pExternalFenceProperties); +} + +// Original: vkReleaseDisplayEXT +VkResult PhysicalDevice::releaseDisplayEXT(IntrusivePtr display) { + return vk.vkReleaseDisplayEXT(_handle, display->getHandle()); +} + +#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) +// Original: vkAcquireXlibDisplayEXT +VkResult PhysicalDevice::acquireXlibDisplayEXT(Display* dpy, IntrusivePtr display) { + return vk.vkAcquireXlibDisplayEXT(_handle, dpy, display->getHandle()); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkAcquireWinrtDisplayNV +VkResult PhysicalDevice::acquireWinrtDisplayNV(IntrusivePtr display) { + return vk.vkAcquireWinrtDisplayNV(_handle, display->getHandle()); +} +#endif + +// Original: vkGetPhysicalDeviceSurfaceCapabilities2EXT +VkResult PhysicalDevice::getSurfaceCapabilities2EXT(IntrusivePtr surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) { + return vk.vkGetPhysicalDeviceSurfaceCapabilities2EXT(_handle, surface->getHandle(), pSurfaceCapabilities); +} + +// Original: vkGetPhysicalDevicePresentRectanglesKHR +VkResult PhysicalDevice::getPresentRectanglesKHR(IntrusivePtr surface, uint32_t* pRectCount, VkRect2D* pRects) { + return vk.vkGetPhysicalDevicePresentRectanglesKHR(_handle, surface->getHandle(), pRectCount, pRects); +} + +// Original: vkGetPhysicalDeviceMultisamplePropertiesEXT +void PhysicalDevice::getMultisamplePropertiesEXT(VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) { + vk.vkGetPhysicalDeviceMultisamplePropertiesEXT(_handle, samples, pMultisampleProperties); +} + +// Original: vkGetPhysicalDeviceSurfaceCapabilities2KHR +VkResult PhysicalDevice::getSurfaceCapabilities2KHR(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) { + return vk.vkGetPhysicalDeviceSurfaceCapabilities2KHR(_handle, pSurfaceInfo, pSurfaceCapabilities); +} + +// Original: vkGetPhysicalDeviceSurfaceFormats2KHR +VkResult PhysicalDevice::getSurfaceFormats2KHR(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) { + return vk.vkGetPhysicalDeviceSurfaceFormats2KHR(_handle, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats); +} + +// Original: vkGetPhysicalDeviceDisplayProperties2KHR +VkResult PhysicalDevice::getDisplayProperties2KHR(uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties) { + return vk.vkGetPhysicalDeviceDisplayProperties2KHR(_handle, pPropertyCount, pProperties); +} + +// Original: vkGetPhysicalDeviceDisplayPlaneProperties2KHR +VkResult PhysicalDevice::getDisplayPlaneProperties2KHR(uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) { + return vk.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(_handle, pPropertyCount, pProperties); +} + +// Original: vkGetDisplayModeProperties2KHR +VkResult PhysicalDevice::getDisplayModeProperties2KHR(IntrusivePtr display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) { + return vk.vkGetDisplayModeProperties2KHR(_handle, display->getHandle(), pPropertyCount, pProperties); +} + +// Original: vkGetDisplayPlaneCapabilities2KHR +VkResult PhysicalDevice::getDisplayPlaneCapabilities2KHR(const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) { + return vk.vkGetDisplayPlaneCapabilities2KHR(_handle, pDisplayPlaneInfo, pCapabilities); +} + +// Original: vkGetPhysicalDeviceCalibrateableTimeDomainsKHR +VkResult PhysicalDevice::getCalibrateableTimeDomainsKHR(uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains) { + return vk.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(_handle, pTimeDomainCount, pTimeDomains); +} + +// Original: vkGetPhysicalDeviceCalibrateableTimeDomainsEXT +VkResult PhysicalDevice::getCalibrateableTimeDomainsEXT(uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains) { + return vk.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(_handle, pTimeDomainCount, pTimeDomains); +} + +// Original: vkGetPhysicalDeviceCooperativeMatrixPropertiesNV +VkResult PhysicalDevice::getCooperativeMatrixPropertiesNV(uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) { + return vk.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(_handle, pPropertyCount, pProperties); +} + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkGetPhysicalDeviceSurfacePresentModes2EXT +VkResult PhysicalDevice::getSurfacePresentModes2EXT(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) { + return vk.vkGetPhysicalDeviceSurfacePresentModes2EXT(_handle, pSurfaceInfo, pPresentModeCount, pPresentModes); +} +#endif + +// Original: vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR +VkResult PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) { + return vk.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(_handle, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions); +} + +// Original: vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR +void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR(const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses) { + vk.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(_handle, pPerformanceQueryCreateInfo, pNumPasses); +} + +// Original: vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV +VkResult PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations) { + return vk.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(_handle, pCombinationCount, pCombinations); +} + +// Original: vkGetPhysicalDeviceToolProperties +VkResult PhysicalDevice::getToolProperties(uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) { + return vk.vkGetPhysicalDeviceToolProperties(_handle, pToolCount, pToolProperties); +} + +// Original: vkGetPhysicalDeviceToolPropertiesEXT +VkResult PhysicalDevice::getToolPropertiesEXT(uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) { + return vk.vkGetPhysicalDeviceToolPropertiesEXT(_handle, pToolCount, pToolProperties); +} + +// Original: vkGetPhysicalDeviceFragmentShadingRatesKHR +VkResult PhysicalDevice::getFragmentShadingRatesKHR(uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) { + return vk.vkGetPhysicalDeviceFragmentShadingRatesKHR(_handle, pFragmentShadingRateCount, pFragmentShadingRates); +} + +// Original: vkGetPhysicalDeviceVideoCapabilitiesKHR +VkResult PhysicalDevice::getVideoCapabilitiesKHR(const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities) { + return vk.vkGetPhysicalDeviceVideoCapabilitiesKHR(_handle, pVideoProfile, pCapabilities); +} + +// Original: vkGetPhysicalDeviceVideoFormatPropertiesKHR +VkResult PhysicalDevice::getVideoFormatPropertiesKHR(const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties) { + return vk.vkGetPhysicalDeviceVideoFormatPropertiesKHR(_handle, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties); +} + +// Original: vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR +VkResult PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR(const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties) { + return vk.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(_handle, pQualityLevelInfo, pQualityLevelProperties); +} + +// Original: vkAcquireDrmDisplayEXT +VkResult PhysicalDevice::acquireDrmDisplayEXT(int32_t drmFd, IntrusivePtr display) { + return vk.vkAcquireDrmDisplayEXT(_handle, drmFd, display->getHandle()); +} + +// Original: vkGetPhysicalDeviceOpticalFlowImageFormatsNV +VkResult PhysicalDevice::getOpticalFlowImageFormatsNV(const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties) { + return vk.vkGetPhysicalDeviceOpticalFlowImageFormatsNV(_handle, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties); +} + +// Original: vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR +VkResult PhysicalDevice::getCooperativeMatrixPropertiesKHR(uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties) { + return vk.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(_handle, pPropertyCount, pProperties); +} + +// Original: vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV +VkResult PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV(uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) { + return vk.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(_handle, pPropertyCount, pProperties); +} + +// Original: vkGetPhysicalDeviceCooperativeVectorPropertiesNV +VkResult PhysicalDevice::getCooperativeVectorPropertiesNV(uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties) { + return vk.vkGetPhysicalDeviceCooperativeVectorPropertiesNV(_handle, pPropertyCount, pProperties); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/PhysicalDevice.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PhysicalDevice.hpp new file mode 100644 index 0000000..09db775 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PhysicalDevice.hpp @@ -0,0 +1,451 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class DisplayKHR; +class DisplayModeKHR; +class Instance; +class SurfaceKHR; + + + +// === Lifetime summary (deterministic) === +// Handle: VkPhysicalDevice +// Holds (destroy/free owners + creation parent, or producer parent): Instance +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class PhysicalDevice : public RefCounted { +public: + VkPhysicalDevice getHandle() const noexcept { return _handle; } + IntrusivePtr getInstance() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkPhysicalDevice handle) { + return IntrusivePtr(new PhysicalDevice(owner0, handle, false)); + } +private: + explicit PhysicalDevice(IntrusivePtr owner0, VkPhysicalDevice handle, bool owned); + ~PhysicalDevice() override; +private: + VkPhysicalDevice _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkGetDisplayPlaneSupportedDisplaysKHR + std::vector> getDisplayKHRs(uint32_t planeIndex); + + +#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) +public: +// Original: vkGetRandROutputDisplayEXT + IntrusivePtr getDisplayKHR(Display* dpy, RROutput rrOutput); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetWinrtDisplayNV + IntrusivePtr getDisplayKHR(uint32_t deviceRelativeId); +#endif + + +public: +// Original: vkGetDrmDisplayEXT + IntrusivePtr getDisplayKHR(int32_t drmFd, uint32_t connectorId); + + +public: +// Original: vkGetPhysicalDeviceProperties + void getProperties(VkPhysicalDeviceProperties* pProperties); + + +public: +// Original: vkGetPhysicalDeviceQueueFamilyProperties + void getQueueFamilyProperties(uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); + + +public: +// Original: vkGetPhysicalDeviceMemoryProperties + void getMemoryProperties(VkPhysicalDeviceMemoryProperties* pMemoryProperties); + + +public: +// Original: vkGetPhysicalDeviceFeatures + void getFeatures(VkPhysicalDeviceFeatures* pFeatures); + + +public: +// Original: vkGetPhysicalDeviceFormatProperties + void getFormatProperties(VkFormat format, VkFormatProperties* pFormatProperties); + + +public: +// Original: vkGetPhysicalDeviceImageFormatProperties + VkResult getImageFormatProperties(VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); + + +public: +// Original: vkEnumerateDeviceLayerProperties + VkResult enumerateDeviceLayerProperties(uint32_t* pPropertyCount, VkLayerProperties* pProperties); + + +public: +// Original: vkEnumerateDeviceExtensionProperties + VkResult enumerateDeviceExtensionProperties(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); + + +public: +// Original: vkGetPhysicalDeviceSparseImageFormatProperties + void getSparseImageFormatProperties(VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties); + + +public: +// Original: vkGetPhysicalDeviceDisplayPropertiesKHR + VkResult getDisplayPropertiesKHR(uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); + + +public: +// Original: vkGetPhysicalDeviceDisplayPlanePropertiesKHR + VkResult getDisplayPlanePropertiesKHR(uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); + + +public: +// Original: vkGetDisplayModePropertiesKHR + VkResult getDisplayModePropertiesKHR(IntrusivePtr display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); + + +public: +// Original: vkGetDisplayPlaneCapabilitiesKHR + VkResult getDisplayPlaneCapabilitiesKHR(IntrusivePtr mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); + + +public: +// Original: vkGetPhysicalDeviceSurfaceSupportKHR + VkResult getSurfaceSupportKHR(uint32_t queueFamilyIndex, IntrusivePtr surface, VkBool32* pSupported); + + +public: +// Original: vkGetPhysicalDeviceSurfaceCapabilitiesKHR + VkResult getSurfaceCapabilitiesKHR(IntrusivePtr surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); + + +public: +// Original: vkGetPhysicalDeviceSurfaceFormatsKHR + VkResult getSurfaceFormatsKHR(IntrusivePtr surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); + + +public: +// Original: vkGetPhysicalDeviceSurfacePresentModesKHR + VkResult getSurfacePresentModesKHR(IntrusivePtr surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); + + +#if defined(VK_USE_PLATFORM_WAYLAND_KHR) +public: +// Original: vkGetPhysicalDeviceWaylandPresentationSupportKHR + VkBool32 getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex, wl_display* display); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetPhysicalDeviceWin32PresentationSupportKHR + VkBool32 getWin32PresentationSupportKHR(uint32_t queueFamilyIndex); +#endif + + +#if defined(VK_USE_PLATFORM_XLIB_KHR) +public: +// Original: vkGetPhysicalDeviceXlibPresentationSupportKHR + VkBool32 getXlibPresentationSupportKHR(uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); +#endif + + +#if defined(VK_USE_PLATFORM_XCB_KHR) +public: +// Original: vkGetPhysicalDeviceXcbPresentationSupportKHR + VkBool32 getXcbPresentationSupportKHR(uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); +#endif + + +#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) +public: +// Original: vkGetPhysicalDeviceDirectFBPresentationSupportEXT + VkBool32 getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex, IDirectFB* dfb); +#endif + + +#if defined(VK_USE_PLATFORM_SCREEN_QNX) +public: +// Original: vkGetPhysicalDeviceScreenPresentationSupportQNX + VkBool32 getScreenPresentationSupportQNX(uint32_t queueFamilyIndex, _screen_window* window); +#endif + + +public: +// Original: vkGetPhysicalDeviceExternalImageFormatPropertiesNV + VkResult getExternalImageFormatPropertiesNV(VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); + + +public: +// Original: vkGetPhysicalDeviceFeatures2 + void getFeatures2(VkPhysicalDeviceFeatures2* pFeatures); + + +public: +// Original: vkGetPhysicalDeviceFeatures2KHR + void getFeatures2KHR(VkPhysicalDeviceFeatures2* pFeatures); + + +public: +// Original: vkGetPhysicalDeviceProperties2 + void getProperties2(VkPhysicalDeviceProperties2* pProperties); + + +public: +// Original: vkGetPhysicalDeviceProperties2KHR + void getProperties2KHR(VkPhysicalDeviceProperties2* pProperties); + + +public: +// Original: vkGetPhysicalDeviceFormatProperties2 + void getFormatProperties2(VkFormat format, VkFormatProperties2* pFormatProperties); + + +public: +// Original: vkGetPhysicalDeviceFormatProperties2KHR + void getFormatProperties2KHR(VkFormat format, VkFormatProperties2* pFormatProperties); + + +public: +// Original: vkGetPhysicalDeviceImageFormatProperties2 + VkResult getImageFormatProperties2(const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); + + +public: +// Original: vkGetPhysicalDeviceImageFormatProperties2KHR + VkResult getImageFormatProperties2KHR(const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); + + +public: +// Original: vkGetPhysicalDeviceQueueFamilyProperties2 + void getQueueFamilyProperties2(uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); + + +public: +// Original: vkGetPhysicalDeviceQueueFamilyProperties2KHR + void getQueueFamilyProperties2KHR(uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); + + +public: +// Original: vkGetPhysicalDeviceMemoryProperties2 + void getMemoryProperties2(VkPhysicalDeviceMemoryProperties2* pMemoryProperties); + + +public: +// Original: vkGetPhysicalDeviceMemoryProperties2KHR + void getMemoryProperties2KHR(VkPhysicalDeviceMemoryProperties2* pMemoryProperties); + + +public: +// Original: vkGetPhysicalDeviceSparseImageFormatProperties2 + void getSparseImageFormatProperties2(const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); + + +public: +// Original: vkGetPhysicalDeviceSparseImageFormatProperties2KHR + void getSparseImageFormatProperties2KHR(const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); + + +public: +// Original: vkGetPhysicalDeviceExternalBufferProperties + void getExternalBufferProperties(const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); + + +public: +// Original: vkGetPhysicalDeviceExternalBufferPropertiesKHR + void getExternalBufferPropertiesKHR(const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); + + +public: +// Original: vkGetPhysicalDeviceExternalSemaphoreProperties + void getExternalSemaphoreProperties(const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); + + +public: +// Original: vkGetPhysicalDeviceExternalSemaphorePropertiesKHR + void getExternalSemaphorePropertiesKHR(const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); + + +public: +// Original: vkGetPhysicalDeviceExternalFenceProperties + void getExternalFenceProperties(const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); + + +public: +// Original: vkGetPhysicalDeviceExternalFencePropertiesKHR + void getExternalFencePropertiesKHR(const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); + + +public: +// Original: vkReleaseDisplayEXT + VkResult releaseDisplayEXT(IntrusivePtr display); + + +#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) +public: +// Original: vkAcquireXlibDisplayEXT + VkResult acquireXlibDisplayEXT(Display* dpy, IntrusivePtr display); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkAcquireWinrtDisplayNV + VkResult acquireWinrtDisplayNV(IntrusivePtr display); +#endif + + +public: +// Original: vkGetPhysicalDeviceSurfaceCapabilities2EXT + VkResult getSurfaceCapabilities2EXT(IntrusivePtr surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); + + +public: +// Original: vkGetPhysicalDevicePresentRectanglesKHR + VkResult getPresentRectanglesKHR(IntrusivePtr surface, uint32_t* pRectCount, VkRect2D* pRects); + + +public: +// Original: vkGetPhysicalDeviceMultisamplePropertiesEXT + void getMultisamplePropertiesEXT(VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); + + +public: +// Original: vkGetPhysicalDeviceSurfaceCapabilities2KHR + VkResult getSurfaceCapabilities2KHR(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); + + +public: +// Original: vkGetPhysicalDeviceSurfaceFormats2KHR + VkResult getSurfaceFormats2KHR(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); + + +public: +// Original: vkGetPhysicalDeviceDisplayProperties2KHR + VkResult getDisplayProperties2KHR(uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); + + +public: +// Original: vkGetPhysicalDeviceDisplayPlaneProperties2KHR + VkResult getDisplayPlaneProperties2KHR(uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); + + +public: +// Original: vkGetDisplayModeProperties2KHR + VkResult getDisplayModeProperties2KHR(IntrusivePtr display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); + + +public: +// Original: vkGetDisplayPlaneCapabilities2KHR + VkResult getDisplayPlaneCapabilities2KHR(const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities); + + +public: +// Original: vkGetPhysicalDeviceCalibrateableTimeDomainsKHR + VkResult getCalibrateableTimeDomainsKHR(uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains); + + +public: +// Original: vkGetPhysicalDeviceCalibrateableTimeDomainsEXT + VkResult getCalibrateableTimeDomainsEXT(uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains); + + +public: +// Original: vkGetPhysicalDeviceCooperativeMatrixPropertiesNV + VkResult getCooperativeMatrixPropertiesNV(uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties); + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkGetPhysicalDeviceSurfacePresentModes2EXT + VkResult getSurfacePresentModes2EXT(const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); +#endif + + +public: +// Original: vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR + VkResult enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions); + + +public: +// Original: vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR + void getQueueFamilyPerformanceQueryPassesKHR(const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses); + + +public: +// Original: vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV + VkResult getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations); + + +public: +// Original: vkGetPhysicalDeviceToolProperties + VkResult getToolProperties(uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties); + + +public: +// Original: vkGetPhysicalDeviceToolPropertiesEXT + VkResult getToolPropertiesEXT(uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties); + + +public: +// Original: vkGetPhysicalDeviceFragmentShadingRatesKHR + VkResult getFragmentShadingRatesKHR(uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); + + +public: +// Original: vkGetPhysicalDeviceVideoCapabilitiesKHR + VkResult getVideoCapabilitiesKHR(const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities); + + +public: +// Original: vkGetPhysicalDeviceVideoFormatPropertiesKHR + VkResult getVideoFormatPropertiesKHR(const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties); + + +public: +// Original: vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR + VkResult getVideoEncodeQualityLevelPropertiesKHR(const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties); + + +public: +// Original: vkAcquireDrmDisplayEXT + VkResult acquireDrmDisplayEXT(int32_t drmFd, IntrusivePtr display); + + +public: +// Original: vkGetPhysicalDeviceOpticalFlowImageFormatsNV + VkResult getOpticalFlowImageFormatsNV(const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties); + + +public: +// Original: vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR + VkResult getCooperativeMatrixPropertiesKHR(uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties); + + +public: +// Original: vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV + VkResult getCooperativeMatrixFlexibleDimensionsPropertiesNV(uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties); + + +public: +// Original: vkGetPhysicalDeviceCooperativeVectorPropertiesNV + VkResult getCooperativeVectorPropertiesNV(uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties); + +}; +using PPhysicalDevice = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Pipeline.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Pipeline.cpp new file mode 100644 index 0000000..d008951 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Pipeline.cpp @@ -0,0 +1,94 @@ +#include +#include +#include +#include +#include +#include +#include + + +namespace VulkanPP { + + Pipeline::Pipeline(IntrusivePtr owner0, VkPipeline handle, bool owned, const std::vector>& owners_ShaderModule, IntrusivePtr owner_PipelineLayout, IntrusivePtr owner_RenderPass) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _lifetime_owners_ShaderModule(owners_ShaderModule) + , _lifetime_owner_PipelineLayout(std::move(owner_PipelineLayout)) + , _lifetime_owner_RenderPass(std::move(owner_RenderPass)) +{ } + + Pipeline::~Pipeline() { + if (_handle && _owned) { + (void)vk.vkDestroyPipeline(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateGraphicsPipelines +std::vector> Pipeline::createMany(IntrusivePtr parent, IntrusivePtr pipelineCache, const VkGraphicsPipelineCreateInfo* pCreateInfos, const std::vector>& owners_ShaderModule, IntrusivePtr owner_PipelineLayout, IntrusivePtr owner_RenderPass) { + std::vector _out; + _out.resize(createInfoCount); + auto _res = vk.vkCreateGraphicsPipelines(parent->getHandle(), pipelineCache->getHandle(), createInfoCount, pCreateInfos, nullptr, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateGraphicsPipelines failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new Pipeline(parent, h, true, owners_ShaderModule, owner_PipelineLayout, owner_RenderPass)); + } + return _ret; +} + +// Original: vkCreateComputePipelines +std::vector> Pipeline::createMany(IntrusivePtr parent, IntrusivePtr pipelineCache, const VkComputePipelineCreateInfo* pCreateInfos, IntrusivePtr owner_ShaderModule, IntrusivePtr owner_PipelineLayout) { + std::vector _out; + _out.resize(createInfoCount); + auto _res = vk.vkCreateComputePipelines(parent->getHandle(), pipelineCache->getHandle(), createInfoCount, pCreateInfos, nullptr, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateComputePipelines failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new Pipeline(parent, h, true, owner_ShaderModule, owner_PipelineLayout)); + } + return _ret; +} + +// Original: vkCreateRayTracingPipelinesNV +std::vector> Pipeline::createMany(IntrusivePtr parent, IntrusivePtr pipelineCache, const VkRayTracingPipelineCreateInfoNV* pCreateInfos) { + std::vector _out; + _out.resize(createInfoCount); + auto _res = vk.vkCreateRayTracingPipelinesNV(parent->getHandle(), pipelineCache->getHandle(), createInfoCount, pCreateInfos, nullptr, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateRayTracingPipelinesNV failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new Pipeline(parent, h, true)); + } + return _ret; +} + +// Original: vkCreateRayTracingPipelinesKHR +std::vector> Pipeline::createMany(IntrusivePtr parent, IntrusivePtr deferredOperation, IntrusivePtr pipelineCache, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos) { + std::vector _out; + _out.resize(createInfoCount); + auto _res = vk.vkCreateRayTracingPipelinesKHR(parent->getHandle(), deferredOperation->getHandle(), pipelineCache->getHandle(), createInfoCount, pCreateInfos, nullptr, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateRayTracingPipelinesKHR failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new Pipeline(parent, h, true)); + } + return _ret; +} + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +// Original: vkCreateExecutionGraphPipelinesAMDX +std::vector> Pipeline::createMany(IntrusivePtr parent, IntrusivePtr pipelineCache, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos) { + std::vector _out; + _out.resize(createInfoCount); + auto _res = vk.vkCreateExecutionGraphPipelinesAMDX(parent->getHandle(), pipelineCache->getHandle(), createInfoCount, pCreateInfos, nullptr, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateExecutionGraphPipelinesAMDX failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new Pipeline(parent, h, true)); + } + return _ret; +} +#endif + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Pipeline.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Pipeline.hpp new file mode 100644 index 0000000..71e1a1d --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Pipeline.hpp @@ -0,0 +1,74 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class DeferredOperationKHR; +class Device; +class PipelineCache; +class PipelineLayout; +class RenderPass; +class ShaderModule; + + + +// === Lifetime summary (deterministic) === +// Handle: VkPipeline +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): ShaderModule[] via VkPipelineShaderStageCreateInfo::module[]; PipelineLayout via VkGraphicsPipelineCreateInfo::layout; RenderPass via VkGraphicsPipelineCreateInfo::renderPass +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Pipeline : public RefCounted { +public: + VkPipeline getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + const std::vector>& getShaderModules() const noexcept { return _lifetime_owners_ShaderModule; } + IntrusivePtr getPipelineLayout() const noexcept { return _lifetime_owner_PipelineLayout; } + IntrusivePtr getRenderPass() const noexcept { return _lifetime_owner_RenderPass; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkPipeline handle) { + return IntrusivePtr(new Pipeline(owner0, handle, false, std::vector>(), IntrusivePtr(), IntrusivePtr())); + } +private: + explicit Pipeline(IntrusivePtr owner0, VkPipeline handle, bool owned, const std::vector>& owners_ShaderModule, IntrusivePtr owner_PipelineLayout, IntrusivePtr owner_RenderPass); + ~Pipeline() override; +private: + VkPipeline _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + std::vector> _lifetime_owners_ShaderModule; + IntrusivePtr _lifetime_owner_PipelineLayout; + IntrusivePtr _lifetime_owner_RenderPass; + +public: +// Original: vkCreateGraphicsPipelines + static std::vector> createMany(IntrusivePtr parent, IntrusivePtr pipelineCache, const VkGraphicsPipelineCreateInfo* pCreateInfos, const std::vector>& owners_ShaderModule, IntrusivePtr owner_PipelineLayout, IntrusivePtr owner_RenderPass); + + +public: +// Original: vkCreateComputePipelines + static std::vector> createMany(IntrusivePtr parent, IntrusivePtr pipelineCache, const VkComputePipelineCreateInfo* pCreateInfos, IntrusivePtr owner_ShaderModule, IntrusivePtr owner_PipelineLayout); + + +public: +// Original: vkCreateRayTracingPipelinesNV + static std::vector> createMany(IntrusivePtr parent, IntrusivePtr pipelineCache, const VkRayTracingPipelineCreateInfoNV* pCreateInfos); + + +public: +// Original: vkCreateRayTracingPipelinesKHR + static std::vector> createMany(IntrusivePtr parent, IntrusivePtr deferredOperation, IntrusivePtr pipelineCache, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos); + + +#if defined(VK_ENABLE_BETA_EXTENSIONS) +public: +// Original: vkCreateExecutionGraphPipelinesAMDX + static std::vector> createMany(IntrusivePtr parent, IntrusivePtr pipelineCache, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos); +#endif + +}; +using PPipeline = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineCache.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineCache.cpp new file mode 100644 index 0000000..abc079c --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineCache.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + PipelineCache::PipelineCache(IntrusivePtr owner0, VkPipelineCache handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + PipelineCache::~PipelineCache() { + if (_handle && _owned) { + (void)vk.vkDestroyPipelineCache(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreatePipelineCache +PipelineCache::PipelineCache(IntrusivePtr parent, const VkPipelineCacheCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkPipelineCache _out = VK_NULL_HANDLE; + auto _res = vk.vkCreatePipelineCache(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreatePipelineCache failed"); + _handle = _out; +} +// Original: vkCreatePipelineCache (factory) +IntrusivePtr PipelineCache::create(IntrusivePtr parent, const VkPipelineCacheCreateInfo* pCreateInfo) { + return IntrusivePtr(new PipelineCache(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineCache.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineCache.hpp new file mode 100644 index 0000000..4436eff --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineCache.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkPipelineCache +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class PipelineCache : public RefCounted { +public: + VkPipelineCache getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkPipelineCache handle) { + return IntrusivePtr(new PipelineCache(owner0, handle, false)); + } +private: + explicit PipelineCache(IntrusivePtr owner0, VkPipelineCache handle, bool owned); + ~PipelineCache() override; +private: + VkPipelineCache _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreatePipelineCache + explicit PipelineCache(IntrusivePtr parent, const VkPipelineCacheCreateInfo* pCreateInfo); +// Original: vkCreatePipelineCache (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkPipelineCacheCreateInfo* pCreateInfo); + +}; +using PPipelineCache = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineLayout.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineLayout.cpp new file mode 100644 index 0000000..a5e48ae --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineLayout.cpp @@ -0,0 +1,36 @@ +#include +#include +#include + + +namespace VulkanPP { + + PipelineLayout::PipelineLayout(IntrusivePtr owner0, VkPipelineLayout handle, bool owned, const std::vector>& owners_DescriptorSetLayout) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) + , _lifetime_owners_DescriptorSetLayout(owners_DescriptorSetLayout) +{ } + + PipelineLayout::~PipelineLayout() { + if (_handle && _owned) { + (void)vk.vkDestroyPipelineLayout(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreatePipelineLayout +PipelineLayout::PipelineLayout(IntrusivePtr parent, const VkPipelineLayoutCreateInfo* pCreateInfo, const std::vector>& owners_DescriptorSetLayout) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) + , _lifetime_owners_DescriptorSetLayout(owners_DescriptorSetLayout) +{ + VkPipelineLayout _out = VK_NULL_HANDLE; + auto _res = vk.vkCreatePipelineLayout(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreatePipelineLayout failed"); + _handle = _out; +} +// Original: vkCreatePipelineLayout (factory) +IntrusivePtr PipelineLayout::create(IntrusivePtr parent, const VkPipelineLayoutCreateInfo* pCreateInfo, const std::vector>& owners_DescriptorSetLayout) { + return IntrusivePtr(new PipelineLayout(parent, pCreateInfo, owners_DescriptorSetLayout)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineLayout.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineLayout.hpp new file mode 100644 index 0000000..44866d0 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PipelineLayout.hpp @@ -0,0 +1,46 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class DescriptorSetLayout; +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkPipelineLayout +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): DescriptorSetLayout[] via VkPipelineLayoutCreateInfo::pSetLayouts[] +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class PipelineLayout : public RefCounted { +public: + VkPipelineLayout getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } + const std::vector>& getDescriptorSetLayouts() const noexcept { return _lifetime_owners_DescriptorSetLayout; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkPipelineLayout handle) { + return IntrusivePtr(new PipelineLayout(owner0, handle, false, std::vector>())); + } +private: + explicit PipelineLayout(IntrusivePtr owner0, VkPipelineLayout handle, bool owned, const std::vector>& owners_DescriptorSetLayout); + ~PipelineLayout() override; +private: + VkPipelineLayout _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + std::vector> _lifetime_owners_DescriptorSetLayout; + +public: +// Original: vkCreatePipelineLayout + explicit PipelineLayout(IntrusivePtr parent, const VkPipelineLayoutCreateInfo* pCreateInfo, const std::vector>& owners_DescriptorSetLayout); +// Original: vkCreatePipelineLayout (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkPipelineLayoutCreateInfo* pCreateInfo, const std::vector>& owners_DescriptorSetLayout); + +}; +using PPipelineLayout = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/PrivateDataSlot.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PrivateDataSlot.cpp new file mode 100644 index 0000000..404efc3 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PrivateDataSlot.cpp @@ -0,0 +1,47 @@ +#include +#include + + +namespace VulkanPP { + + PrivateDataSlot::PrivateDataSlot(IntrusivePtr owner0, VkPrivateDataSlot handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + PrivateDataSlot::~PrivateDataSlot() { + if (_handle && _owned) { + (void)vk.vkDestroyPrivateDataSlot(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreatePrivateDataSlot +PrivateDataSlot::PrivateDataSlot(IntrusivePtr parent, const VkPrivateDataSlotCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkPrivateDataSlot _out = VK_NULL_HANDLE; + auto _res = vk.vkCreatePrivateDataSlot(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreatePrivateDataSlot failed"); + _handle = _out; +} +// Original: vkCreatePrivateDataSlot (factory) +IntrusivePtr PrivateDataSlot::create(IntrusivePtr parent, const VkPrivateDataSlotCreateInfo* pCreateInfo) { + return IntrusivePtr(new PrivateDataSlot(parent, pCreateInfo)); +} + +// Original: vkCreatePrivateDataSlotEXT +PrivateDataSlot::PrivateDataSlot(IntrusivePtr parent, const VkPrivateDataSlotCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkPrivateDataSlot _out = VK_NULL_HANDLE; + auto _res = vk.vkCreatePrivateDataSlotEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreatePrivateDataSlotEXT failed"); + _handle = _out; +} +// Original: vkCreatePrivateDataSlotEXT (factory) +IntrusivePtr PrivateDataSlot::create(IntrusivePtr parent, const VkPrivateDataSlotCreateInfo* pCreateInfo) { + return IntrusivePtr(new PrivateDataSlot(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/PrivateDataSlot.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PrivateDataSlot.hpp new file mode 100644 index 0000000..d3b8633 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/PrivateDataSlot.hpp @@ -0,0 +1,50 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkPrivateDataSlot +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class PrivateDataSlot : public RefCounted { +public: + VkPrivateDataSlot getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkPrivateDataSlot handle) { + return IntrusivePtr(new PrivateDataSlot(owner0, handle, false)); + } +private: + explicit PrivateDataSlot(IntrusivePtr owner0, VkPrivateDataSlot handle, bool owned); + ~PrivateDataSlot() override; +private: + VkPrivateDataSlot _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreatePrivateDataSlot + explicit PrivateDataSlot(IntrusivePtr parent, const VkPrivateDataSlotCreateInfo* pCreateInfo); +// Original: vkCreatePrivateDataSlot (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkPrivateDataSlotCreateInfo* pCreateInfo); + + +public: +// Original: vkCreatePrivateDataSlotEXT + explicit PrivateDataSlot(IntrusivePtr parent, const VkPrivateDataSlotCreateInfo* pCreateInfo); +// Original: vkCreatePrivateDataSlotEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkPrivateDataSlotCreateInfo* pCreateInfo); + +}; +using PPrivateDataSlot = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/QueryPool.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/QueryPool.cpp new file mode 100644 index 0000000..25e2d59 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/QueryPool.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + QueryPool::QueryPool(IntrusivePtr owner0, VkQueryPool handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + QueryPool::~QueryPool() { + if (_handle && _owned) { + (void)vk.vkDestroyQueryPool(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateQueryPool +QueryPool::QueryPool(IntrusivePtr parent, const VkQueryPoolCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkQueryPool _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateQueryPool(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateQueryPool failed"); + _handle = _out; +} +// Original: vkCreateQueryPool (factory) +IntrusivePtr QueryPool::create(IntrusivePtr parent, const VkQueryPoolCreateInfo* pCreateInfo) { + return IntrusivePtr(new QueryPool(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/QueryPool.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/QueryPool.hpp new file mode 100644 index 0000000..4825b0c --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/QueryPool.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkQueryPool +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class QueryPool : public RefCounted { +public: + VkQueryPool getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkQueryPool handle) { + return IntrusivePtr(new QueryPool(owner0, handle, false)); + } +private: + explicit QueryPool(IntrusivePtr owner0, VkQueryPool handle, bool owned); + ~QueryPool() override; +private: + VkQueryPool _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateQueryPool + explicit QueryPool(IntrusivePtr parent, const VkQueryPoolCreateInfo* pCreateInfo); +// Original: vkCreateQueryPool (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkQueryPoolCreateInfo* pCreateInfo); + +}; +using PQueryPool = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Queue.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Queue.cpp new file mode 100644 index 0000000..391c4cc --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Queue.cpp @@ -0,0 +1,84 @@ +#include +#include +#include +#include + + +namespace VulkanPP { + + Queue::Queue(IntrusivePtr owner0, VkQueue handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + Queue::~Queue() { + if (_handle && _owned) { + } +} + +// Original: vkQueueSubmit +VkResult Queue::submit(uint32_t submitCount, const VkSubmitInfo* pSubmits, IntrusivePtr fence) { + return vk.vkQueueSubmit(_handle, submitCount, pSubmits, fence->getHandle()); +} + +// Original: vkQueueWaitIdle +VkResult Queue::waitIdle() { + return vk.vkQueueWaitIdle(_handle); +} + +// Original: vkQueueBindSparse +VkResult Queue::bindSparse(uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, IntrusivePtr fence) { + return vk.vkQueueBindSparse(_handle, bindInfoCount, pBindInfo, fence->getHandle()); +} + +// Original: vkQueuePresentKHR +VkResult Queue::presentKHR(const VkPresentInfoKHR* pPresentInfo) { + return vk.vkQueuePresentKHR(_handle, pPresentInfo); +} + +// Original: vkQueueBeginDebugUtilsLabelEXT +void Queue::beginDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* pLabelInfo) { + vk.vkQueueBeginDebugUtilsLabelEXT(_handle, pLabelInfo); +} + +// Original: vkQueueEndDebugUtilsLabelEXT +void Queue::endDebugUtilsLabelEXT() { + vk.vkQueueEndDebugUtilsLabelEXT(_handle); +} + +// Original: vkQueueInsertDebugUtilsLabelEXT +void Queue::insertDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* pLabelInfo) { + vk.vkQueueInsertDebugUtilsLabelEXT(_handle, pLabelInfo); +} + +// Original: vkGetQueueCheckpointDataNV +void Queue::getCheckpointDataNV(uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) { + vk.vkGetQueueCheckpointDataNV(_handle, pCheckpointDataCount, pCheckpointData); +} + +// Original: vkQueueSetPerformanceConfigurationINTEL +VkResult Queue::setPerformanceConfigurationINTEL(IntrusivePtr configuration) { + return vk.vkQueueSetPerformanceConfigurationINTEL(_handle, configuration->getHandle()); +} + +// Original: vkQueueSubmit2 +VkResult Queue::submit2(uint32_t submitCount, const VkSubmitInfo2* pSubmits, IntrusivePtr fence) { + return vk.vkQueueSubmit2(_handle, submitCount, pSubmits, fence->getHandle()); +} + +// Original: vkQueueSubmit2KHR +VkResult Queue::submit2KHR(uint32_t submitCount, const VkSubmitInfo2* pSubmits, IntrusivePtr fence) { + return vk.vkQueueSubmit2KHR(_handle, submitCount, pSubmits, fence->getHandle()); +} + +// Original: vkGetQueueCheckpointData2NV +void Queue::getCheckpointData2NV(uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) { + vk.vkGetQueueCheckpointData2NV(_handle, pCheckpointDataCount, pCheckpointData); +} + +// Original: vkQueueNotifyOutOfBandNV +void Queue::notifyOutOfBandNV(const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo) { + vk.vkQueueNotifyOutOfBandNV(_handle, pQueueTypeInfo); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Queue.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Queue.hpp new file mode 100644 index 0000000..8cd7c19 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Queue.hpp @@ -0,0 +1,103 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; +class Fence; +class PerformanceConfigurationINTEL; + + + +// === Lifetime summary (deterministic) === +// Handle: VkQueue +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Queue : public RefCounted { +public: + VkQueue getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkQueue handle) { + return IntrusivePtr(new Queue(owner0, handle, false)); + } +private: + explicit Queue(IntrusivePtr owner0, VkQueue handle, bool owned); + ~Queue() override; +private: + VkQueue _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkQueueSubmit + VkResult submit(uint32_t submitCount, const VkSubmitInfo* pSubmits, IntrusivePtr fence); + + +public: +// Original: vkQueueWaitIdle + VkResult waitIdle(); + + +public: +// Original: vkQueueBindSparse + VkResult bindSparse(uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, IntrusivePtr fence); + + +public: +// Original: vkQueuePresentKHR + VkResult presentKHR(const VkPresentInfoKHR* pPresentInfo); + + +public: +// Original: vkQueueBeginDebugUtilsLabelEXT + void beginDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* pLabelInfo); + + +public: +// Original: vkQueueEndDebugUtilsLabelEXT + void endDebugUtilsLabelEXT(); + + +public: +// Original: vkQueueInsertDebugUtilsLabelEXT + void insertDebugUtilsLabelEXT(const VkDebugUtilsLabelEXT* pLabelInfo); + + +public: +// Original: vkGetQueueCheckpointDataNV + void getCheckpointDataNV(uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); + + +public: +// Original: vkQueueSetPerformanceConfigurationINTEL + VkResult setPerformanceConfigurationINTEL(IntrusivePtr configuration); + + +public: +// Original: vkQueueSubmit2 + VkResult submit2(uint32_t submitCount, const VkSubmitInfo2* pSubmits, IntrusivePtr fence); + + +public: +// Original: vkQueueSubmit2KHR + VkResult submit2KHR(uint32_t submitCount, const VkSubmitInfo2* pSubmits, IntrusivePtr fence); + + +public: +// Original: vkGetQueueCheckpointData2NV + void getCheckpointData2NV(uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); + + +public: +// Original: vkQueueNotifyOutOfBandNV + void notifyOutOfBandNV(const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo); + +}; +using PQueue = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/RenderPass.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/RenderPass.cpp new file mode 100644 index 0000000..cff5a6c --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/RenderPass.cpp @@ -0,0 +1,61 @@ +#include +#include + + +namespace VulkanPP { + + RenderPass::RenderPass(IntrusivePtr owner0, VkRenderPass handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + RenderPass::~RenderPass() { + if (_handle && _owned) { + (void)vk.vkDestroyRenderPass(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateRenderPass +RenderPass::RenderPass(IntrusivePtr parent, const VkRenderPassCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkRenderPass _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateRenderPass(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateRenderPass failed"); + _handle = _out; +} +// Original: vkCreateRenderPass (factory) +IntrusivePtr RenderPass::create(IntrusivePtr parent, const VkRenderPassCreateInfo* pCreateInfo) { + return IntrusivePtr(new RenderPass(parent, pCreateInfo)); +} + +// Original: vkCreateRenderPass2 +RenderPass::RenderPass(IntrusivePtr parent, const VkRenderPassCreateInfo2* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkRenderPass _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateRenderPass2(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateRenderPass2 failed"); + _handle = _out; +} +// Original: vkCreateRenderPass2 (factory) +IntrusivePtr RenderPass::create(IntrusivePtr parent, const VkRenderPassCreateInfo2* pCreateInfo) { + return IntrusivePtr(new RenderPass(parent, pCreateInfo)); +} + +// Original: vkCreateRenderPass2KHR +RenderPass::RenderPass(IntrusivePtr parent, const VkRenderPassCreateInfo2* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkRenderPass _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateRenderPass2KHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateRenderPass2KHR failed"); + _handle = _out; +} +// Original: vkCreateRenderPass2KHR (factory) +IntrusivePtr RenderPass::create(IntrusivePtr parent, const VkRenderPassCreateInfo2* pCreateInfo) { + return IntrusivePtr(new RenderPass(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/RenderPass.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/RenderPass.hpp new file mode 100644 index 0000000..30693c3 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/RenderPass.hpp @@ -0,0 +1,57 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkRenderPass +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class RenderPass : public RefCounted { +public: + VkRenderPass getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkRenderPass handle) { + return IntrusivePtr(new RenderPass(owner0, handle, false)); + } +private: + explicit RenderPass(IntrusivePtr owner0, VkRenderPass handle, bool owned); + ~RenderPass() override; +private: + VkRenderPass _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateRenderPass + explicit RenderPass(IntrusivePtr parent, const VkRenderPassCreateInfo* pCreateInfo); +// Original: vkCreateRenderPass (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkRenderPassCreateInfo* pCreateInfo); + + +public: +// Original: vkCreateRenderPass2 + explicit RenderPass(IntrusivePtr parent, const VkRenderPassCreateInfo2* pCreateInfo); +// Original: vkCreateRenderPass2 (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkRenderPassCreateInfo2* pCreateInfo); + + +public: +// Original: vkCreateRenderPass2KHR + explicit RenderPass(IntrusivePtr parent, const VkRenderPassCreateInfo2* pCreateInfo); +// Original: vkCreateRenderPass2KHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkRenderPassCreateInfo2* pCreateInfo); + +}; +using PRenderPass = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Sampler.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Sampler.cpp new file mode 100644 index 0000000..0eb97e7 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Sampler.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + Sampler::Sampler(IntrusivePtr owner0, VkSampler handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + Sampler::~Sampler() { + if (_handle && _owned) { + (void)vk.vkDestroySampler(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateSampler +Sampler::Sampler(IntrusivePtr parent, const VkSamplerCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSampler _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateSampler(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateSampler failed"); + _handle = _out; +} +// Original: vkCreateSampler (factory) +IntrusivePtr Sampler::create(IntrusivePtr parent, const VkSamplerCreateInfo* pCreateInfo) { + return IntrusivePtr(new Sampler(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Sampler.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Sampler.hpp new file mode 100644 index 0000000..33a90fa --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Sampler.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkSampler +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Sampler : public RefCounted { +public: + VkSampler getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkSampler handle) { + return IntrusivePtr(new Sampler(owner0, handle, false)); + } +private: + explicit Sampler(IntrusivePtr owner0, VkSampler handle, bool owned); + ~Sampler() override; +private: + VkSampler _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateSampler + explicit Sampler(IntrusivePtr parent, const VkSamplerCreateInfo* pCreateInfo); +// Original: vkCreateSampler (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkSamplerCreateInfo* pCreateInfo); + +}; +using PSampler = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/SamplerYcbcrConversion.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SamplerYcbcrConversion.cpp new file mode 100644 index 0000000..a8522e4 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SamplerYcbcrConversion.cpp @@ -0,0 +1,47 @@ +#include +#include + + +namespace VulkanPP { + + SamplerYcbcrConversion::SamplerYcbcrConversion(IntrusivePtr owner0, VkSamplerYcbcrConversion handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + SamplerYcbcrConversion::~SamplerYcbcrConversion() { + if (_handle && _owned) { + (void)vk.vkDestroySamplerYcbcrConversion(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateSamplerYcbcrConversion +SamplerYcbcrConversion::SamplerYcbcrConversion(IntrusivePtr parent, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSamplerYcbcrConversion _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateSamplerYcbcrConversion(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateSamplerYcbcrConversion failed"); + _handle = _out; +} +// Original: vkCreateSamplerYcbcrConversion (factory) +IntrusivePtr SamplerYcbcrConversion::create(IntrusivePtr parent, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo) { + return IntrusivePtr(new SamplerYcbcrConversion(parent, pCreateInfo)); +} + +// Original: vkCreateSamplerYcbcrConversionKHR +SamplerYcbcrConversion::SamplerYcbcrConversion(IntrusivePtr parent, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSamplerYcbcrConversion _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateSamplerYcbcrConversionKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateSamplerYcbcrConversionKHR failed"); + _handle = _out; +} +// Original: vkCreateSamplerYcbcrConversionKHR (factory) +IntrusivePtr SamplerYcbcrConversion::create(IntrusivePtr parent, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo) { + return IntrusivePtr(new SamplerYcbcrConversion(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/SamplerYcbcrConversion.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SamplerYcbcrConversion.hpp new file mode 100644 index 0000000..0761c7a --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SamplerYcbcrConversion.hpp @@ -0,0 +1,50 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkSamplerYcbcrConversion +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class SamplerYcbcrConversion : public RefCounted { +public: + VkSamplerYcbcrConversion getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkSamplerYcbcrConversion handle) { + return IntrusivePtr(new SamplerYcbcrConversion(owner0, handle, false)); + } +private: + explicit SamplerYcbcrConversion(IntrusivePtr owner0, VkSamplerYcbcrConversion handle, bool owned); + ~SamplerYcbcrConversion() override; +private: + VkSamplerYcbcrConversion _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateSamplerYcbcrConversion + explicit SamplerYcbcrConversion(IntrusivePtr parent, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo); +// Original: vkCreateSamplerYcbcrConversion (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo); + + +public: +// Original: vkCreateSamplerYcbcrConversionKHR + explicit SamplerYcbcrConversion(IntrusivePtr parent, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo); +// Original: vkCreateSamplerYcbcrConversionKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo); + +}; +using PSamplerYcbcrConversion = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Semaphore.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Semaphore.cpp new file mode 100644 index 0000000..0782f10 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Semaphore.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + Semaphore::Semaphore(IntrusivePtr owner0, VkSemaphore handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + Semaphore::~Semaphore() { + if (_handle && _owned) { + (void)vk.vkDestroySemaphore(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateSemaphore +Semaphore::Semaphore(IntrusivePtr parent, const VkSemaphoreCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSemaphore _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateSemaphore(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateSemaphore failed"); + _handle = _out; +} +// Original: vkCreateSemaphore (factory) +IntrusivePtr Semaphore::create(IntrusivePtr parent, const VkSemaphoreCreateInfo* pCreateInfo) { + return IntrusivePtr(new Semaphore(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/Semaphore.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Semaphore.hpp new file mode 100644 index 0000000..a2133d9 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/Semaphore.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkSemaphore +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class Semaphore : public RefCounted { +public: + VkSemaphore getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkSemaphore handle) { + return IntrusivePtr(new Semaphore(owner0, handle, false)); + } +private: + explicit Semaphore(IntrusivePtr owner0, VkSemaphore handle, bool owned); + ~Semaphore() override; +private: + VkSemaphore _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateSemaphore + explicit Semaphore(IntrusivePtr parent, const VkSemaphoreCreateInfo* pCreateInfo); +// Original: vkCreateSemaphore (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkSemaphoreCreateInfo* pCreateInfo); + +}; +using PSemaphore = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderEXT.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderEXT.cpp new file mode 100644 index 0000000..f3c6f69 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderEXT.cpp @@ -0,0 +1,32 @@ +#include +#include + + +namespace VulkanPP { + + ShaderEXT::ShaderEXT(IntrusivePtr owner0, VkShaderEXT handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + ShaderEXT::~ShaderEXT() { + if (_handle && _owned) { + (void)vk.vkDestroyShaderEXT(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateShadersEXT +std::vector> ShaderEXT::createMany(IntrusivePtr parent, const VkShaderCreateInfoEXT* pCreateInfos) { + std::vector _out; + _out.resize(createInfoCount); + auto _res = vk.vkCreateShadersEXT(parent->getHandle(), createInfoCount, pCreateInfos, nullptr, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateShadersEXT failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new ShaderEXT(parent, h, true)); + } + return _ret; +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderEXT.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderEXT.hpp new file mode 100644 index 0000000..8ce609a --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderEXT.hpp @@ -0,0 +1,41 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkShaderEXT +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class ShaderEXT : public RefCounted { +public: + VkShaderEXT getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkShaderEXT handle) { + return IntrusivePtr(new ShaderEXT(owner0, handle, false)); + } +private: + explicit ShaderEXT(IntrusivePtr owner0, VkShaderEXT handle, bool owned); + ~ShaderEXT() override; +private: + VkShaderEXT _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateShadersEXT + static std::vector> createMany(IntrusivePtr parent, const VkShaderCreateInfoEXT* pCreateInfos); + +}; +using PShaderEXT = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderModule.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderModule.cpp new file mode 100644 index 0000000..c5aec5e --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderModule.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + ShaderModule::ShaderModule(IntrusivePtr owner0, VkShaderModule handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + ShaderModule::~ShaderModule() { + if (_handle && _owned) { + (void)vk.vkDestroyShaderModule(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateShaderModule +ShaderModule::ShaderModule(IntrusivePtr parent, const VkShaderModuleCreateInfo* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkShaderModule _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateShaderModule(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateShaderModule failed"); + _handle = _out; +} +// Original: vkCreateShaderModule (factory) +IntrusivePtr ShaderModule::create(IntrusivePtr parent, const VkShaderModuleCreateInfo* pCreateInfo) { + return IntrusivePtr(new ShaderModule(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderModule.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderModule.hpp new file mode 100644 index 0000000..1e52ee8 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ShaderModule.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkShaderModule +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class ShaderModule : public RefCounted { +public: + VkShaderModule getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkShaderModule handle) { + return IntrusivePtr(new ShaderModule(owner0, handle, false)); + } +private: + explicit ShaderModule(IntrusivePtr owner0, VkShaderModule handle, bool owned); + ~ShaderModule() override; +private: + VkShaderModule _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateShaderModule + explicit ShaderModule(IntrusivePtr parent, const VkShaderModuleCreateInfo* pCreateInfo); +// Original: vkCreateShaderModule (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkShaderModuleCreateInfo* pCreateInfo); + +}; +using PShaderModule = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/SurfaceKHR.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SurfaceKHR.cpp new file mode 100644 index 0000000..07563fa --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SurfaceKHR.cpp @@ -0,0 +1,255 @@ +#include +#include + + +namespace VulkanPP { + + SurfaceKHR::SurfaceKHR(IntrusivePtr owner0, VkSurfaceKHR handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + SurfaceKHR::~SurfaceKHR() { + if (_handle && _owned) { + (void)vk.vkDestroySurfaceKHR(_owner0 ? _owner0->getHandle() : (VkInstance)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +#if defined(VK_USE_PLATFORM_ANDROID_KHR) +// Original: vkCreateAndroidSurfaceKHR +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateAndroidSurfaceKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateAndroidSurfaceKHR failed"); + _handle = _out; +} +// Original: vkCreateAndroidSurfaceKHR (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +// Original: vkCreateDisplayPlaneSurfaceKHR +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDisplayPlaneSurfaceKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDisplayPlaneSurfaceKHR failed"); + _handle = _out; +} +// Original: vkCreateDisplayPlaneSurfaceKHR (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} + +#if defined(VK_USE_PLATFORM_VI_NN) +// Original: vkCreateViSurfaceNN +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkViSurfaceCreateInfoNN* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateViSurfaceNN(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateViSurfaceNN failed"); + _handle = _out; +} +// Original: vkCreateViSurfaceNN (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkViSurfaceCreateInfoNN* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_WAYLAND_KHR) +// Original: vkCreateWaylandSurfaceKHR +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateWaylandSurfaceKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateWaylandSurfaceKHR failed"); + _handle = _out; +} +// Original: vkCreateWaylandSurfaceKHR (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +// Original: vkCreateWin32SurfaceKHR +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkWin32SurfaceCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateWin32SurfaceKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateWin32SurfaceKHR failed"); + _handle = _out; +} +// Original: vkCreateWin32SurfaceKHR (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkWin32SurfaceCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_XLIB_KHR) +// Original: vkCreateXlibSurfaceKHR +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkXlibSurfaceCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateXlibSurfaceKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateXlibSurfaceKHR failed"); + _handle = _out; +} +// Original: vkCreateXlibSurfaceKHR (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkXlibSurfaceCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_XCB_KHR) +// Original: vkCreateXcbSurfaceKHR +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkXcbSurfaceCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateXcbSurfaceKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateXcbSurfaceKHR failed"); + _handle = _out; +} +// Original: vkCreateXcbSurfaceKHR (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkXcbSurfaceCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) +// Original: vkCreateDirectFBSurfaceEXT +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateDirectFBSurfaceEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateDirectFBSurfaceEXT failed"); + _handle = _out; +} +// Original: vkCreateDirectFBSurfaceEXT (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_FUCHSIA) +// Original: vkCreateImagePipeSurfaceFUCHSIA +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateImagePipeSurfaceFUCHSIA(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateImagePipeSurfaceFUCHSIA failed"); + _handle = _out; +} +// Original: vkCreateImagePipeSurfaceFUCHSIA (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_GGP) +// Original: vkCreateStreamDescriptorSurfaceGGP +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateStreamDescriptorSurfaceGGP(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateStreamDescriptorSurfaceGGP failed"); + _handle = _out; +} +// Original: vkCreateStreamDescriptorSurfaceGGP (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_SCREEN_QNX) +// Original: vkCreateScreenSurfaceQNX +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkScreenSurfaceCreateInfoQNX* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateScreenSurfaceQNX(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateScreenSurfaceQNX failed"); + _handle = _out; +} +// Original: vkCreateScreenSurfaceQNX (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkScreenSurfaceCreateInfoQNX* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_IOS_MVK) +// Original: vkCreateIOSSurfaceMVK +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkIOSSurfaceCreateInfoMVK* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateIOSSurfaceMVK(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateIOSSurfaceMVK failed"); + _handle = _out; +} +// Original: vkCreateIOSSurfaceMVK (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkIOSSurfaceCreateInfoMVK* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_MACOS_MVK) +// Original: vkCreateMacOSSurfaceMVK +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateMacOSSurfaceMVK(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateMacOSSurfaceMVK failed"); + _handle = _out; +} +// Original: vkCreateMacOSSurfaceMVK (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +#if defined(VK_USE_PLATFORM_METAL_EXT) +// Original: vkCreateMetalSurfaceEXT +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkMetalSurfaceCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateMetalSurfaceEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateMetalSurfaceEXT failed"); + _handle = _out; +} +// Original: vkCreateMetalSurfaceEXT (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkMetalSurfaceCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} +#endif + +// Original: vkCreateHeadlessSurfaceEXT +SurfaceKHR::SurfaceKHR(IntrusivePtr parent, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSurfaceKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateHeadlessSurfaceEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateHeadlessSurfaceEXT failed"); + _handle = _out; +} +// Original: vkCreateHeadlessSurfaceEXT (factory) +IntrusivePtr SurfaceKHR::create(IntrusivePtr parent, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new SurfaceKHR(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/SurfaceKHR.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SurfaceKHR.hpp new file mode 100644 index 0000000..11254c6 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SurfaceKHR.hpp @@ -0,0 +1,167 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Instance; + + + +// === Lifetime summary (deterministic) === +// Handle: VkSurfaceKHR +// Holds (destroy/free owners + creation parent, or producer parent): Instance +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class SurfaceKHR : public RefCounted { +public: + VkSurfaceKHR getHandle() const noexcept { return _handle; } + IntrusivePtr getInstance() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkSurfaceKHR handle) { + return IntrusivePtr(new SurfaceKHR(owner0, handle, false)); + } +private: + explicit SurfaceKHR(IntrusivePtr owner0, VkSurfaceKHR handle, bool owned); + ~SurfaceKHR() override; +private: + VkSurfaceKHR _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +#if defined(VK_USE_PLATFORM_ANDROID_KHR) +public: +// Original: vkCreateAndroidSurfaceKHR + explicit SurfaceKHR(IntrusivePtr parent, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo); +// Original: vkCreateAndroidSurfaceKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo); +#endif + + +public: +// Original: vkCreateDisplayPlaneSurfaceKHR + explicit SurfaceKHR(IntrusivePtr parent, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo); +// Original: vkCreateDisplayPlaneSurfaceKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo); + + +#if defined(VK_USE_PLATFORM_VI_NN) +public: +// Original: vkCreateViSurfaceNN + explicit SurfaceKHR(IntrusivePtr parent, const VkViSurfaceCreateInfoNN* pCreateInfo); +// Original: vkCreateViSurfaceNN (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkViSurfaceCreateInfoNN* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_WAYLAND_KHR) +public: +// Original: vkCreateWaylandSurfaceKHR + explicit SurfaceKHR(IntrusivePtr parent, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo); +// Original: vkCreateWaylandSurfaceKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_WIN32_KHR) +public: +// Original: vkCreateWin32SurfaceKHR + explicit SurfaceKHR(IntrusivePtr parent, const VkWin32SurfaceCreateInfoKHR* pCreateInfo); +// Original: vkCreateWin32SurfaceKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkWin32SurfaceCreateInfoKHR* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_XLIB_KHR) +public: +// Original: vkCreateXlibSurfaceKHR + explicit SurfaceKHR(IntrusivePtr parent, const VkXlibSurfaceCreateInfoKHR* pCreateInfo); +// Original: vkCreateXlibSurfaceKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkXlibSurfaceCreateInfoKHR* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_XCB_KHR) +public: +// Original: vkCreateXcbSurfaceKHR + explicit SurfaceKHR(IntrusivePtr parent, const VkXcbSurfaceCreateInfoKHR* pCreateInfo); +// Original: vkCreateXcbSurfaceKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkXcbSurfaceCreateInfoKHR* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) +public: +// Original: vkCreateDirectFBSurfaceEXT + explicit SurfaceKHR(IntrusivePtr parent, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo); +// Original: vkCreateDirectFBSurfaceEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_FUCHSIA) +public: +// Original: vkCreateImagePipeSurfaceFUCHSIA + explicit SurfaceKHR(IntrusivePtr parent, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo); +// Original: vkCreateImagePipeSurfaceFUCHSIA (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_GGP) +public: +// Original: vkCreateStreamDescriptorSurfaceGGP + explicit SurfaceKHR(IntrusivePtr parent, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo); +// Original: vkCreateStreamDescriptorSurfaceGGP (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_SCREEN_QNX) +public: +// Original: vkCreateScreenSurfaceQNX + explicit SurfaceKHR(IntrusivePtr parent, const VkScreenSurfaceCreateInfoQNX* pCreateInfo); +// Original: vkCreateScreenSurfaceQNX (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkScreenSurfaceCreateInfoQNX* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_IOS_MVK) +public: +// Original: vkCreateIOSSurfaceMVK + explicit SurfaceKHR(IntrusivePtr parent, const VkIOSSurfaceCreateInfoMVK* pCreateInfo); +// Original: vkCreateIOSSurfaceMVK (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkIOSSurfaceCreateInfoMVK* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_MACOS_MVK) +public: +// Original: vkCreateMacOSSurfaceMVK + explicit SurfaceKHR(IntrusivePtr parent, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo); +// Original: vkCreateMacOSSurfaceMVK (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo); +#endif + + +#if defined(VK_USE_PLATFORM_METAL_EXT) +public: +// Original: vkCreateMetalSurfaceEXT + explicit SurfaceKHR(IntrusivePtr parent, const VkMetalSurfaceCreateInfoEXT* pCreateInfo); +// Original: vkCreateMetalSurfaceEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkMetalSurfaceCreateInfoEXT* pCreateInfo); +#endif + + +public: +// Original: vkCreateHeadlessSurfaceEXT + explicit SurfaceKHR(IntrusivePtr parent, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo); +// Original: vkCreateHeadlessSurfaceEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo); + +}; +using PSurfaceKHR = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/SwapchainKHR.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SwapchainKHR.cpp new file mode 100644 index 0000000..dd9cd66 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SwapchainKHR.cpp @@ -0,0 +1,46 @@ +#include +#include + + +namespace VulkanPP { + + SwapchainKHR::SwapchainKHR(IntrusivePtr owner0, VkSwapchainKHR handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + SwapchainKHR::~SwapchainKHR() { + if (_handle && _owned) { + (void)vk.vkDestroySwapchainKHR(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateSharedSwapchainsKHR +std::vector> SwapchainKHR::createMany(IntrusivePtr parent, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkSwapchainCreateInfoKHR* pCreateInfos) { + std::vector _out; + _out.resize(swapchainCount); + auto _res = vk.vkCreateSharedSwapchainsKHR(parent->getHandle(), swapchainCount, pCreateInfos, pCreateInfos, nullptr, _out.data()); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateSharedSwapchainsKHR failed"); + std::vector> _ret; _ret.reserve(_out.size()); + for (auto h : _out) { + _ret.emplace_back(new SwapchainKHR(parent, h, true)); + } + return _ret; +} + +// Original: vkCreateSwapchainKHR +SwapchainKHR::SwapchainKHR(IntrusivePtr parent, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkSwapchainCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkSwapchainKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateSwapchainKHR(parent->getHandle(), pCreateInfo, pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateSwapchainKHR failed"); + _handle = _out; +} +// Original: vkCreateSwapchainKHR (factory) +IntrusivePtr SwapchainKHR::create(IntrusivePtr parent, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkSwapchainCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new SwapchainKHR(parent, pCreateInfo, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/SwapchainKHR.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SwapchainKHR.hpp new file mode 100644 index 0000000..179e6cc --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/SwapchainKHR.hpp @@ -0,0 +1,48 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkSwapchainKHR +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class SwapchainKHR : public RefCounted { +public: + VkSwapchainKHR getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkSwapchainKHR handle) { + return IntrusivePtr(new SwapchainKHR(owner0, handle, false)); + } +private: + explicit SwapchainKHR(IntrusivePtr owner0, VkSwapchainKHR handle, bool owned); + ~SwapchainKHR() override; +private: + VkSwapchainKHR _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateSharedSwapchainsKHR + static std::vector> createMany(IntrusivePtr parent, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkSwapchainCreateInfoKHR* pCreateInfos); + + +public: +// Original: vkCreateSwapchainKHR + explicit SwapchainKHR(IntrusivePtr parent, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkSwapchainCreateInfoKHR* pCreateInfo); +// Original: vkCreateSwapchainKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkSwapchainCreateInfoKHR* pCreateInfo); + +}; +using PSwapchainKHR = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ValidationCacheEXT.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ValidationCacheEXT.cpp new file mode 100644 index 0000000..9dcba7e --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ValidationCacheEXT.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + ValidationCacheEXT::ValidationCacheEXT(IntrusivePtr owner0, VkValidationCacheEXT handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + ValidationCacheEXT::~ValidationCacheEXT() { + if (_handle && _owned) { + (void)vk.vkDestroyValidationCacheEXT(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateValidationCacheEXT +ValidationCacheEXT::ValidationCacheEXT(IntrusivePtr parent, const VkValidationCacheCreateInfoEXT* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkValidationCacheEXT _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateValidationCacheEXT(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateValidationCacheEXT failed"); + _handle = _out; +} +// Original: vkCreateValidationCacheEXT (factory) +IntrusivePtr ValidationCacheEXT::create(IntrusivePtr parent, const VkValidationCacheCreateInfoEXT* pCreateInfo) { + return IntrusivePtr(new ValidationCacheEXT(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/ValidationCacheEXT.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ValidationCacheEXT.hpp new file mode 100644 index 0000000..75532b8 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/ValidationCacheEXT.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkValidationCacheEXT +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class ValidationCacheEXT : public RefCounted { +public: + VkValidationCacheEXT getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkValidationCacheEXT handle) { + return IntrusivePtr(new ValidationCacheEXT(owner0, handle, false)); + } +private: + explicit ValidationCacheEXT(IntrusivePtr owner0, VkValidationCacheEXT handle, bool owned); + ~ValidationCacheEXT() override; +private: + VkValidationCacheEXT _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateValidationCacheEXT + explicit ValidationCacheEXT(IntrusivePtr parent, const VkValidationCacheCreateInfoEXT* pCreateInfo); +// Original: vkCreateValidationCacheEXT (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkValidationCacheCreateInfoEXT* pCreateInfo); + +}; +using PValidationCacheEXT = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionKHR.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionKHR.cpp new file mode 100644 index 0000000..34b4239 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionKHR.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + VideoSessionKHR::VideoSessionKHR(IntrusivePtr owner0, VkVideoSessionKHR handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + VideoSessionKHR::~VideoSessionKHR() { + if (_handle && _owned) { + (void)vk.vkDestroyVideoSessionKHR(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateVideoSessionKHR +VideoSessionKHR::VideoSessionKHR(IntrusivePtr parent, const VkVideoSessionCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkVideoSessionKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateVideoSessionKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateVideoSessionKHR failed"); + _handle = _out; +} +// Original: vkCreateVideoSessionKHR (factory) +IntrusivePtr VideoSessionKHR::create(IntrusivePtr parent, const VkVideoSessionCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new VideoSessionKHR(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionKHR.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionKHR.hpp new file mode 100644 index 0000000..bc0954a --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionKHR.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkVideoSessionKHR +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class VideoSessionKHR : public RefCounted { +public: + VkVideoSessionKHR getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkVideoSessionKHR handle) { + return IntrusivePtr(new VideoSessionKHR(owner0, handle, false)); + } +private: + explicit VideoSessionKHR(IntrusivePtr owner0, VkVideoSessionKHR handle, bool owned); + ~VideoSessionKHR() override; +private: + VkVideoSessionKHR _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateVideoSessionKHR + explicit VideoSessionKHR(IntrusivePtr parent, const VkVideoSessionCreateInfoKHR* pCreateInfo); +// Original: vkCreateVideoSessionKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkVideoSessionCreateInfoKHR* pCreateInfo); + +}; +using PVideoSessionKHR = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionParametersKHR.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionParametersKHR.cpp new file mode 100644 index 0000000..6962bc3 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionParametersKHR.cpp @@ -0,0 +1,33 @@ +#include +#include + + +namespace VulkanPP { + + VideoSessionParametersKHR::VideoSessionParametersKHR(IntrusivePtr owner0, VkVideoSessionParametersKHR handle, bool owned) + : _handle(handle), _owned(owned) + , _owner0(std::move(owner0)) +{ } + + VideoSessionParametersKHR::~VideoSessionParametersKHR() { + if (_handle && _owned) { + (void)vk.vkDestroyVideoSessionParametersKHR(_owner0 ? _owner0->getHandle() : (VkDevice)VK_NULL_HANDLE, _handle, nullptr); + _handle = VK_NULL_HANDLE; + } +} + +// Original: vkCreateVideoSessionParametersKHR +VideoSessionParametersKHR::VideoSessionParametersKHR(IntrusivePtr parent, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo) : _handle(VK_NULL_HANDLE), _owned(true) + , _owner0(parent) +{ + VkVideoSessionParametersKHR _out = VK_NULL_HANDLE; + auto _res = vk.vkCreateVideoSessionParametersKHR(parent->getHandle(), pCreateInfo, nullptr, &_out); + if (_res != VK_SUCCESS) throw std::runtime_error("vkCreateVideoSessionParametersKHR failed"); + _handle = _out; +} +// Original: vkCreateVideoSessionParametersKHR (factory) +IntrusivePtr VideoSessionParametersKHR::create(IntrusivePtr parent, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo) { + return IntrusivePtr(new VideoSessionParametersKHR(parent, pCreateInfo)); +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionParametersKHR.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionParametersKHR.hpp new file mode 100644 index 0000000..a15e3a8 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VideoSessionParametersKHR.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { +class Device; + + + +// === Lifetime summary (deterministic) === +// Handle: VkVideoSessionParametersKHR +// Holds (destroy/free owners + creation parent, or producer parent): Device +// Keeps (from *CreateInfo/*AllocateInfo): — +// Destructor calls vkDestroy*/vkFree* only if _owned == true. + +class VideoSessionParametersKHR : public RefCounted { +public: + VkVideoSessionParametersKHR getHandle() const noexcept { return _handle; } + IntrusivePtr getDevice() const noexcept { return _owner0; } +public: + static IntrusivePtr fromHandle(IntrusivePtr owner0, VkVideoSessionParametersKHR handle) { + return IntrusivePtr(new VideoSessionParametersKHR(owner0, handle, false)); + } +private: + explicit VideoSessionParametersKHR(IntrusivePtr owner0, VkVideoSessionParametersKHR handle, bool owned); + ~VideoSessionParametersKHR() override; +private: + VkVideoSessionParametersKHR _handle{VK_NULL_HANDLE}; + bool _owned{false}; + IntrusivePtr _owner0; + +public: +// Original: vkCreateVideoSessionParametersKHR + explicit VideoSessionParametersKHR(IntrusivePtr parent, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo); +// Original: vkCreateVideoSessionParametersKHR (factory) + static IntrusivePtr create(IntrusivePtr parent, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo); + +}; +using PVideoSessionParametersKHR = IntrusivePtr; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/VulkanFunctions.cpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VulkanFunctions.cpp new file mode 100644 index 0000000..c2569de --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VulkanFunctions.cpp @@ -0,0 +1,1621 @@ +#include +#if defined(_WIN32) +#include +static HMODULE g_vkLib = LoadLibraryA("vulkan-1.dll"); +static void* LoadSymbol(const char* n){ return (void*)GetProcAddress(g_vkLib, n); } +#else +#include +static void* g_vkLib = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_LOCAL); +static void* LoadSymbol(const char* n){ return dlsym(g_vkLib, n); } +#endif + +namespace VulkanPP { + +VulkanFunctions vk; + +void VulkanFunctions::loadGlobal(){ + vkGetInstanceProcAddr.p = (PFN_vkGetInstanceProcAddr)LoadSymbol("vkGetInstanceProcAddr"); + vkGetInstanceProcAddr.name = "vkGetInstanceProcAddr"; + vkAcquireDrmDisplayEXT.p = (PFN_vkAcquireDrmDisplayEXT)vkGetInstanceProcAddr.p(nullptr, "vkAcquireDrmDisplayEXT"); + vkAcquireDrmDisplayEXT.name = "vkAcquireDrmDisplayEXT"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkAcquireFullScreenExclusiveModeEXT.p = (PFN_vkAcquireFullScreenExclusiveModeEXT)vkGetInstanceProcAddr.p(nullptr, "vkAcquireFullScreenExclusiveModeEXT"); + vkAcquireFullScreenExclusiveModeEXT.name = "vkAcquireFullScreenExclusiveModeEXT"; +#endif + vkAcquireNextImage2KHR.p = (PFN_vkAcquireNextImage2KHR)vkGetInstanceProcAddr.p(nullptr, "vkAcquireNextImage2KHR"); + vkAcquireNextImage2KHR.name = "vkAcquireNextImage2KHR"; + vkAcquireNextImageKHR.p = (PFN_vkAcquireNextImageKHR)vkGetInstanceProcAddr.p(nullptr, "vkAcquireNextImageKHR"); + vkAcquireNextImageKHR.name = "vkAcquireNextImageKHR"; + vkAcquirePerformanceConfigurationINTEL.p = (PFN_vkAcquirePerformanceConfigurationINTEL)vkGetInstanceProcAddr.p(nullptr, "vkAcquirePerformanceConfigurationINTEL"); + vkAcquirePerformanceConfigurationINTEL.name = "vkAcquirePerformanceConfigurationINTEL"; + vkAcquireProfilingLockKHR.p = (PFN_vkAcquireProfilingLockKHR)vkGetInstanceProcAddr.p(nullptr, "vkAcquireProfilingLockKHR"); + vkAcquireProfilingLockKHR.name = "vkAcquireProfilingLockKHR"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkAcquireWinrtDisplayNV.p = (PFN_vkAcquireWinrtDisplayNV)vkGetInstanceProcAddr.p(nullptr, "vkAcquireWinrtDisplayNV"); + vkAcquireWinrtDisplayNV.name = "vkAcquireWinrtDisplayNV"; +#endif +#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) + vkAcquireXlibDisplayEXT.p = (PFN_vkAcquireXlibDisplayEXT)vkGetInstanceProcAddr.p(nullptr, "vkAcquireXlibDisplayEXT"); + vkAcquireXlibDisplayEXT.name = "vkAcquireXlibDisplayEXT"; +#endif + vkAllocateCommandBuffers.p = (PFN_vkAllocateCommandBuffers)vkGetInstanceProcAddr.p(nullptr, "vkAllocateCommandBuffers"); + vkAllocateCommandBuffers.name = "vkAllocateCommandBuffers"; + vkAllocateDescriptorSets.p = (PFN_vkAllocateDescriptorSets)vkGetInstanceProcAddr.p(nullptr, "vkAllocateDescriptorSets"); + vkAllocateDescriptorSets.name = "vkAllocateDescriptorSets"; + vkAllocateMemory.p = (PFN_vkAllocateMemory)vkGetInstanceProcAddr.p(nullptr, "vkAllocateMemory"); + vkAllocateMemory.name = "vkAllocateMemory"; + vkAntiLagUpdateAMD.p = (PFN_vkAntiLagUpdateAMD)vkGetInstanceProcAddr.p(nullptr, "vkAntiLagUpdateAMD"); + vkAntiLagUpdateAMD.name = "vkAntiLagUpdateAMD"; + vkBeginCommandBuffer.p = (PFN_vkBeginCommandBuffer)vkGetInstanceProcAddr.p(nullptr, "vkBeginCommandBuffer"); + vkBeginCommandBuffer.name = "vkBeginCommandBuffer"; + vkBindAccelerationStructureMemoryNV.p = (PFN_vkBindAccelerationStructureMemoryNV)vkGetInstanceProcAddr.p(nullptr, "vkBindAccelerationStructureMemoryNV"); + vkBindAccelerationStructureMemoryNV.name = "vkBindAccelerationStructureMemoryNV"; + vkBindBufferMemory.p = (PFN_vkBindBufferMemory)vkGetInstanceProcAddr.p(nullptr, "vkBindBufferMemory"); + vkBindBufferMemory.name = "vkBindBufferMemory"; + vkBindBufferMemory2.p = (PFN_vkBindBufferMemory2)vkGetInstanceProcAddr.p(nullptr, "vkBindBufferMemory2"); + vkBindBufferMemory2.name = "vkBindBufferMemory2"; + vkBindBufferMemory2KHR.p = (PFN_vkBindBufferMemory2KHR)vkGetInstanceProcAddr.p(nullptr, "vkBindBufferMemory2KHR"); + vkBindBufferMemory2KHR.name = "vkBindBufferMemory2KHR"; + vkBindImageMemory.p = (PFN_vkBindImageMemory)vkGetInstanceProcAddr.p(nullptr, "vkBindImageMemory"); + vkBindImageMemory.name = "vkBindImageMemory"; + vkBindImageMemory2.p = (PFN_vkBindImageMemory2)vkGetInstanceProcAddr.p(nullptr, "vkBindImageMemory2"); + vkBindImageMemory2.name = "vkBindImageMemory2"; + vkBindImageMemory2KHR.p = (PFN_vkBindImageMemory2KHR)vkGetInstanceProcAddr.p(nullptr, "vkBindImageMemory2KHR"); + vkBindImageMemory2KHR.name = "vkBindImageMemory2KHR"; + vkBindOpticalFlowSessionImageNV.p = (PFN_vkBindOpticalFlowSessionImageNV)vkGetInstanceProcAddr.p(nullptr, "vkBindOpticalFlowSessionImageNV"); + vkBindOpticalFlowSessionImageNV.name = "vkBindOpticalFlowSessionImageNV"; + vkBindVideoSessionMemoryKHR.p = (PFN_vkBindVideoSessionMemoryKHR)vkGetInstanceProcAddr.p(nullptr, "vkBindVideoSessionMemoryKHR"); + vkBindVideoSessionMemoryKHR.name = "vkBindVideoSessionMemoryKHR"; + vkBuildAccelerationStructuresKHR.p = (PFN_vkBuildAccelerationStructuresKHR)vkGetInstanceProcAddr.p(nullptr, "vkBuildAccelerationStructuresKHR"); + vkBuildAccelerationStructuresKHR.name = "vkBuildAccelerationStructuresKHR"; + vkBuildMicromapsEXT.p = (PFN_vkBuildMicromapsEXT)vkGetInstanceProcAddr.p(nullptr, "vkBuildMicromapsEXT"); + vkBuildMicromapsEXT.name = "vkBuildMicromapsEXT"; + vkCmdBeginConditionalRenderingEXT.p = (PFN_vkCmdBeginConditionalRenderingEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginConditionalRenderingEXT"); + vkCmdBeginConditionalRenderingEXT.name = "vkCmdBeginConditionalRenderingEXT"; + vkCmdBeginDebugUtilsLabelEXT.p = (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginDebugUtilsLabelEXT"); + vkCmdBeginDebugUtilsLabelEXT.name = "vkCmdBeginDebugUtilsLabelEXT"; + vkCmdBeginPerTileExecutionQCOM.p = (PFN_vkCmdBeginPerTileExecutionQCOM)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginPerTileExecutionQCOM"); + vkCmdBeginPerTileExecutionQCOM.name = "vkCmdBeginPerTileExecutionQCOM"; + vkCmdBeginQuery.p = (PFN_vkCmdBeginQuery)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginQuery"); + vkCmdBeginQuery.name = "vkCmdBeginQuery"; + vkCmdBeginQueryIndexedEXT.p = (PFN_vkCmdBeginQueryIndexedEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginQueryIndexedEXT"); + vkCmdBeginQueryIndexedEXT.name = "vkCmdBeginQueryIndexedEXT"; + vkCmdBeginRendering.p = (PFN_vkCmdBeginRendering)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginRendering"); + vkCmdBeginRendering.name = "vkCmdBeginRendering"; + vkCmdBeginRenderingKHR.p = (PFN_vkCmdBeginRenderingKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginRenderingKHR"); + vkCmdBeginRenderingKHR.name = "vkCmdBeginRenderingKHR"; + vkCmdBeginRenderPass.p = (PFN_vkCmdBeginRenderPass)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginRenderPass"); + vkCmdBeginRenderPass.name = "vkCmdBeginRenderPass"; + vkCmdBeginRenderPass2.p = (PFN_vkCmdBeginRenderPass2)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginRenderPass2"); + vkCmdBeginRenderPass2.name = "vkCmdBeginRenderPass2"; + vkCmdBeginRenderPass2KHR.p = (PFN_vkCmdBeginRenderPass2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginRenderPass2KHR"); + vkCmdBeginRenderPass2KHR.name = "vkCmdBeginRenderPass2KHR"; + vkCmdBeginTransformFeedbackEXT.p = (PFN_vkCmdBeginTransformFeedbackEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginTransformFeedbackEXT"); + vkCmdBeginTransformFeedbackEXT.name = "vkCmdBeginTransformFeedbackEXT"; + vkCmdBeginVideoCodingKHR.p = (PFN_vkCmdBeginVideoCodingKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdBeginVideoCodingKHR"); + vkCmdBeginVideoCodingKHR.name = "vkCmdBeginVideoCodingKHR"; + vkCmdBindDescriptorBufferEmbeddedSamplers2EXT.p = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT"); + vkCmdBindDescriptorBufferEmbeddedSamplers2EXT.name = "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT"; + vkCmdBindDescriptorBufferEmbeddedSamplersEXT.p = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT"); + vkCmdBindDescriptorBufferEmbeddedSamplersEXT.name = "vkCmdBindDescriptorBufferEmbeddedSamplersEXT"; + vkCmdBindDescriptorBuffersEXT.p = (PFN_vkCmdBindDescriptorBuffersEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindDescriptorBuffersEXT"); + vkCmdBindDescriptorBuffersEXT.name = "vkCmdBindDescriptorBuffersEXT"; + vkCmdBindDescriptorSets.p = (PFN_vkCmdBindDescriptorSets)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindDescriptorSets"); + vkCmdBindDescriptorSets.name = "vkCmdBindDescriptorSets"; + vkCmdBindDescriptorSets2.p = (PFN_vkCmdBindDescriptorSets2)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindDescriptorSets2"); + vkCmdBindDescriptorSets2.name = "vkCmdBindDescriptorSets2"; + vkCmdBindDescriptorSets2KHR.p = (PFN_vkCmdBindDescriptorSets2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindDescriptorSets2KHR"); + vkCmdBindDescriptorSets2KHR.name = "vkCmdBindDescriptorSets2KHR"; + vkCmdBindIndexBuffer.p = (PFN_vkCmdBindIndexBuffer)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindIndexBuffer"); + vkCmdBindIndexBuffer.name = "vkCmdBindIndexBuffer"; + vkCmdBindIndexBuffer2.p = (PFN_vkCmdBindIndexBuffer2)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindIndexBuffer2"); + vkCmdBindIndexBuffer2.name = "vkCmdBindIndexBuffer2"; + vkCmdBindIndexBuffer2KHR.p = (PFN_vkCmdBindIndexBuffer2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindIndexBuffer2KHR"); + vkCmdBindIndexBuffer2KHR.name = "vkCmdBindIndexBuffer2KHR"; + vkCmdBindInvocationMaskHUAWEI.p = (PFN_vkCmdBindInvocationMaskHUAWEI)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindInvocationMaskHUAWEI"); + vkCmdBindInvocationMaskHUAWEI.name = "vkCmdBindInvocationMaskHUAWEI"; + vkCmdBindPipeline.p = (PFN_vkCmdBindPipeline)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindPipeline"); + vkCmdBindPipeline.name = "vkCmdBindPipeline"; + vkCmdBindPipelineShaderGroupNV.p = (PFN_vkCmdBindPipelineShaderGroupNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindPipelineShaderGroupNV"); + vkCmdBindPipelineShaderGroupNV.name = "vkCmdBindPipelineShaderGroupNV"; + vkCmdBindShadersEXT.p = (PFN_vkCmdBindShadersEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindShadersEXT"); + vkCmdBindShadersEXT.name = "vkCmdBindShadersEXT"; + vkCmdBindShadingRateImageNV.p = (PFN_vkCmdBindShadingRateImageNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindShadingRateImageNV"); + vkCmdBindShadingRateImageNV.name = "vkCmdBindShadingRateImageNV"; + vkCmdBindTileMemoryQCOM.p = (PFN_vkCmdBindTileMemoryQCOM)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindTileMemoryQCOM"); + vkCmdBindTileMemoryQCOM.name = "vkCmdBindTileMemoryQCOM"; + vkCmdBindTransformFeedbackBuffersEXT.p = (PFN_vkCmdBindTransformFeedbackBuffersEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindTransformFeedbackBuffersEXT"); + vkCmdBindTransformFeedbackBuffersEXT.name = "vkCmdBindTransformFeedbackBuffersEXT"; + vkCmdBindVertexBuffers.p = (PFN_vkCmdBindVertexBuffers)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindVertexBuffers"); + vkCmdBindVertexBuffers.name = "vkCmdBindVertexBuffers"; + vkCmdBindVertexBuffers2.p = (PFN_vkCmdBindVertexBuffers2)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindVertexBuffers2"); + vkCmdBindVertexBuffers2.name = "vkCmdBindVertexBuffers2"; + vkCmdBindVertexBuffers2EXT.p = (PFN_vkCmdBindVertexBuffers2EXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBindVertexBuffers2EXT"); + vkCmdBindVertexBuffers2EXT.name = "vkCmdBindVertexBuffers2EXT"; + vkCmdBlitImage.p = (PFN_vkCmdBlitImage)vkGetInstanceProcAddr.p(nullptr, "vkCmdBlitImage"); + vkCmdBlitImage.name = "vkCmdBlitImage"; + vkCmdBlitImage2.p = (PFN_vkCmdBlitImage2)vkGetInstanceProcAddr.p(nullptr, "vkCmdBlitImage2"); + vkCmdBlitImage2.name = "vkCmdBlitImage2"; + vkCmdBlitImage2KHR.p = (PFN_vkCmdBlitImage2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdBlitImage2KHR"); + vkCmdBlitImage2KHR.name = "vkCmdBlitImage2KHR"; + vkCmdBuildAccelerationStructureNV.p = (PFN_vkCmdBuildAccelerationStructureNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdBuildAccelerationStructureNV"); + vkCmdBuildAccelerationStructureNV.name = "vkCmdBuildAccelerationStructureNV"; + vkCmdBuildAccelerationStructuresIndirectKHR.p = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdBuildAccelerationStructuresIndirectKHR"); + vkCmdBuildAccelerationStructuresIndirectKHR.name = "vkCmdBuildAccelerationStructuresIndirectKHR"; + vkCmdBuildAccelerationStructuresKHR.p = (PFN_vkCmdBuildAccelerationStructuresKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdBuildAccelerationStructuresKHR"); + vkCmdBuildAccelerationStructuresKHR.name = "vkCmdBuildAccelerationStructuresKHR"; + vkCmdBuildClusterAccelerationStructureIndirectNV.p = (PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdBuildClusterAccelerationStructureIndirectNV"); + vkCmdBuildClusterAccelerationStructureIndirectNV.name = "vkCmdBuildClusterAccelerationStructureIndirectNV"; + vkCmdBuildMicromapsEXT.p = (PFN_vkCmdBuildMicromapsEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdBuildMicromapsEXT"); + vkCmdBuildMicromapsEXT.name = "vkCmdBuildMicromapsEXT"; + vkCmdBuildPartitionedAccelerationStructuresNV.p = (PFN_vkCmdBuildPartitionedAccelerationStructuresNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdBuildPartitionedAccelerationStructuresNV"); + vkCmdBuildPartitionedAccelerationStructuresNV.name = "vkCmdBuildPartitionedAccelerationStructuresNV"; + vkCmdClearAttachments.p = (PFN_vkCmdClearAttachments)vkGetInstanceProcAddr.p(nullptr, "vkCmdClearAttachments"); + vkCmdClearAttachments.name = "vkCmdClearAttachments"; + vkCmdClearColorImage.p = (PFN_vkCmdClearColorImage)vkGetInstanceProcAddr.p(nullptr, "vkCmdClearColorImage"); + vkCmdClearColorImage.name = "vkCmdClearColorImage"; + vkCmdClearDepthStencilImage.p = (PFN_vkCmdClearDepthStencilImage)vkGetInstanceProcAddr.p(nullptr, "vkCmdClearDepthStencilImage"); + vkCmdClearDepthStencilImage.name = "vkCmdClearDepthStencilImage"; + vkCmdControlVideoCodingKHR.p = (PFN_vkCmdControlVideoCodingKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdControlVideoCodingKHR"); + vkCmdControlVideoCodingKHR.name = "vkCmdControlVideoCodingKHR"; + vkCmdConvertCooperativeVectorMatrixNV.p = (PFN_vkCmdConvertCooperativeVectorMatrixNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdConvertCooperativeVectorMatrixNV"); + vkCmdConvertCooperativeVectorMatrixNV.name = "vkCmdConvertCooperativeVectorMatrixNV"; + vkCmdCopyAccelerationStructureKHR.p = (PFN_vkCmdCopyAccelerationStructureKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyAccelerationStructureKHR"); + vkCmdCopyAccelerationStructureKHR.name = "vkCmdCopyAccelerationStructureKHR"; + vkCmdCopyAccelerationStructureNV.p = (PFN_vkCmdCopyAccelerationStructureNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyAccelerationStructureNV"); + vkCmdCopyAccelerationStructureNV.name = "vkCmdCopyAccelerationStructureNV"; + vkCmdCopyAccelerationStructureToMemoryKHR.p = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyAccelerationStructureToMemoryKHR"); + vkCmdCopyAccelerationStructureToMemoryKHR.name = "vkCmdCopyAccelerationStructureToMemoryKHR"; + vkCmdCopyBuffer.p = (PFN_vkCmdCopyBuffer)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyBuffer"); + vkCmdCopyBuffer.name = "vkCmdCopyBuffer"; + vkCmdCopyBuffer2.p = (PFN_vkCmdCopyBuffer2)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyBuffer2"); + vkCmdCopyBuffer2.name = "vkCmdCopyBuffer2"; + vkCmdCopyBuffer2KHR.p = (PFN_vkCmdCopyBuffer2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyBuffer2KHR"); + vkCmdCopyBuffer2KHR.name = "vkCmdCopyBuffer2KHR"; + vkCmdCopyBufferToImage.p = (PFN_vkCmdCopyBufferToImage)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyBufferToImage"); + vkCmdCopyBufferToImage.name = "vkCmdCopyBufferToImage"; + vkCmdCopyBufferToImage2.p = (PFN_vkCmdCopyBufferToImage2)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyBufferToImage2"); + vkCmdCopyBufferToImage2.name = "vkCmdCopyBufferToImage2"; + vkCmdCopyBufferToImage2KHR.p = (PFN_vkCmdCopyBufferToImage2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyBufferToImage2KHR"); + vkCmdCopyBufferToImage2KHR.name = "vkCmdCopyBufferToImage2KHR"; + vkCmdCopyImage.p = (PFN_vkCmdCopyImage)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyImage"); + vkCmdCopyImage.name = "vkCmdCopyImage"; + vkCmdCopyImage2.p = (PFN_vkCmdCopyImage2)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyImage2"); + vkCmdCopyImage2.name = "vkCmdCopyImage2"; + vkCmdCopyImage2KHR.p = (PFN_vkCmdCopyImage2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyImage2KHR"); + vkCmdCopyImage2KHR.name = "vkCmdCopyImage2KHR"; + vkCmdCopyImageToBuffer.p = (PFN_vkCmdCopyImageToBuffer)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyImageToBuffer"); + vkCmdCopyImageToBuffer.name = "vkCmdCopyImageToBuffer"; + vkCmdCopyImageToBuffer2.p = (PFN_vkCmdCopyImageToBuffer2)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyImageToBuffer2"); + vkCmdCopyImageToBuffer2.name = "vkCmdCopyImageToBuffer2"; + vkCmdCopyImageToBuffer2KHR.p = (PFN_vkCmdCopyImageToBuffer2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyImageToBuffer2KHR"); + vkCmdCopyImageToBuffer2KHR.name = "vkCmdCopyImageToBuffer2KHR"; + vkCmdCopyMemoryIndirectNV.p = (PFN_vkCmdCopyMemoryIndirectNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyMemoryIndirectNV"); + vkCmdCopyMemoryIndirectNV.name = "vkCmdCopyMemoryIndirectNV"; + vkCmdCopyMemoryToAccelerationStructureKHR.p = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyMemoryToAccelerationStructureKHR"); + vkCmdCopyMemoryToAccelerationStructureKHR.name = "vkCmdCopyMemoryToAccelerationStructureKHR"; + vkCmdCopyMemoryToImageIndirectNV.p = (PFN_vkCmdCopyMemoryToImageIndirectNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyMemoryToImageIndirectNV"); + vkCmdCopyMemoryToImageIndirectNV.name = "vkCmdCopyMemoryToImageIndirectNV"; + vkCmdCopyMemoryToMicromapEXT.p = (PFN_vkCmdCopyMemoryToMicromapEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyMemoryToMicromapEXT"); + vkCmdCopyMemoryToMicromapEXT.name = "vkCmdCopyMemoryToMicromapEXT"; + vkCmdCopyMicromapEXT.p = (PFN_vkCmdCopyMicromapEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyMicromapEXT"); + vkCmdCopyMicromapEXT.name = "vkCmdCopyMicromapEXT"; + vkCmdCopyMicromapToMemoryEXT.p = (PFN_vkCmdCopyMicromapToMemoryEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyMicromapToMemoryEXT"); + vkCmdCopyMicromapToMemoryEXT.name = "vkCmdCopyMicromapToMemoryEXT"; + vkCmdCopyQueryPoolResults.p = (PFN_vkCmdCopyQueryPoolResults)vkGetInstanceProcAddr.p(nullptr, "vkCmdCopyQueryPoolResults"); + vkCmdCopyQueryPoolResults.name = "vkCmdCopyQueryPoolResults"; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkCmdCudaLaunchKernelNV.p = (PFN_vkCmdCudaLaunchKernelNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdCudaLaunchKernelNV"); + vkCmdCudaLaunchKernelNV.name = "vkCmdCudaLaunchKernelNV"; +#endif + vkCmdCuLaunchKernelNVX.p = (PFN_vkCmdCuLaunchKernelNVX)vkGetInstanceProcAddr.p(nullptr, "vkCmdCuLaunchKernelNVX"); + vkCmdCuLaunchKernelNVX.name = "vkCmdCuLaunchKernelNVX"; + vkCmdDebugMarkerBeginEXT.p = (PFN_vkCmdDebugMarkerBeginEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDebugMarkerBeginEXT"); + vkCmdDebugMarkerBeginEXT.name = "vkCmdDebugMarkerBeginEXT"; + vkCmdDebugMarkerEndEXT.p = (PFN_vkCmdDebugMarkerEndEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDebugMarkerEndEXT"); + vkCmdDebugMarkerEndEXT.name = "vkCmdDebugMarkerEndEXT"; + vkCmdDebugMarkerInsertEXT.p = (PFN_vkCmdDebugMarkerInsertEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDebugMarkerInsertEXT"); + vkCmdDebugMarkerInsertEXT.name = "vkCmdDebugMarkerInsertEXT"; + vkCmdDecodeVideoKHR.p = (PFN_vkCmdDecodeVideoKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdDecodeVideoKHR"); + vkCmdDecodeVideoKHR.name = "vkCmdDecodeVideoKHR"; + vkCmdDecompressMemoryIndirectCountNV.p = (PFN_vkCmdDecompressMemoryIndirectCountNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdDecompressMemoryIndirectCountNV"); + vkCmdDecompressMemoryIndirectCountNV.name = "vkCmdDecompressMemoryIndirectCountNV"; + vkCmdDecompressMemoryNV.p = (PFN_vkCmdDecompressMemoryNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdDecompressMemoryNV"); + vkCmdDecompressMemoryNV.name = "vkCmdDecompressMemoryNV"; + vkCmdDispatch.p = (PFN_vkCmdDispatch)vkGetInstanceProcAddr.p(nullptr, "vkCmdDispatch"); + vkCmdDispatch.name = "vkCmdDispatch"; + vkCmdDispatchBase.p = (PFN_vkCmdDispatchBase)vkGetInstanceProcAddr.p(nullptr, "vkCmdDispatchBase"); + vkCmdDispatchBase.name = "vkCmdDispatchBase"; + vkCmdDispatchBaseKHR.p = (PFN_vkCmdDispatchBaseKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdDispatchBaseKHR"); + vkCmdDispatchBaseKHR.name = "vkCmdDispatchBaseKHR"; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkCmdDispatchGraphAMDX.p = (PFN_vkCmdDispatchGraphAMDX)vkGetInstanceProcAddr.p(nullptr, "vkCmdDispatchGraphAMDX"); + vkCmdDispatchGraphAMDX.name = "vkCmdDispatchGraphAMDX"; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkCmdDispatchGraphIndirectAMDX.p = (PFN_vkCmdDispatchGraphIndirectAMDX)vkGetInstanceProcAddr.p(nullptr, "vkCmdDispatchGraphIndirectAMDX"); + vkCmdDispatchGraphIndirectAMDX.name = "vkCmdDispatchGraphIndirectAMDX"; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkCmdDispatchGraphIndirectCountAMDX.p = (PFN_vkCmdDispatchGraphIndirectCountAMDX)vkGetInstanceProcAddr.p(nullptr, "vkCmdDispatchGraphIndirectCountAMDX"); + vkCmdDispatchGraphIndirectCountAMDX.name = "vkCmdDispatchGraphIndirectCountAMDX"; +#endif + vkCmdDispatchIndirect.p = (PFN_vkCmdDispatchIndirect)vkGetInstanceProcAddr.p(nullptr, "vkCmdDispatchIndirect"); + vkCmdDispatchIndirect.name = "vkCmdDispatchIndirect"; + vkCmdDispatchTileQCOM.p = (PFN_vkCmdDispatchTileQCOM)vkGetInstanceProcAddr.p(nullptr, "vkCmdDispatchTileQCOM"); + vkCmdDispatchTileQCOM.name = "vkCmdDispatchTileQCOM"; + vkCmdDraw.p = (PFN_vkCmdDraw)vkGetInstanceProcAddr.p(nullptr, "vkCmdDraw"); + vkCmdDraw.name = "vkCmdDraw"; + vkCmdDrawClusterHUAWEI.p = (PFN_vkCmdDrawClusterHUAWEI)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawClusterHUAWEI"); + vkCmdDrawClusterHUAWEI.name = "vkCmdDrawClusterHUAWEI"; + vkCmdDrawClusterIndirectHUAWEI.p = (PFN_vkCmdDrawClusterIndirectHUAWEI)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawClusterIndirectHUAWEI"); + vkCmdDrawClusterIndirectHUAWEI.name = "vkCmdDrawClusterIndirectHUAWEI"; + vkCmdDrawIndexed.p = (PFN_vkCmdDrawIndexed)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndexed"); + vkCmdDrawIndexed.name = "vkCmdDrawIndexed"; + vkCmdDrawIndexedIndirect.p = (PFN_vkCmdDrawIndexedIndirect)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndexedIndirect"); + vkCmdDrawIndexedIndirect.name = "vkCmdDrawIndexedIndirect"; + vkCmdDrawIndexedIndirectCount.p = (PFN_vkCmdDrawIndexedIndirectCount)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndexedIndirectCount"); + vkCmdDrawIndexedIndirectCount.name = "vkCmdDrawIndexedIndirectCount"; + vkCmdDrawIndexedIndirectCountAMD.p = (PFN_vkCmdDrawIndexedIndirectCountAMD)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndexedIndirectCountAMD"); + vkCmdDrawIndexedIndirectCountAMD.name = "vkCmdDrawIndexedIndirectCountAMD"; + vkCmdDrawIndexedIndirectCountKHR.p = (PFN_vkCmdDrawIndexedIndirectCountKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndexedIndirectCountKHR"); + vkCmdDrawIndexedIndirectCountKHR.name = "vkCmdDrawIndexedIndirectCountKHR"; + vkCmdDrawIndirect.p = (PFN_vkCmdDrawIndirect)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndirect"); + vkCmdDrawIndirect.name = "vkCmdDrawIndirect"; + vkCmdDrawIndirectByteCountEXT.p = (PFN_vkCmdDrawIndirectByteCountEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndirectByteCountEXT"); + vkCmdDrawIndirectByteCountEXT.name = "vkCmdDrawIndirectByteCountEXT"; + vkCmdDrawIndirectCount.p = (PFN_vkCmdDrawIndirectCount)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndirectCount"); + vkCmdDrawIndirectCount.name = "vkCmdDrawIndirectCount"; + vkCmdDrawIndirectCountAMD.p = (PFN_vkCmdDrawIndirectCountAMD)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndirectCountAMD"); + vkCmdDrawIndirectCountAMD.name = "vkCmdDrawIndirectCountAMD"; + vkCmdDrawIndirectCountKHR.p = (PFN_vkCmdDrawIndirectCountKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawIndirectCountKHR"); + vkCmdDrawIndirectCountKHR.name = "vkCmdDrawIndirectCountKHR"; + vkCmdDrawMeshTasksEXT.p = (PFN_vkCmdDrawMeshTasksEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawMeshTasksEXT"); + vkCmdDrawMeshTasksEXT.name = "vkCmdDrawMeshTasksEXT"; + vkCmdDrawMeshTasksIndirectCountEXT.p = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawMeshTasksIndirectCountEXT"); + vkCmdDrawMeshTasksIndirectCountEXT.name = "vkCmdDrawMeshTasksIndirectCountEXT"; + vkCmdDrawMeshTasksIndirectCountNV.p = (PFN_vkCmdDrawMeshTasksIndirectCountNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawMeshTasksIndirectCountNV"); + vkCmdDrawMeshTasksIndirectCountNV.name = "vkCmdDrawMeshTasksIndirectCountNV"; + vkCmdDrawMeshTasksIndirectEXT.p = (PFN_vkCmdDrawMeshTasksIndirectEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawMeshTasksIndirectEXT"); + vkCmdDrawMeshTasksIndirectEXT.name = "vkCmdDrawMeshTasksIndirectEXT"; + vkCmdDrawMeshTasksIndirectNV.p = (PFN_vkCmdDrawMeshTasksIndirectNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawMeshTasksIndirectNV"); + vkCmdDrawMeshTasksIndirectNV.name = "vkCmdDrawMeshTasksIndirectNV"; + vkCmdDrawMeshTasksNV.p = (PFN_vkCmdDrawMeshTasksNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawMeshTasksNV"); + vkCmdDrawMeshTasksNV.name = "vkCmdDrawMeshTasksNV"; + vkCmdDrawMultiEXT.p = (PFN_vkCmdDrawMultiEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawMultiEXT"); + vkCmdDrawMultiEXT.name = "vkCmdDrawMultiEXT"; + vkCmdDrawMultiIndexedEXT.p = (PFN_vkCmdDrawMultiIndexedEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdDrawMultiIndexedEXT"); + vkCmdDrawMultiIndexedEXT.name = "vkCmdDrawMultiIndexedEXT"; + vkCmdEncodeVideoKHR.p = (PFN_vkCmdEncodeVideoKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdEncodeVideoKHR"); + vkCmdEncodeVideoKHR.name = "vkCmdEncodeVideoKHR"; + vkCmdEndConditionalRenderingEXT.p = (PFN_vkCmdEndConditionalRenderingEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndConditionalRenderingEXT"); + vkCmdEndConditionalRenderingEXT.name = "vkCmdEndConditionalRenderingEXT"; + vkCmdEndDebugUtilsLabelEXT.p = (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndDebugUtilsLabelEXT"); + vkCmdEndDebugUtilsLabelEXT.name = "vkCmdEndDebugUtilsLabelEXT"; + vkCmdEndPerTileExecutionQCOM.p = (PFN_vkCmdEndPerTileExecutionQCOM)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndPerTileExecutionQCOM"); + vkCmdEndPerTileExecutionQCOM.name = "vkCmdEndPerTileExecutionQCOM"; + vkCmdEndQuery.p = (PFN_vkCmdEndQuery)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndQuery"); + vkCmdEndQuery.name = "vkCmdEndQuery"; + vkCmdEndQueryIndexedEXT.p = (PFN_vkCmdEndQueryIndexedEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndQueryIndexedEXT"); + vkCmdEndQueryIndexedEXT.name = "vkCmdEndQueryIndexedEXT"; + vkCmdEndRendering.p = (PFN_vkCmdEndRendering)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndRendering"); + vkCmdEndRendering.name = "vkCmdEndRendering"; + vkCmdEndRendering2EXT.p = (PFN_vkCmdEndRendering2EXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndRendering2EXT"); + vkCmdEndRendering2EXT.name = "vkCmdEndRendering2EXT"; + vkCmdEndRenderingKHR.p = (PFN_vkCmdEndRenderingKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndRenderingKHR"); + vkCmdEndRenderingKHR.name = "vkCmdEndRenderingKHR"; + vkCmdEndRenderPass.p = (PFN_vkCmdEndRenderPass)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndRenderPass"); + vkCmdEndRenderPass.name = "vkCmdEndRenderPass"; + vkCmdEndRenderPass2.p = (PFN_vkCmdEndRenderPass2)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndRenderPass2"); + vkCmdEndRenderPass2.name = "vkCmdEndRenderPass2"; + vkCmdEndRenderPass2KHR.p = (PFN_vkCmdEndRenderPass2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndRenderPass2KHR"); + vkCmdEndRenderPass2KHR.name = "vkCmdEndRenderPass2KHR"; + vkCmdEndTransformFeedbackEXT.p = (PFN_vkCmdEndTransformFeedbackEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndTransformFeedbackEXT"); + vkCmdEndTransformFeedbackEXT.name = "vkCmdEndTransformFeedbackEXT"; + vkCmdEndVideoCodingKHR.p = (PFN_vkCmdEndVideoCodingKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdEndVideoCodingKHR"); + vkCmdEndVideoCodingKHR.name = "vkCmdEndVideoCodingKHR"; + vkCmdExecuteCommands.p = (PFN_vkCmdExecuteCommands)vkGetInstanceProcAddr.p(nullptr, "vkCmdExecuteCommands"); + vkCmdExecuteCommands.name = "vkCmdExecuteCommands"; + vkCmdExecuteGeneratedCommandsEXT.p = (PFN_vkCmdExecuteGeneratedCommandsEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdExecuteGeneratedCommandsEXT"); + vkCmdExecuteGeneratedCommandsEXT.name = "vkCmdExecuteGeneratedCommandsEXT"; + vkCmdExecuteGeneratedCommandsNV.p = (PFN_vkCmdExecuteGeneratedCommandsNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdExecuteGeneratedCommandsNV"); + vkCmdExecuteGeneratedCommandsNV.name = "vkCmdExecuteGeneratedCommandsNV"; + vkCmdFillBuffer.p = (PFN_vkCmdFillBuffer)vkGetInstanceProcAddr.p(nullptr, "vkCmdFillBuffer"); + vkCmdFillBuffer.name = "vkCmdFillBuffer"; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkCmdInitializeGraphScratchMemoryAMDX.p = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)vkGetInstanceProcAddr.p(nullptr, "vkCmdInitializeGraphScratchMemoryAMDX"); + vkCmdInitializeGraphScratchMemoryAMDX.name = "vkCmdInitializeGraphScratchMemoryAMDX"; +#endif + vkCmdInsertDebugUtilsLabelEXT.p = (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdInsertDebugUtilsLabelEXT"); + vkCmdInsertDebugUtilsLabelEXT.name = "vkCmdInsertDebugUtilsLabelEXT"; + vkCmdNextSubpass.p = (PFN_vkCmdNextSubpass)vkGetInstanceProcAddr.p(nullptr, "vkCmdNextSubpass"); + vkCmdNextSubpass.name = "vkCmdNextSubpass"; + vkCmdNextSubpass2.p = (PFN_vkCmdNextSubpass2)vkGetInstanceProcAddr.p(nullptr, "vkCmdNextSubpass2"); + vkCmdNextSubpass2.name = "vkCmdNextSubpass2"; + vkCmdNextSubpass2KHR.p = (PFN_vkCmdNextSubpass2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdNextSubpass2KHR"); + vkCmdNextSubpass2KHR.name = "vkCmdNextSubpass2KHR"; + vkCmdOpticalFlowExecuteNV.p = (PFN_vkCmdOpticalFlowExecuteNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdOpticalFlowExecuteNV"); + vkCmdOpticalFlowExecuteNV.name = "vkCmdOpticalFlowExecuteNV"; + vkCmdPipelineBarrier.p = (PFN_vkCmdPipelineBarrier)vkGetInstanceProcAddr.p(nullptr, "vkCmdPipelineBarrier"); + vkCmdPipelineBarrier.name = "vkCmdPipelineBarrier"; + vkCmdPipelineBarrier2.p = (PFN_vkCmdPipelineBarrier2)vkGetInstanceProcAddr.p(nullptr, "vkCmdPipelineBarrier2"); + vkCmdPipelineBarrier2.name = "vkCmdPipelineBarrier2"; + vkCmdPipelineBarrier2KHR.p = (PFN_vkCmdPipelineBarrier2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdPipelineBarrier2KHR"); + vkCmdPipelineBarrier2KHR.name = "vkCmdPipelineBarrier2KHR"; + vkCmdPreprocessGeneratedCommandsEXT.p = (PFN_vkCmdPreprocessGeneratedCommandsEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdPreprocessGeneratedCommandsEXT"); + vkCmdPreprocessGeneratedCommandsEXT.name = "vkCmdPreprocessGeneratedCommandsEXT"; + vkCmdPreprocessGeneratedCommandsNV.p = (PFN_vkCmdPreprocessGeneratedCommandsNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdPreprocessGeneratedCommandsNV"); + vkCmdPreprocessGeneratedCommandsNV.name = "vkCmdPreprocessGeneratedCommandsNV"; + vkCmdPushConstants.p = (PFN_vkCmdPushConstants)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushConstants"); + vkCmdPushConstants.name = "vkCmdPushConstants"; + vkCmdPushConstants2.p = (PFN_vkCmdPushConstants2)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushConstants2"); + vkCmdPushConstants2.name = "vkCmdPushConstants2"; + vkCmdPushConstants2KHR.p = (PFN_vkCmdPushConstants2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushConstants2KHR"); + vkCmdPushConstants2KHR.name = "vkCmdPushConstants2KHR"; + vkCmdPushDescriptorSet.p = (PFN_vkCmdPushDescriptorSet)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushDescriptorSet"); + vkCmdPushDescriptorSet.name = "vkCmdPushDescriptorSet"; + vkCmdPushDescriptorSet2.p = (PFN_vkCmdPushDescriptorSet2)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushDescriptorSet2"); + vkCmdPushDescriptorSet2.name = "vkCmdPushDescriptorSet2"; + vkCmdPushDescriptorSet2KHR.p = (PFN_vkCmdPushDescriptorSet2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushDescriptorSet2KHR"); + vkCmdPushDescriptorSet2KHR.name = "vkCmdPushDescriptorSet2KHR"; + vkCmdPushDescriptorSetKHR.p = (PFN_vkCmdPushDescriptorSetKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushDescriptorSetKHR"); + vkCmdPushDescriptorSetKHR.name = "vkCmdPushDescriptorSetKHR"; + vkCmdPushDescriptorSetWithTemplate.p = (PFN_vkCmdPushDescriptorSetWithTemplate)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushDescriptorSetWithTemplate"); + vkCmdPushDescriptorSetWithTemplate.name = "vkCmdPushDescriptorSetWithTemplate"; + vkCmdPushDescriptorSetWithTemplate2.p = (PFN_vkCmdPushDescriptorSetWithTemplate2)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushDescriptorSetWithTemplate2"); + vkCmdPushDescriptorSetWithTemplate2.name = "vkCmdPushDescriptorSetWithTemplate2"; + vkCmdPushDescriptorSetWithTemplate2KHR.p = (PFN_vkCmdPushDescriptorSetWithTemplate2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushDescriptorSetWithTemplate2KHR"); + vkCmdPushDescriptorSetWithTemplate2KHR.name = "vkCmdPushDescriptorSetWithTemplate2KHR"; + vkCmdPushDescriptorSetWithTemplateKHR.p = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdPushDescriptorSetWithTemplateKHR"); + vkCmdPushDescriptorSetWithTemplateKHR.name = "vkCmdPushDescriptorSetWithTemplateKHR"; + vkCmdResetEvent.p = (PFN_vkCmdResetEvent)vkGetInstanceProcAddr.p(nullptr, "vkCmdResetEvent"); + vkCmdResetEvent.name = "vkCmdResetEvent"; + vkCmdResetEvent2.p = (PFN_vkCmdResetEvent2)vkGetInstanceProcAddr.p(nullptr, "vkCmdResetEvent2"); + vkCmdResetEvent2.name = "vkCmdResetEvent2"; + vkCmdResetEvent2KHR.p = (PFN_vkCmdResetEvent2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdResetEvent2KHR"); + vkCmdResetEvent2KHR.name = "vkCmdResetEvent2KHR"; + vkCmdResetQueryPool.p = (PFN_vkCmdResetQueryPool)vkGetInstanceProcAddr.p(nullptr, "vkCmdResetQueryPool"); + vkCmdResetQueryPool.name = "vkCmdResetQueryPool"; + vkCmdResolveImage.p = (PFN_vkCmdResolveImage)vkGetInstanceProcAddr.p(nullptr, "vkCmdResolveImage"); + vkCmdResolveImage.name = "vkCmdResolveImage"; + vkCmdResolveImage2.p = (PFN_vkCmdResolveImage2)vkGetInstanceProcAddr.p(nullptr, "vkCmdResolveImage2"); + vkCmdResolveImage2.name = "vkCmdResolveImage2"; + vkCmdResolveImage2KHR.p = (PFN_vkCmdResolveImage2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdResolveImage2KHR"); + vkCmdResolveImage2KHR.name = "vkCmdResolveImage2KHR"; + vkCmdSetAlphaToCoverageEnableEXT.p = (PFN_vkCmdSetAlphaToCoverageEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetAlphaToCoverageEnableEXT"); + vkCmdSetAlphaToCoverageEnableEXT.name = "vkCmdSetAlphaToCoverageEnableEXT"; + vkCmdSetAlphaToOneEnableEXT.p = (PFN_vkCmdSetAlphaToOneEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetAlphaToOneEnableEXT"); + vkCmdSetAlphaToOneEnableEXT.name = "vkCmdSetAlphaToOneEnableEXT"; + vkCmdSetAttachmentFeedbackLoopEnableEXT.p = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetAttachmentFeedbackLoopEnableEXT"); + vkCmdSetAttachmentFeedbackLoopEnableEXT.name = "vkCmdSetAttachmentFeedbackLoopEnableEXT"; + vkCmdSetBlendConstants.p = (PFN_vkCmdSetBlendConstants)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetBlendConstants"); + vkCmdSetBlendConstants.name = "vkCmdSetBlendConstants"; + vkCmdSetCheckpointNV.p = (PFN_vkCmdSetCheckpointNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCheckpointNV"); + vkCmdSetCheckpointNV.name = "vkCmdSetCheckpointNV"; + vkCmdSetCoarseSampleOrderNV.p = (PFN_vkCmdSetCoarseSampleOrderNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCoarseSampleOrderNV"); + vkCmdSetCoarseSampleOrderNV.name = "vkCmdSetCoarseSampleOrderNV"; + vkCmdSetColorBlendAdvancedEXT.p = (PFN_vkCmdSetColorBlendAdvancedEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetColorBlendAdvancedEXT"); + vkCmdSetColorBlendAdvancedEXT.name = "vkCmdSetColorBlendAdvancedEXT"; + vkCmdSetColorBlendEnableEXT.p = (PFN_vkCmdSetColorBlendEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetColorBlendEnableEXT"); + vkCmdSetColorBlendEnableEXT.name = "vkCmdSetColorBlendEnableEXT"; + vkCmdSetColorBlendEquationEXT.p = (PFN_vkCmdSetColorBlendEquationEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetColorBlendEquationEXT"); + vkCmdSetColorBlendEquationEXT.name = "vkCmdSetColorBlendEquationEXT"; + vkCmdSetColorWriteEnableEXT.p = (PFN_vkCmdSetColorWriteEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetColorWriteEnableEXT"); + vkCmdSetColorWriteEnableEXT.name = "vkCmdSetColorWriteEnableEXT"; + vkCmdSetColorWriteMaskEXT.p = (PFN_vkCmdSetColorWriteMaskEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetColorWriteMaskEXT"); + vkCmdSetColorWriteMaskEXT.name = "vkCmdSetColorWriteMaskEXT"; + vkCmdSetConservativeRasterizationModeEXT.p = (PFN_vkCmdSetConservativeRasterizationModeEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetConservativeRasterizationModeEXT"); + vkCmdSetConservativeRasterizationModeEXT.name = "vkCmdSetConservativeRasterizationModeEXT"; + vkCmdSetCoverageModulationModeNV.p = (PFN_vkCmdSetCoverageModulationModeNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCoverageModulationModeNV"); + vkCmdSetCoverageModulationModeNV.name = "vkCmdSetCoverageModulationModeNV"; + vkCmdSetCoverageModulationTableEnableNV.p = (PFN_vkCmdSetCoverageModulationTableEnableNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCoverageModulationTableEnableNV"); + vkCmdSetCoverageModulationTableEnableNV.name = "vkCmdSetCoverageModulationTableEnableNV"; + vkCmdSetCoverageModulationTableNV.p = (PFN_vkCmdSetCoverageModulationTableNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCoverageModulationTableNV"); + vkCmdSetCoverageModulationTableNV.name = "vkCmdSetCoverageModulationTableNV"; + vkCmdSetCoverageReductionModeNV.p = (PFN_vkCmdSetCoverageReductionModeNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCoverageReductionModeNV"); + vkCmdSetCoverageReductionModeNV.name = "vkCmdSetCoverageReductionModeNV"; + vkCmdSetCoverageToColorEnableNV.p = (PFN_vkCmdSetCoverageToColorEnableNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCoverageToColorEnableNV"); + vkCmdSetCoverageToColorEnableNV.name = "vkCmdSetCoverageToColorEnableNV"; + vkCmdSetCoverageToColorLocationNV.p = (PFN_vkCmdSetCoverageToColorLocationNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCoverageToColorLocationNV"); + vkCmdSetCoverageToColorLocationNV.name = "vkCmdSetCoverageToColorLocationNV"; + vkCmdSetCullMode.p = (PFN_vkCmdSetCullMode)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCullMode"); + vkCmdSetCullMode.name = "vkCmdSetCullMode"; + vkCmdSetCullModeEXT.p = (PFN_vkCmdSetCullModeEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetCullModeEXT"); + vkCmdSetCullModeEXT.name = "vkCmdSetCullModeEXT"; + vkCmdSetDepthBias.p = (PFN_vkCmdSetDepthBias)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthBias"); + vkCmdSetDepthBias.name = "vkCmdSetDepthBias"; + vkCmdSetDepthBias2EXT.p = (PFN_vkCmdSetDepthBias2EXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthBias2EXT"); + vkCmdSetDepthBias2EXT.name = "vkCmdSetDepthBias2EXT"; + vkCmdSetDepthBiasEnable.p = (PFN_vkCmdSetDepthBiasEnable)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthBiasEnable"); + vkCmdSetDepthBiasEnable.name = "vkCmdSetDepthBiasEnable"; + vkCmdSetDepthBiasEnableEXT.p = (PFN_vkCmdSetDepthBiasEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthBiasEnableEXT"); + vkCmdSetDepthBiasEnableEXT.name = "vkCmdSetDepthBiasEnableEXT"; + vkCmdSetDepthBounds.p = (PFN_vkCmdSetDepthBounds)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthBounds"); + vkCmdSetDepthBounds.name = "vkCmdSetDepthBounds"; + vkCmdSetDepthBoundsTestEnable.p = (PFN_vkCmdSetDepthBoundsTestEnable)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthBoundsTestEnable"); + vkCmdSetDepthBoundsTestEnable.name = "vkCmdSetDepthBoundsTestEnable"; + vkCmdSetDepthBoundsTestEnableEXT.p = (PFN_vkCmdSetDepthBoundsTestEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthBoundsTestEnableEXT"); + vkCmdSetDepthBoundsTestEnableEXT.name = "vkCmdSetDepthBoundsTestEnableEXT"; + vkCmdSetDepthClampEnableEXT.p = (PFN_vkCmdSetDepthClampEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthClampEnableEXT"); + vkCmdSetDepthClampEnableEXT.name = "vkCmdSetDepthClampEnableEXT"; + vkCmdSetDepthClampRangeEXT.p = (PFN_vkCmdSetDepthClampRangeEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthClampRangeEXT"); + vkCmdSetDepthClampRangeEXT.name = "vkCmdSetDepthClampRangeEXT"; + vkCmdSetDepthClipEnableEXT.p = (PFN_vkCmdSetDepthClipEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthClipEnableEXT"); + vkCmdSetDepthClipEnableEXT.name = "vkCmdSetDepthClipEnableEXT"; + vkCmdSetDepthClipNegativeOneToOneEXT.p = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthClipNegativeOneToOneEXT"); + vkCmdSetDepthClipNegativeOneToOneEXT.name = "vkCmdSetDepthClipNegativeOneToOneEXT"; + vkCmdSetDepthCompareOp.p = (PFN_vkCmdSetDepthCompareOp)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthCompareOp"); + vkCmdSetDepthCompareOp.name = "vkCmdSetDepthCompareOp"; + vkCmdSetDepthCompareOpEXT.p = (PFN_vkCmdSetDepthCompareOpEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthCompareOpEXT"); + vkCmdSetDepthCompareOpEXT.name = "vkCmdSetDepthCompareOpEXT"; + vkCmdSetDepthTestEnable.p = (PFN_vkCmdSetDepthTestEnable)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthTestEnable"); + vkCmdSetDepthTestEnable.name = "vkCmdSetDepthTestEnable"; + vkCmdSetDepthTestEnableEXT.p = (PFN_vkCmdSetDepthTestEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthTestEnableEXT"); + vkCmdSetDepthTestEnableEXT.name = "vkCmdSetDepthTestEnableEXT"; + vkCmdSetDepthWriteEnable.p = (PFN_vkCmdSetDepthWriteEnable)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthWriteEnable"); + vkCmdSetDepthWriteEnable.name = "vkCmdSetDepthWriteEnable"; + vkCmdSetDepthWriteEnableEXT.p = (PFN_vkCmdSetDepthWriteEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDepthWriteEnableEXT"); + vkCmdSetDepthWriteEnableEXT.name = "vkCmdSetDepthWriteEnableEXT"; + vkCmdSetDescriptorBufferOffsets2EXT.p = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDescriptorBufferOffsets2EXT"); + vkCmdSetDescriptorBufferOffsets2EXT.name = "vkCmdSetDescriptorBufferOffsets2EXT"; + vkCmdSetDescriptorBufferOffsetsEXT.p = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDescriptorBufferOffsetsEXT"); + vkCmdSetDescriptorBufferOffsetsEXT.name = "vkCmdSetDescriptorBufferOffsetsEXT"; + vkCmdSetDeviceMask.p = (PFN_vkCmdSetDeviceMask)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDeviceMask"); + vkCmdSetDeviceMask.name = "vkCmdSetDeviceMask"; + vkCmdSetDeviceMaskKHR.p = (PFN_vkCmdSetDeviceMaskKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDeviceMaskKHR"); + vkCmdSetDeviceMaskKHR.name = "vkCmdSetDeviceMaskKHR"; + vkCmdSetDiscardRectangleEnableEXT.p = (PFN_vkCmdSetDiscardRectangleEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDiscardRectangleEnableEXT"); + vkCmdSetDiscardRectangleEnableEXT.name = "vkCmdSetDiscardRectangleEnableEXT"; + vkCmdSetDiscardRectangleEXT.p = (PFN_vkCmdSetDiscardRectangleEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDiscardRectangleEXT"); + vkCmdSetDiscardRectangleEXT.name = "vkCmdSetDiscardRectangleEXT"; + vkCmdSetDiscardRectangleModeEXT.p = (PFN_vkCmdSetDiscardRectangleModeEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetDiscardRectangleModeEXT"); + vkCmdSetDiscardRectangleModeEXT.name = "vkCmdSetDiscardRectangleModeEXT"; + vkCmdSetEvent.p = (PFN_vkCmdSetEvent)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetEvent"); + vkCmdSetEvent.name = "vkCmdSetEvent"; + vkCmdSetEvent2.p = (PFN_vkCmdSetEvent2)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetEvent2"); + vkCmdSetEvent2.name = "vkCmdSetEvent2"; + vkCmdSetEvent2KHR.p = (PFN_vkCmdSetEvent2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetEvent2KHR"); + vkCmdSetEvent2KHR.name = "vkCmdSetEvent2KHR"; + vkCmdSetExclusiveScissorEnableNV.p = (PFN_vkCmdSetExclusiveScissorEnableNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetExclusiveScissorEnableNV"); + vkCmdSetExclusiveScissorEnableNV.name = "vkCmdSetExclusiveScissorEnableNV"; + vkCmdSetExclusiveScissorNV.p = (PFN_vkCmdSetExclusiveScissorNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetExclusiveScissorNV"); + vkCmdSetExclusiveScissorNV.name = "vkCmdSetExclusiveScissorNV"; + vkCmdSetExtraPrimitiveOverestimationSizeEXT.p = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetExtraPrimitiveOverestimationSizeEXT"); + vkCmdSetExtraPrimitiveOverestimationSizeEXT.name = "vkCmdSetExtraPrimitiveOverestimationSizeEXT"; + vkCmdSetFragmentShadingRateEnumNV.p = (PFN_vkCmdSetFragmentShadingRateEnumNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetFragmentShadingRateEnumNV"); + vkCmdSetFragmentShadingRateEnumNV.name = "vkCmdSetFragmentShadingRateEnumNV"; + vkCmdSetFragmentShadingRateKHR.p = (PFN_vkCmdSetFragmentShadingRateKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetFragmentShadingRateKHR"); + vkCmdSetFragmentShadingRateKHR.name = "vkCmdSetFragmentShadingRateKHR"; + vkCmdSetFrontFace.p = (PFN_vkCmdSetFrontFace)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetFrontFace"); + vkCmdSetFrontFace.name = "vkCmdSetFrontFace"; + vkCmdSetFrontFaceEXT.p = (PFN_vkCmdSetFrontFaceEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetFrontFaceEXT"); + vkCmdSetFrontFaceEXT.name = "vkCmdSetFrontFaceEXT"; + vkCmdSetLineRasterizationModeEXT.p = (PFN_vkCmdSetLineRasterizationModeEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetLineRasterizationModeEXT"); + vkCmdSetLineRasterizationModeEXT.name = "vkCmdSetLineRasterizationModeEXT"; + vkCmdSetLineStipple.p = (PFN_vkCmdSetLineStipple)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetLineStipple"); + vkCmdSetLineStipple.name = "vkCmdSetLineStipple"; + vkCmdSetLineStippleEnableEXT.p = (PFN_vkCmdSetLineStippleEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetLineStippleEnableEXT"); + vkCmdSetLineStippleEnableEXT.name = "vkCmdSetLineStippleEnableEXT"; + vkCmdSetLineStippleEXT.p = (PFN_vkCmdSetLineStippleEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetLineStippleEXT"); + vkCmdSetLineStippleEXT.name = "vkCmdSetLineStippleEXT"; + vkCmdSetLineStippleKHR.p = (PFN_vkCmdSetLineStippleKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetLineStippleKHR"); + vkCmdSetLineStippleKHR.name = "vkCmdSetLineStippleKHR"; + vkCmdSetLineWidth.p = (PFN_vkCmdSetLineWidth)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetLineWidth"); + vkCmdSetLineWidth.name = "vkCmdSetLineWidth"; + vkCmdSetLogicOpEnableEXT.p = (PFN_vkCmdSetLogicOpEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetLogicOpEnableEXT"); + vkCmdSetLogicOpEnableEXT.name = "vkCmdSetLogicOpEnableEXT"; + vkCmdSetLogicOpEXT.p = (PFN_vkCmdSetLogicOpEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetLogicOpEXT"); + vkCmdSetLogicOpEXT.name = "vkCmdSetLogicOpEXT"; + vkCmdSetPatchControlPointsEXT.p = (PFN_vkCmdSetPatchControlPointsEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPatchControlPointsEXT"); + vkCmdSetPatchControlPointsEXT.name = "vkCmdSetPatchControlPointsEXT"; + vkCmdSetPerformanceMarkerINTEL.p = (PFN_vkCmdSetPerformanceMarkerINTEL)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPerformanceMarkerINTEL"); + vkCmdSetPerformanceMarkerINTEL.name = "vkCmdSetPerformanceMarkerINTEL"; + vkCmdSetPerformanceOverrideINTEL.p = (PFN_vkCmdSetPerformanceOverrideINTEL)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPerformanceOverrideINTEL"); + vkCmdSetPerformanceOverrideINTEL.name = "vkCmdSetPerformanceOverrideINTEL"; + vkCmdSetPerformanceStreamMarkerINTEL.p = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPerformanceStreamMarkerINTEL"); + vkCmdSetPerformanceStreamMarkerINTEL.name = "vkCmdSetPerformanceStreamMarkerINTEL"; + vkCmdSetPolygonModeEXT.p = (PFN_vkCmdSetPolygonModeEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPolygonModeEXT"); + vkCmdSetPolygonModeEXT.name = "vkCmdSetPolygonModeEXT"; + vkCmdSetPrimitiveRestartEnable.p = (PFN_vkCmdSetPrimitiveRestartEnable)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPrimitiveRestartEnable"); + vkCmdSetPrimitiveRestartEnable.name = "vkCmdSetPrimitiveRestartEnable"; + vkCmdSetPrimitiveRestartEnableEXT.p = (PFN_vkCmdSetPrimitiveRestartEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPrimitiveRestartEnableEXT"); + vkCmdSetPrimitiveRestartEnableEXT.name = "vkCmdSetPrimitiveRestartEnableEXT"; + vkCmdSetPrimitiveTopology.p = (PFN_vkCmdSetPrimitiveTopology)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPrimitiveTopology"); + vkCmdSetPrimitiveTopology.name = "vkCmdSetPrimitiveTopology"; + vkCmdSetPrimitiveTopologyEXT.p = (PFN_vkCmdSetPrimitiveTopologyEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetPrimitiveTopologyEXT"); + vkCmdSetPrimitiveTopologyEXT.name = "vkCmdSetPrimitiveTopologyEXT"; + vkCmdSetProvokingVertexModeEXT.p = (PFN_vkCmdSetProvokingVertexModeEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetProvokingVertexModeEXT"); + vkCmdSetProvokingVertexModeEXT.name = "vkCmdSetProvokingVertexModeEXT"; + vkCmdSetRasterizationSamplesEXT.p = (PFN_vkCmdSetRasterizationSamplesEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRasterizationSamplesEXT"); + vkCmdSetRasterizationSamplesEXT.name = "vkCmdSetRasterizationSamplesEXT"; + vkCmdSetRasterizationStreamEXT.p = (PFN_vkCmdSetRasterizationStreamEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRasterizationStreamEXT"); + vkCmdSetRasterizationStreamEXT.name = "vkCmdSetRasterizationStreamEXT"; + vkCmdSetRasterizerDiscardEnable.p = (PFN_vkCmdSetRasterizerDiscardEnable)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRasterizerDiscardEnable"); + vkCmdSetRasterizerDiscardEnable.name = "vkCmdSetRasterizerDiscardEnable"; + vkCmdSetRasterizerDiscardEnableEXT.p = (PFN_vkCmdSetRasterizerDiscardEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRasterizerDiscardEnableEXT"); + vkCmdSetRasterizerDiscardEnableEXT.name = "vkCmdSetRasterizerDiscardEnableEXT"; + vkCmdSetRayTracingPipelineStackSizeKHR.p = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRayTracingPipelineStackSizeKHR"); + vkCmdSetRayTracingPipelineStackSizeKHR.name = "vkCmdSetRayTracingPipelineStackSizeKHR"; + vkCmdSetRenderingAttachmentLocations.p = (PFN_vkCmdSetRenderingAttachmentLocations)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRenderingAttachmentLocations"); + vkCmdSetRenderingAttachmentLocations.name = "vkCmdSetRenderingAttachmentLocations"; + vkCmdSetRenderingAttachmentLocationsKHR.p = (PFN_vkCmdSetRenderingAttachmentLocationsKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRenderingAttachmentLocationsKHR"); + vkCmdSetRenderingAttachmentLocationsKHR.name = "vkCmdSetRenderingAttachmentLocationsKHR"; + vkCmdSetRenderingInputAttachmentIndices.p = (PFN_vkCmdSetRenderingInputAttachmentIndices)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRenderingInputAttachmentIndices"); + vkCmdSetRenderingInputAttachmentIndices.name = "vkCmdSetRenderingInputAttachmentIndices"; + vkCmdSetRenderingInputAttachmentIndicesKHR.p = (PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRenderingInputAttachmentIndicesKHR"); + vkCmdSetRenderingInputAttachmentIndicesKHR.name = "vkCmdSetRenderingInputAttachmentIndicesKHR"; + vkCmdSetRepresentativeFragmentTestEnableNV.p = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetRepresentativeFragmentTestEnableNV"); + vkCmdSetRepresentativeFragmentTestEnableNV.name = "vkCmdSetRepresentativeFragmentTestEnableNV"; + vkCmdSetSampleLocationsEnableEXT.p = (PFN_vkCmdSetSampleLocationsEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetSampleLocationsEnableEXT"); + vkCmdSetSampleLocationsEnableEXT.name = "vkCmdSetSampleLocationsEnableEXT"; + vkCmdSetSampleLocationsEXT.p = (PFN_vkCmdSetSampleLocationsEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetSampleLocationsEXT"); + vkCmdSetSampleLocationsEXT.name = "vkCmdSetSampleLocationsEXT"; + vkCmdSetSampleMaskEXT.p = (PFN_vkCmdSetSampleMaskEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetSampleMaskEXT"); + vkCmdSetSampleMaskEXT.name = "vkCmdSetSampleMaskEXT"; + vkCmdSetScissor.p = (PFN_vkCmdSetScissor)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetScissor"); + vkCmdSetScissor.name = "vkCmdSetScissor"; + vkCmdSetScissorWithCount.p = (PFN_vkCmdSetScissorWithCount)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetScissorWithCount"); + vkCmdSetScissorWithCount.name = "vkCmdSetScissorWithCount"; + vkCmdSetScissorWithCountEXT.p = (PFN_vkCmdSetScissorWithCountEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetScissorWithCountEXT"); + vkCmdSetScissorWithCountEXT.name = "vkCmdSetScissorWithCountEXT"; + vkCmdSetShadingRateImageEnableNV.p = (PFN_vkCmdSetShadingRateImageEnableNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetShadingRateImageEnableNV"); + vkCmdSetShadingRateImageEnableNV.name = "vkCmdSetShadingRateImageEnableNV"; + vkCmdSetStencilCompareMask.p = (PFN_vkCmdSetStencilCompareMask)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetStencilCompareMask"); + vkCmdSetStencilCompareMask.name = "vkCmdSetStencilCompareMask"; + vkCmdSetStencilOp.p = (PFN_vkCmdSetStencilOp)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetStencilOp"); + vkCmdSetStencilOp.name = "vkCmdSetStencilOp"; + vkCmdSetStencilOpEXT.p = (PFN_vkCmdSetStencilOpEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetStencilOpEXT"); + vkCmdSetStencilOpEXT.name = "vkCmdSetStencilOpEXT"; + vkCmdSetStencilReference.p = (PFN_vkCmdSetStencilReference)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetStencilReference"); + vkCmdSetStencilReference.name = "vkCmdSetStencilReference"; + vkCmdSetStencilTestEnable.p = (PFN_vkCmdSetStencilTestEnable)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetStencilTestEnable"); + vkCmdSetStencilTestEnable.name = "vkCmdSetStencilTestEnable"; + vkCmdSetStencilTestEnableEXT.p = (PFN_vkCmdSetStencilTestEnableEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetStencilTestEnableEXT"); + vkCmdSetStencilTestEnableEXT.name = "vkCmdSetStencilTestEnableEXT"; + vkCmdSetStencilWriteMask.p = (PFN_vkCmdSetStencilWriteMask)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetStencilWriteMask"); + vkCmdSetStencilWriteMask.name = "vkCmdSetStencilWriteMask"; + vkCmdSetTessellationDomainOriginEXT.p = (PFN_vkCmdSetTessellationDomainOriginEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetTessellationDomainOriginEXT"); + vkCmdSetTessellationDomainOriginEXT.name = "vkCmdSetTessellationDomainOriginEXT"; + vkCmdSetVertexInputEXT.p = (PFN_vkCmdSetVertexInputEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetVertexInputEXT"); + vkCmdSetVertexInputEXT.name = "vkCmdSetVertexInputEXT"; + vkCmdSetViewport.p = (PFN_vkCmdSetViewport)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetViewport"); + vkCmdSetViewport.name = "vkCmdSetViewport"; + vkCmdSetViewportShadingRatePaletteNV.p = (PFN_vkCmdSetViewportShadingRatePaletteNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetViewportShadingRatePaletteNV"); + vkCmdSetViewportShadingRatePaletteNV.name = "vkCmdSetViewportShadingRatePaletteNV"; + vkCmdSetViewportSwizzleNV.p = (PFN_vkCmdSetViewportSwizzleNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetViewportSwizzleNV"); + vkCmdSetViewportSwizzleNV.name = "vkCmdSetViewportSwizzleNV"; + vkCmdSetViewportWithCount.p = (PFN_vkCmdSetViewportWithCount)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetViewportWithCount"); + vkCmdSetViewportWithCount.name = "vkCmdSetViewportWithCount"; + vkCmdSetViewportWithCountEXT.p = (PFN_vkCmdSetViewportWithCountEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetViewportWithCountEXT"); + vkCmdSetViewportWithCountEXT.name = "vkCmdSetViewportWithCountEXT"; + vkCmdSetViewportWScalingEnableNV.p = (PFN_vkCmdSetViewportWScalingEnableNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetViewportWScalingEnableNV"); + vkCmdSetViewportWScalingEnableNV.name = "vkCmdSetViewportWScalingEnableNV"; + vkCmdSetViewportWScalingNV.p = (PFN_vkCmdSetViewportWScalingNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdSetViewportWScalingNV"); + vkCmdSetViewportWScalingNV.name = "vkCmdSetViewportWScalingNV"; + vkCmdSubpassShadingHUAWEI.p = (PFN_vkCmdSubpassShadingHUAWEI)vkGetInstanceProcAddr.p(nullptr, "vkCmdSubpassShadingHUAWEI"); + vkCmdSubpassShadingHUAWEI.name = "vkCmdSubpassShadingHUAWEI"; + vkCmdTraceRaysIndirect2KHR.p = (PFN_vkCmdTraceRaysIndirect2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdTraceRaysIndirect2KHR"); + vkCmdTraceRaysIndirect2KHR.name = "vkCmdTraceRaysIndirect2KHR"; + vkCmdTraceRaysIndirectKHR.p = (PFN_vkCmdTraceRaysIndirectKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdTraceRaysIndirectKHR"); + vkCmdTraceRaysIndirectKHR.name = "vkCmdTraceRaysIndirectKHR"; + vkCmdTraceRaysKHR.p = (PFN_vkCmdTraceRaysKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdTraceRaysKHR"); + vkCmdTraceRaysKHR.name = "vkCmdTraceRaysKHR"; + vkCmdTraceRaysNV.p = (PFN_vkCmdTraceRaysNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdTraceRaysNV"); + vkCmdTraceRaysNV.name = "vkCmdTraceRaysNV"; + vkCmdUpdateBuffer.p = (PFN_vkCmdUpdateBuffer)vkGetInstanceProcAddr.p(nullptr, "vkCmdUpdateBuffer"); + vkCmdUpdateBuffer.name = "vkCmdUpdateBuffer"; + vkCmdUpdatePipelineIndirectBufferNV.p = (PFN_vkCmdUpdatePipelineIndirectBufferNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdUpdatePipelineIndirectBufferNV"); + vkCmdUpdatePipelineIndirectBufferNV.name = "vkCmdUpdatePipelineIndirectBufferNV"; + vkCmdWaitEvents.p = (PFN_vkCmdWaitEvents)vkGetInstanceProcAddr.p(nullptr, "vkCmdWaitEvents"); + vkCmdWaitEvents.name = "vkCmdWaitEvents"; + vkCmdWaitEvents2.p = (PFN_vkCmdWaitEvents2)vkGetInstanceProcAddr.p(nullptr, "vkCmdWaitEvents2"); + vkCmdWaitEvents2.name = "vkCmdWaitEvents2"; + vkCmdWaitEvents2KHR.p = (PFN_vkCmdWaitEvents2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdWaitEvents2KHR"); + vkCmdWaitEvents2KHR.name = "vkCmdWaitEvents2KHR"; + vkCmdWriteAccelerationStructuresPropertiesKHR.p = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdWriteAccelerationStructuresPropertiesKHR"); + vkCmdWriteAccelerationStructuresPropertiesKHR.name = "vkCmdWriteAccelerationStructuresPropertiesKHR"; + vkCmdWriteAccelerationStructuresPropertiesNV.p = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)vkGetInstanceProcAddr.p(nullptr, "vkCmdWriteAccelerationStructuresPropertiesNV"); + vkCmdWriteAccelerationStructuresPropertiesNV.name = "vkCmdWriteAccelerationStructuresPropertiesNV"; + vkCmdWriteBufferMarker2AMD.p = (PFN_vkCmdWriteBufferMarker2AMD)vkGetInstanceProcAddr.p(nullptr, "vkCmdWriteBufferMarker2AMD"); + vkCmdWriteBufferMarker2AMD.name = "vkCmdWriteBufferMarker2AMD"; + vkCmdWriteBufferMarkerAMD.p = (PFN_vkCmdWriteBufferMarkerAMD)vkGetInstanceProcAddr.p(nullptr, "vkCmdWriteBufferMarkerAMD"); + vkCmdWriteBufferMarkerAMD.name = "vkCmdWriteBufferMarkerAMD"; + vkCmdWriteMicromapsPropertiesEXT.p = (PFN_vkCmdWriteMicromapsPropertiesEXT)vkGetInstanceProcAddr.p(nullptr, "vkCmdWriteMicromapsPropertiesEXT"); + vkCmdWriteMicromapsPropertiesEXT.name = "vkCmdWriteMicromapsPropertiesEXT"; + vkCmdWriteTimestamp.p = (PFN_vkCmdWriteTimestamp)vkGetInstanceProcAddr.p(nullptr, "vkCmdWriteTimestamp"); + vkCmdWriteTimestamp.name = "vkCmdWriteTimestamp"; + vkCmdWriteTimestamp2.p = (PFN_vkCmdWriteTimestamp2)vkGetInstanceProcAddr.p(nullptr, "vkCmdWriteTimestamp2"); + vkCmdWriteTimestamp2.name = "vkCmdWriteTimestamp2"; + vkCmdWriteTimestamp2KHR.p = (PFN_vkCmdWriteTimestamp2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCmdWriteTimestamp2KHR"); + vkCmdWriteTimestamp2KHR.name = "vkCmdWriteTimestamp2KHR"; + vkCompileDeferredNV.p = (PFN_vkCompileDeferredNV)vkGetInstanceProcAddr.p(nullptr, "vkCompileDeferredNV"); + vkCompileDeferredNV.name = "vkCompileDeferredNV"; + vkConvertCooperativeVectorMatrixNV.p = (PFN_vkConvertCooperativeVectorMatrixNV)vkGetInstanceProcAddr.p(nullptr, "vkConvertCooperativeVectorMatrixNV"); + vkConvertCooperativeVectorMatrixNV.name = "vkConvertCooperativeVectorMatrixNV"; + vkCopyAccelerationStructureKHR.p = (PFN_vkCopyAccelerationStructureKHR)vkGetInstanceProcAddr.p(nullptr, "vkCopyAccelerationStructureKHR"); + vkCopyAccelerationStructureKHR.name = "vkCopyAccelerationStructureKHR"; + vkCopyAccelerationStructureToMemoryKHR.p = (PFN_vkCopyAccelerationStructureToMemoryKHR)vkGetInstanceProcAddr.p(nullptr, "vkCopyAccelerationStructureToMemoryKHR"); + vkCopyAccelerationStructureToMemoryKHR.name = "vkCopyAccelerationStructureToMemoryKHR"; + vkCopyImageToImage.p = (PFN_vkCopyImageToImage)vkGetInstanceProcAddr.p(nullptr, "vkCopyImageToImage"); + vkCopyImageToImage.name = "vkCopyImageToImage"; + vkCopyImageToImageEXT.p = (PFN_vkCopyImageToImageEXT)vkGetInstanceProcAddr.p(nullptr, "vkCopyImageToImageEXT"); + vkCopyImageToImageEXT.name = "vkCopyImageToImageEXT"; + vkCopyImageToMemory.p = (PFN_vkCopyImageToMemory)vkGetInstanceProcAddr.p(nullptr, "vkCopyImageToMemory"); + vkCopyImageToMemory.name = "vkCopyImageToMemory"; + vkCopyImageToMemoryEXT.p = (PFN_vkCopyImageToMemoryEXT)vkGetInstanceProcAddr.p(nullptr, "vkCopyImageToMemoryEXT"); + vkCopyImageToMemoryEXT.name = "vkCopyImageToMemoryEXT"; + vkCopyMemoryToAccelerationStructureKHR.p = (PFN_vkCopyMemoryToAccelerationStructureKHR)vkGetInstanceProcAddr.p(nullptr, "vkCopyMemoryToAccelerationStructureKHR"); + vkCopyMemoryToAccelerationStructureKHR.name = "vkCopyMemoryToAccelerationStructureKHR"; + vkCopyMemoryToImage.p = (PFN_vkCopyMemoryToImage)vkGetInstanceProcAddr.p(nullptr, "vkCopyMemoryToImage"); + vkCopyMemoryToImage.name = "vkCopyMemoryToImage"; + vkCopyMemoryToImageEXT.p = (PFN_vkCopyMemoryToImageEXT)vkGetInstanceProcAddr.p(nullptr, "vkCopyMemoryToImageEXT"); + vkCopyMemoryToImageEXT.name = "vkCopyMemoryToImageEXT"; + vkCopyMemoryToMicromapEXT.p = (PFN_vkCopyMemoryToMicromapEXT)vkGetInstanceProcAddr.p(nullptr, "vkCopyMemoryToMicromapEXT"); + vkCopyMemoryToMicromapEXT.name = "vkCopyMemoryToMicromapEXT"; + vkCopyMicromapEXT.p = (PFN_vkCopyMicromapEXT)vkGetInstanceProcAddr.p(nullptr, "vkCopyMicromapEXT"); + vkCopyMicromapEXT.name = "vkCopyMicromapEXT"; + vkCopyMicromapToMemoryEXT.p = (PFN_vkCopyMicromapToMemoryEXT)vkGetInstanceProcAddr.p(nullptr, "vkCopyMicromapToMemoryEXT"); + vkCopyMicromapToMemoryEXT.name = "vkCopyMicromapToMemoryEXT"; + vkCreateAccelerationStructureKHR.p = (PFN_vkCreateAccelerationStructureKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateAccelerationStructureKHR"); + vkCreateAccelerationStructureKHR.name = "vkCreateAccelerationStructureKHR"; + vkCreateAccelerationStructureNV.p = (PFN_vkCreateAccelerationStructureNV)vkGetInstanceProcAddr.p(nullptr, "vkCreateAccelerationStructureNV"); + vkCreateAccelerationStructureNV.name = "vkCreateAccelerationStructureNV"; +#if defined(VK_USE_PLATFORM_ANDROID_KHR) + vkCreateAndroidSurfaceKHR.p = (PFN_vkCreateAndroidSurfaceKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateAndroidSurfaceKHR"); + vkCreateAndroidSurfaceKHR.name = "vkCreateAndroidSurfaceKHR"; +#endif + vkCreateBuffer.p = (PFN_vkCreateBuffer)vkGetInstanceProcAddr.p(nullptr, "vkCreateBuffer"); + vkCreateBuffer.name = "vkCreateBuffer"; +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkCreateBufferCollectionFUCHSIA.p = (PFN_vkCreateBufferCollectionFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkCreateBufferCollectionFUCHSIA"); + vkCreateBufferCollectionFUCHSIA.name = "vkCreateBufferCollectionFUCHSIA"; +#endif + vkCreateBufferView.p = (PFN_vkCreateBufferView)vkGetInstanceProcAddr.p(nullptr, "vkCreateBufferView"); + vkCreateBufferView.name = "vkCreateBufferView"; + vkCreateCommandPool.p = (PFN_vkCreateCommandPool)vkGetInstanceProcAddr.p(nullptr, "vkCreateCommandPool"); + vkCreateCommandPool.name = "vkCreateCommandPool"; + vkCreateComputePipelines.p = (PFN_vkCreateComputePipelines)vkGetInstanceProcAddr.p(nullptr, "vkCreateComputePipelines"); + vkCreateComputePipelines.name = "vkCreateComputePipelines"; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkCreateCudaFunctionNV.p = (PFN_vkCreateCudaFunctionNV)vkGetInstanceProcAddr.p(nullptr, "vkCreateCudaFunctionNV"); + vkCreateCudaFunctionNV.name = "vkCreateCudaFunctionNV"; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkCreateCudaModuleNV.p = (PFN_vkCreateCudaModuleNV)vkGetInstanceProcAddr.p(nullptr, "vkCreateCudaModuleNV"); + vkCreateCudaModuleNV.name = "vkCreateCudaModuleNV"; +#endif + vkCreateCuFunctionNVX.p = (PFN_vkCreateCuFunctionNVX)vkGetInstanceProcAddr.p(nullptr, "vkCreateCuFunctionNVX"); + vkCreateCuFunctionNVX.name = "vkCreateCuFunctionNVX"; + vkCreateCuModuleNVX.p = (PFN_vkCreateCuModuleNVX)vkGetInstanceProcAddr.p(nullptr, "vkCreateCuModuleNVX"); + vkCreateCuModuleNVX.name = "vkCreateCuModuleNVX"; + vkCreateDebugReportCallbackEXT.p = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateDebugReportCallbackEXT"); + vkCreateDebugReportCallbackEXT.name = "vkCreateDebugReportCallbackEXT"; + vkCreateDebugUtilsMessengerEXT.p = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateDebugUtilsMessengerEXT"); + vkCreateDebugUtilsMessengerEXT.name = "vkCreateDebugUtilsMessengerEXT"; + vkCreateDeferredOperationKHR.p = (PFN_vkCreateDeferredOperationKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateDeferredOperationKHR"); + vkCreateDeferredOperationKHR.name = "vkCreateDeferredOperationKHR"; + vkCreateDescriptorPool.p = (PFN_vkCreateDescriptorPool)vkGetInstanceProcAddr.p(nullptr, "vkCreateDescriptorPool"); + vkCreateDescriptorPool.name = "vkCreateDescriptorPool"; + vkCreateDescriptorSetLayout.p = (PFN_vkCreateDescriptorSetLayout)vkGetInstanceProcAddr.p(nullptr, "vkCreateDescriptorSetLayout"); + vkCreateDescriptorSetLayout.name = "vkCreateDescriptorSetLayout"; + vkCreateDescriptorUpdateTemplate.p = (PFN_vkCreateDescriptorUpdateTemplate)vkGetInstanceProcAddr.p(nullptr, "vkCreateDescriptorUpdateTemplate"); + vkCreateDescriptorUpdateTemplate.name = "vkCreateDescriptorUpdateTemplate"; + vkCreateDescriptorUpdateTemplateKHR.p = (PFN_vkCreateDescriptorUpdateTemplateKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateDescriptorUpdateTemplateKHR"); + vkCreateDescriptorUpdateTemplateKHR.name = "vkCreateDescriptorUpdateTemplateKHR"; + vkCreateDevice.p = (PFN_vkCreateDevice)vkGetInstanceProcAddr.p(nullptr, "vkCreateDevice"); + vkCreateDevice.name = "vkCreateDevice"; +#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) + vkCreateDirectFBSurfaceEXT.p = (PFN_vkCreateDirectFBSurfaceEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateDirectFBSurfaceEXT"); + vkCreateDirectFBSurfaceEXT.name = "vkCreateDirectFBSurfaceEXT"; +#endif + vkCreateDisplayModeKHR.p = (PFN_vkCreateDisplayModeKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateDisplayModeKHR"); + vkCreateDisplayModeKHR.name = "vkCreateDisplayModeKHR"; + vkCreateDisplayPlaneSurfaceKHR.p = (PFN_vkCreateDisplayPlaneSurfaceKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateDisplayPlaneSurfaceKHR"); + vkCreateDisplayPlaneSurfaceKHR.name = "vkCreateDisplayPlaneSurfaceKHR"; + vkCreateEvent.p = (PFN_vkCreateEvent)vkGetInstanceProcAddr.p(nullptr, "vkCreateEvent"); + vkCreateEvent.name = "vkCreateEvent"; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkCreateExecutionGraphPipelinesAMDX.p = (PFN_vkCreateExecutionGraphPipelinesAMDX)vkGetInstanceProcAddr.p(nullptr, "vkCreateExecutionGraphPipelinesAMDX"); + vkCreateExecutionGraphPipelinesAMDX.name = "vkCreateExecutionGraphPipelinesAMDX"; +#endif + vkCreateExternalComputeQueueNV.p = (PFN_vkCreateExternalComputeQueueNV)vkGetInstanceProcAddr.p(nullptr, "vkCreateExternalComputeQueueNV"); + vkCreateExternalComputeQueueNV.name = "vkCreateExternalComputeQueueNV"; + vkCreateFence.p = (PFN_vkCreateFence)vkGetInstanceProcAddr.p(nullptr, "vkCreateFence"); + vkCreateFence.name = "vkCreateFence"; + vkCreateFramebuffer.p = (PFN_vkCreateFramebuffer)vkGetInstanceProcAddr.p(nullptr, "vkCreateFramebuffer"); + vkCreateFramebuffer.name = "vkCreateFramebuffer"; + vkCreateGraphicsPipelines.p = (PFN_vkCreateGraphicsPipelines)vkGetInstanceProcAddr.p(nullptr, "vkCreateGraphicsPipelines"); + vkCreateGraphicsPipelines.name = "vkCreateGraphicsPipelines"; + vkCreateHeadlessSurfaceEXT.p = (PFN_vkCreateHeadlessSurfaceEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateHeadlessSurfaceEXT"); + vkCreateHeadlessSurfaceEXT.name = "vkCreateHeadlessSurfaceEXT"; + vkCreateImage.p = (PFN_vkCreateImage)vkGetInstanceProcAddr.p(nullptr, "vkCreateImage"); + vkCreateImage.name = "vkCreateImage"; +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkCreateImagePipeSurfaceFUCHSIA.p = (PFN_vkCreateImagePipeSurfaceFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkCreateImagePipeSurfaceFUCHSIA"); + vkCreateImagePipeSurfaceFUCHSIA.name = "vkCreateImagePipeSurfaceFUCHSIA"; +#endif + vkCreateImageView.p = (PFN_vkCreateImageView)vkGetInstanceProcAddr.p(nullptr, "vkCreateImageView"); + vkCreateImageView.name = "vkCreateImageView"; + vkCreateIndirectCommandsLayoutEXT.p = (PFN_vkCreateIndirectCommandsLayoutEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateIndirectCommandsLayoutEXT"); + vkCreateIndirectCommandsLayoutEXT.name = "vkCreateIndirectCommandsLayoutEXT"; + vkCreateIndirectCommandsLayoutNV.p = (PFN_vkCreateIndirectCommandsLayoutNV)vkGetInstanceProcAddr.p(nullptr, "vkCreateIndirectCommandsLayoutNV"); + vkCreateIndirectCommandsLayoutNV.name = "vkCreateIndirectCommandsLayoutNV"; + vkCreateIndirectExecutionSetEXT.p = (PFN_vkCreateIndirectExecutionSetEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateIndirectExecutionSetEXT"); + vkCreateIndirectExecutionSetEXT.name = "vkCreateIndirectExecutionSetEXT"; + vkCreateInstance.p = (PFN_vkCreateInstance)vkGetInstanceProcAddr.p(nullptr, "vkCreateInstance"); + vkCreateInstance.name = "vkCreateInstance"; +#if defined(VK_USE_PLATFORM_IOS_MVK) + vkCreateIOSSurfaceMVK.p = (PFN_vkCreateIOSSurfaceMVK)vkGetInstanceProcAddr.p(nullptr, "vkCreateIOSSurfaceMVK"); + vkCreateIOSSurfaceMVK.name = "vkCreateIOSSurfaceMVK"; +#endif +#if defined(VK_USE_PLATFORM_MACOS_MVK) + vkCreateMacOSSurfaceMVK.p = (PFN_vkCreateMacOSSurfaceMVK)vkGetInstanceProcAddr.p(nullptr, "vkCreateMacOSSurfaceMVK"); + vkCreateMacOSSurfaceMVK.name = "vkCreateMacOSSurfaceMVK"; +#endif +#if defined(VK_USE_PLATFORM_METAL_EXT) + vkCreateMetalSurfaceEXT.p = (PFN_vkCreateMetalSurfaceEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateMetalSurfaceEXT"); + vkCreateMetalSurfaceEXT.name = "vkCreateMetalSurfaceEXT"; +#endif + vkCreateMicromapEXT.p = (PFN_vkCreateMicromapEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateMicromapEXT"); + vkCreateMicromapEXT.name = "vkCreateMicromapEXT"; + vkCreateOpticalFlowSessionNV.p = (PFN_vkCreateOpticalFlowSessionNV)vkGetInstanceProcAddr.p(nullptr, "vkCreateOpticalFlowSessionNV"); + vkCreateOpticalFlowSessionNV.name = "vkCreateOpticalFlowSessionNV"; + vkCreatePipelineBinariesKHR.p = (PFN_vkCreatePipelineBinariesKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreatePipelineBinariesKHR"); + vkCreatePipelineBinariesKHR.name = "vkCreatePipelineBinariesKHR"; + vkCreatePipelineCache.p = (PFN_vkCreatePipelineCache)vkGetInstanceProcAddr.p(nullptr, "vkCreatePipelineCache"); + vkCreatePipelineCache.name = "vkCreatePipelineCache"; + vkCreatePipelineLayout.p = (PFN_vkCreatePipelineLayout)vkGetInstanceProcAddr.p(nullptr, "vkCreatePipelineLayout"); + vkCreatePipelineLayout.name = "vkCreatePipelineLayout"; + vkCreatePrivateDataSlot.p = (PFN_vkCreatePrivateDataSlot)vkGetInstanceProcAddr.p(nullptr, "vkCreatePrivateDataSlot"); + vkCreatePrivateDataSlot.name = "vkCreatePrivateDataSlot"; + vkCreatePrivateDataSlotEXT.p = (PFN_vkCreatePrivateDataSlotEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreatePrivateDataSlotEXT"); + vkCreatePrivateDataSlotEXT.name = "vkCreatePrivateDataSlotEXT"; + vkCreateQueryPool.p = (PFN_vkCreateQueryPool)vkGetInstanceProcAddr.p(nullptr, "vkCreateQueryPool"); + vkCreateQueryPool.name = "vkCreateQueryPool"; + vkCreateRayTracingPipelinesKHR.p = (PFN_vkCreateRayTracingPipelinesKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateRayTracingPipelinesKHR"); + vkCreateRayTracingPipelinesKHR.name = "vkCreateRayTracingPipelinesKHR"; + vkCreateRayTracingPipelinesNV.p = (PFN_vkCreateRayTracingPipelinesNV)vkGetInstanceProcAddr.p(nullptr, "vkCreateRayTracingPipelinesNV"); + vkCreateRayTracingPipelinesNV.name = "vkCreateRayTracingPipelinesNV"; + vkCreateRenderPass.p = (PFN_vkCreateRenderPass)vkGetInstanceProcAddr.p(nullptr, "vkCreateRenderPass"); + vkCreateRenderPass.name = "vkCreateRenderPass"; + vkCreateRenderPass2.p = (PFN_vkCreateRenderPass2)vkGetInstanceProcAddr.p(nullptr, "vkCreateRenderPass2"); + vkCreateRenderPass2.name = "vkCreateRenderPass2"; + vkCreateRenderPass2KHR.p = (PFN_vkCreateRenderPass2KHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateRenderPass2KHR"); + vkCreateRenderPass2KHR.name = "vkCreateRenderPass2KHR"; + vkCreateSampler.p = (PFN_vkCreateSampler)vkGetInstanceProcAddr.p(nullptr, "vkCreateSampler"); + vkCreateSampler.name = "vkCreateSampler"; + vkCreateSamplerYcbcrConversion.p = (PFN_vkCreateSamplerYcbcrConversion)vkGetInstanceProcAddr.p(nullptr, "vkCreateSamplerYcbcrConversion"); + vkCreateSamplerYcbcrConversion.name = "vkCreateSamplerYcbcrConversion"; + vkCreateSamplerYcbcrConversionKHR.p = (PFN_vkCreateSamplerYcbcrConversionKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateSamplerYcbcrConversionKHR"); + vkCreateSamplerYcbcrConversionKHR.name = "vkCreateSamplerYcbcrConversionKHR"; +#if defined(VK_USE_PLATFORM_SCREEN_QNX) + vkCreateScreenSurfaceQNX.p = (PFN_vkCreateScreenSurfaceQNX)vkGetInstanceProcAddr.p(nullptr, "vkCreateScreenSurfaceQNX"); + vkCreateScreenSurfaceQNX.name = "vkCreateScreenSurfaceQNX"; +#endif + vkCreateSemaphore.p = (PFN_vkCreateSemaphore)vkGetInstanceProcAddr.p(nullptr, "vkCreateSemaphore"); + vkCreateSemaphore.name = "vkCreateSemaphore"; + vkCreateShaderModule.p = (PFN_vkCreateShaderModule)vkGetInstanceProcAddr.p(nullptr, "vkCreateShaderModule"); + vkCreateShaderModule.name = "vkCreateShaderModule"; + vkCreateShadersEXT.p = (PFN_vkCreateShadersEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateShadersEXT"); + vkCreateShadersEXT.name = "vkCreateShadersEXT"; + vkCreateSharedSwapchainsKHR.p = (PFN_vkCreateSharedSwapchainsKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateSharedSwapchainsKHR"); + vkCreateSharedSwapchainsKHR.name = "vkCreateSharedSwapchainsKHR"; +#if defined(VK_USE_PLATFORM_GGP) + vkCreateStreamDescriptorSurfaceGGP.p = (PFN_vkCreateStreamDescriptorSurfaceGGP)vkGetInstanceProcAddr.p(nullptr, "vkCreateStreamDescriptorSurfaceGGP"); + vkCreateStreamDescriptorSurfaceGGP.name = "vkCreateStreamDescriptorSurfaceGGP"; +#endif + vkCreateSwapchainKHR.p = (PFN_vkCreateSwapchainKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateSwapchainKHR"); + vkCreateSwapchainKHR.name = "vkCreateSwapchainKHR"; + vkCreateValidationCacheEXT.p = (PFN_vkCreateValidationCacheEXT)vkGetInstanceProcAddr.p(nullptr, "vkCreateValidationCacheEXT"); + vkCreateValidationCacheEXT.name = "vkCreateValidationCacheEXT"; + vkCreateVideoSessionKHR.p = (PFN_vkCreateVideoSessionKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateVideoSessionKHR"); + vkCreateVideoSessionKHR.name = "vkCreateVideoSessionKHR"; + vkCreateVideoSessionParametersKHR.p = (PFN_vkCreateVideoSessionParametersKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateVideoSessionParametersKHR"); + vkCreateVideoSessionParametersKHR.name = "vkCreateVideoSessionParametersKHR"; +#if defined(VK_USE_PLATFORM_VI_NN) + vkCreateViSurfaceNN.p = (PFN_vkCreateViSurfaceNN)vkGetInstanceProcAddr.p(nullptr, "vkCreateViSurfaceNN"); + vkCreateViSurfaceNN.name = "vkCreateViSurfaceNN"; +#endif +#if defined(VK_USE_PLATFORM_WAYLAND_KHR) + vkCreateWaylandSurfaceKHR.p = (PFN_vkCreateWaylandSurfaceKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateWaylandSurfaceKHR"); + vkCreateWaylandSurfaceKHR.name = "vkCreateWaylandSurfaceKHR"; +#endif +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkCreateWin32SurfaceKHR.p = (PFN_vkCreateWin32SurfaceKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateWin32SurfaceKHR"); + vkCreateWin32SurfaceKHR.name = "vkCreateWin32SurfaceKHR"; +#endif +#if defined(VK_USE_PLATFORM_XCB_KHR) + vkCreateXcbSurfaceKHR.p = (PFN_vkCreateXcbSurfaceKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateXcbSurfaceKHR"); + vkCreateXcbSurfaceKHR.name = "vkCreateXcbSurfaceKHR"; +#endif +#if defined(VK_USE_PLATFORM_XLIB_KHR) + vkCreateXlibSurfaceKHR.p = (PFN_vkCreateXlibSurfaceKHR)vkGetInstanceProcAddr.p(nullptr, "vkCreateXlibSurfaceKHR"); + vkCreateXlibSurfaceKHR.name = "vkCreateXlibSurfaceKHR"; +#endif + vkDebugMarkerSetObjectNameEXT.p = (PFN_vkDebugMarkerSetObjectNameEXT)vkGetInstanceProcAddr.p(nullptr, "vkDebugMarkerSetObjectNameEXT"); + vkDebugMarkerSetObjectNameEXT.name = "vkDebugMarkerSetObjectNameEXT"; + vkDebugMarkerSetObjectTagEXT.p = (PFN_vkDebugMarkerSetObjectTagEXT)vkGetInstanceProcAddr.p(nullptr, "vkDebugMarkerSetObjectTagEXT"); + vkDebugMarkerSetObjectTagEXT.name = "vkDebugMarkerSetObjectTagEXT"; + vkDebugReportMessageEXT.p = (PFN_vkDebugReportMessageEXT)vkGetInstanceProcAddr.p(nullptr, "vkDebugReportMessageEXT"); + vkDebugReportMessageEXT.name = "vkDebugReportMessageEXT"; + vkDeferredOperationJoinKHR.p = (PFN_vkDeferredOperationJoinKHR)vkGetInstanceProcAddr.p(nullptr, "vkDeferredOperationJoinKHR"); + vkDeferredOperationJoinKHR.name = "vkDeferredOperationJoinKHR"; + vkDestroyAccelerationStructureKHR.p = (PFN_vkDestroyAccelerationStructureKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroyAccelerationStructureKHR"); + vkDestroyAccelerationStructureKHR.name = "vkDestroyAccelerationStructureKHR"; + vkDestroyAccelerationStructureNV.p = (PFN_vkDestroyAccelerationStructureNV)vkGetInstanceProcAddr.p(nullptr, "vkDestroyAccelerationStructureNV"); + vkDestroyAccelerationStructureNV.name = "vkDestroyAccelerationStructureNV"; + vkDestroyBuffer.p = (PFN_vkDestroyBuffer)vkGetInstanceProcAddr.p(nullptr, "vkDestroyBuffer"); + vkDestroyBuffer.name = "vkDestroyBuffer"; +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkDestroyBufferCollectionFUCHSIA.p = (PFN_vkDestroyBufferCollectionFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkDestroyBufferCollectionFUCHSIA"); + vkDestroyBufferCollectionFUCHSIA.name = "vkDestroyBufferCollectionFUCHSIA"; +#endif + vkDestroyBufferView.p = (PFN_vkDestroyBufferView)vkGetInstanceProcAddr.p(nullptr, "vkDestroyBufferView"); + vkDestroyBufferView.name = "vkDestroyBufferView"; + vkDestroyCommandPool.p = (PFN_vkDestroyCommandPool)vkGetInstanceProcAddr.p(nullptr, "vkDestroyCommandPool"); + vkDestroyCommandPool.name = "vkDestroyCommandPool"; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkDestroyCudaFunctionNV.p = (PFN_vkDestroyCudaFunctionNV)vkGetInstanceProcAddr.p(nullptr, "vkDestroyCudaFunctionNV"); + vkDestroyCudaFunctionNV.name = "vkDestroyCudaFunctionNV"; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkDestroyCudaModuleNV.p = (PFN_vkDestroyCudaModuleNV)vkGetInstanceProcAddr.p(nullptr, "vkDestroyCudaModuleNV"); + vkDestroyCudaModuleNV.name = "vkDestroyCudaModuleNV"; +#endif + vkDestroyCuFunctionNVX.p = (PFN_vkDestroyCuFunctionNVX)vkGetInstanceProcAddr.p(nullptr, "vkDestroyCuFunctionNVX"); + vkDestroyCuFunctionNVX.name = "vkDestroyCuFunctionNVX"; + vkDestroyCuModuleNVX.p = (PFN_vkDestroyCuModuleNVX)vkGetInstanceProcAddr.p(nullptr, "vkDestroyCuModuleNVX"); + vkDestroyCuModuleNVX.name = "vkDestroyCuModuleNVX"; + vkDestroyDebugReportCallbackEXT.p = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr.p(nullptr, "vkDestroyDebugReportCallbackEXT"); + vkDestroyDebugReportCallbackEXT.name = "vkDestroyDebugReportCallbackEXT"; + vkDestroyDebugUtilsMessengerEXT.p = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr.p(nullptr, "vkDestroyDebugUtilsMessengerEXT"); + vkDestroyDebugUtilsMessengerEXT.name = "vkDestroyDebugUtilsMessengerEXT"; + vkDestroyDeferredOperationKHR.p = (PFN_vkDestroyDeferredOperationKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroyDeferredOperationKHR"); + vkDestroyDeferredOperationKHR.name = "vkDestroyDeferredOperationKHR"; + vkDestroyDescriptorPool.p = (PFN_vkDestroyDescriptorPool)vkGetInstanceProcAddr.p(nullptr, "vkDestroyDescriptorPool"); + vkDestroyDescriptorPool.name = "vkDestroyDescriptorPool"; + vkDestroyDescriptorSetLayout.p = (PFN_vkDestroyDescriptorSetLayout)vkGetInstanceProcAddr.p(nullptr, "vkDestroyDescriptorSetLayout"); + vkDestroyDescriptorSetLayout.name = "vkDestroyDescriptorSetLayout"; + vkDestroyDescriptorUpdateTemplate.p = (PFN_vkDestroyDescriptorUpdateTemplate)vkGetInstanceProcAddr.p(nullptr, "vkDestroyDescriptorUpdateTemplate"); + vkDestroyDescriptorUpdateTemplate.name = "vkDestroyDescriptorUpdateTemplate"; + vkDestroyDescriptorUpdateTemplateKHR.p = (PFN_vkDestroyDescriptorUpdateTemplateKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroyDescriptorUpdateTemplateKHR"); + vkDestroyDescriptorUpdateTemplateKHR.name = "vkDestroyDescriptorUpdateTemplateKHR"; + vkDestroyDevice.p = (PFN_vkDestroyDevice)vkGetInstanceProcAddr.p(nullptr, "vkDestroyDevice"); + vkDestroyDevice.name = "vkDestroyDevice"; + vkDestroyEvent.p = (PFN_vkDestroyEvent)vkGetInstanceProcAddr.p(nullptr, "vkDestroyEvent"); + vkDestroyEvent.name = "vkDestroyEvent"; + vkDestroyExternalComputeQueueNV.p = (PFN_vkDestroyExternalComputeQueueNV)vkGetInstanceProcAddr.p(nullptr, "vkDestroyExternalComputeQueueNV"); + vkDestroyExternalComputeQueueNV.name = "vkDestroyExternalComputeQueueNV"; + vkDestroyFence.p = (PFN_vkDestroyFence)vkGetInstanceProcAddr.p(nullptr, "vkDestroyFence"); + vkDestroyFence.name = "vkDestroyFence"; + vkDestroyFramebuffer.p = (PFN_vkDestroyFramebuffer)vkGetInstanceProcAddr.p(nullptr, "vkDestroyFramebuffer"); + vkDestroyFramebuffer.name = "vkDestroyFramebuffer"; + vkDestroyImage.p = (PFN_vkDestroyImage)vkGetInstanceProcAddr.p(nullptr, "vkDestroyImage"); + vkDestroyImage.name = "vkDestroyImage"; + vkDestroyImageView.p = (PFN_vkDestroyImageView)vkGetInstanceProcAddr.p(nullptr, "vkDestroyImageView"); + vkDestroyImageView.name = "vkDestroyImageView"; + vkDestroyIndirectCommandsLayoutEXT.p = (PFN_vkDestroyIndirectCommandsLayoutEXT)vkGetInstanceProcAddr.p(nullptr, "vkDestroyIndirectCommandsLayoutEXT"); + vkDestroyIndirectCommandsLayoutEXT.name = "vkDestroyIndirectCommandsLayoutEXT"; + vkDestroyIndirectCommandsLayoutNV.p = (PFN_vkDestroyIndirectCommandsLayoutNV)vkGetInstanceProcAddr.p(nullptr, "vkDestroyIndirectCommandsLayoutNV"); + vkDestroyIndirectCommandsLayoutNV.name = "vkDestroyIndirectCommandsLayoutNV"; + vkDestroyIndirectExecutionSetEXT.p = (PFN_vkDestroyIndirectExecutionSetEXT)vkGetInstanceProcAddr.p(nullptr, "vkDestroyIndirectExecutionSetEXT"); + vkDestroyIndirectExecutionSetEXT.name = "vkDestroyIndirectExecutionSetEXT"; + vkDestroyInstance.p = (PFN_vkDestroyInstance)vkGetInstanceProcAddr.p(nullptr, "vkDestroyInstance"); + vkDestroyInstance.name = "vkDestroyInstance"; + vkDestroyMicromapEXT.p = (PFN_vkDestroyMicromapEXT)vkGetInstanceProcAddr.p(nullptr, "vkDestroyMicromapEXT"); + vkDestroyMicromapEXT.name = "vkDestroyMicromapEXT"; + vkDestroyOpticalFlowSessionNV.p = (PFN_vkDestroyOpticalFlowSessionNV)vkGetInstanceProcAddr.p(nullptr, "vkDestroyOpticalFlowSessionNV"); + vkDestroyOpticalFlowSessionNV.name = "vkDestroyOpticalFlowSessionNV"; + vkDestroyPipeline.p = (PFN_vkDestroyPipeline)vkGetInstanceProcAddr.p(nullptr, "vkDestroyPipeline"); + vkDestroyPipeline.name = "vkDestroyPipeline"; + vkDestroyPipelineBinaryKHR.p = (PFN_vkDestroyPipelineBinaryKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroyPipelineBinaryKHR"); + vkDestroyPipelineBinaryKHR.name = "vkDestroyPipelineBinaryKHR"; + vkDestroyPipelineCache.p = (PFN_vkDestroyPipelineCache)vkGetInstanceProcAddr.p(nullptr, "vkDestroyPipelineCache"); + vkDestroyPipelineCache.name = "vkDestroyPipelineCache"; + vkDestroyPipelineLayout.p = (PFN_vkDestroyPipelineLayout)vkGetInstanceProcAddr.p(nullptr, "vkDestroyPipelineLayout"); + vkDestroyPipelineLayout.name = "vkDestroyPipelineLayout"; + vkDestroyPrivateDataSlot.p = (PFN_vkDestroyPrivateDataSlot)vkGetInstanceProcAddr.p(nullptr, "vkDestroyPrivateDataSlot"); + vkDestroyPrivateDataSlot.name = "vkDestroyPrivateDataSlot"; + vkDestroyPrivateDataSlotEXT.p = (PFN_vkDestroyPrivateDataSlotEXT)vkGetInstanceProcAddr.p(nullptr, "vkDestroyPrivateDataSlotEXT"); + vkDestroyPrivateDataSlotEXT.name = "vkDestroyPrivateDataSlotEXT"; + vkDestroyQueryPool.p = (PFN_vkDestroyQueryPool)vkGetInstanceProcAddr.p(nullptr, "vkDestroyQueryPool"); + vkDestroyQueryPool.name = "vkDestroyQueryPool"; + vkDestroyRenderPass.p = (PFN_vkDestroyRenderPass)vkGetInstanceProcAddr.p(nullptr, "vkDestroyRenderPass"); + vkDestroyRenderPass.name = "vkDestroyRenderPass"; + vkDestroySampler.p = (PFN_vkDestroySampler)vkGetInstanceProcAddr.p(nullptr, "vkDestroySampler"); + vkDestroySampler.name = "vkDestroySampler"; + vkDestroySamplerYcbcrConversion.p = (PFN_vkDestroySamplerYcbcrConversion)vkGetInstanceProcAddr.p(nullptr, "vkDestroySamplerYcbcrConversion"); + vkDestroySamplerYcbcrConversion.name = "vkDestroySamplerYcbcrConversion"; + vkDestroySamplerYcbcrConversionKHR.p = (PFN_vkDestroySamplerYcbcrConversionKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroySamplerYcbcrConversionKHR"); + vkDestroySamplerYcbcrConversionKHR.name = "vkDestroySamplerYcbcrConversionKHR"; + vkDestroySemaphore.p = (PFN_vkDestroySemaphore)vkGetInstanceProcAddr.p(nullptr, "vkDestroySemaphore"); + vkDestroySemaphore.name = "vkDestroySemaphore"; + vkDestroyShaderEXT.p = (PFN_vkDestroyShaderEXT)vkGetInstanceProcAddr.p(nullptr, "vkDestroyShaderEXT"); + vkDestroyShaderEXT.name = "vkDestroyShaderEXT"; + vkDestroyShaderModule.p = (PFN_vkDestroyShaderModule)vkGetInstanceProcAddr.p(nullptr, "vkDestroyShaderModule"); + vkDestroyShaderModule.name = "vkDestroyShaderModule"; + vkDestroySurfaceKHR.p = (PFN_vkDestroySurfaceKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroySurfaceKHR"); + vkDestroySurfaceKHR.name = "vkDestroySurfaceKHR"; + vkDestroySwapchainKHR.p = (PFN_vkDestroySwapchainKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroySwapchainKHR"); + vkDestroySwapchainKHR.name = "vkDestroySwapchainKHR"; + vkDestroyValidationCacheEXT.p = (PFN_vkDestroyValidationCacheEXT)vkGetInstanceProcAddr.p(nullptr, "vkDestroyValidationCacheEXT"); + vkDestroyValidationCacheEXT.name = "vkDestroyValidationCacheEXT"; + vkDestroyVideoSessionKHR.p = (PFN_vkDestroyVideoSessionKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroyVideoSessionKHR"); + vkDestroyVideoSessionKHR.name = "vkDestroyVideoSessionKHR"; + vkDestroyVideoSessionParametersKHR.p = (PFN_vkDestroyVideoSessionParametersKHR)vkGetInstanceProcAddr.p(nullptr, "vkDestroyVideoSessionParametersKHR"); + vkDestroyVideoSessionParametersKHR.name = "vkDestroyVideoSessionParametersKHR"; + vkDeviceWaitIdle.p = (PFN_vkDeviceWaitIdle)vkGetInstanceProcAddr.p(nullptr, "vkDeviceWaitIdle"); + vkDeviceWaitIdle.name = "vkDeviceWaitIdle"; + vkDisplayPowerControlEXT.p = (PFN_vkDisplayPowerControlEXT)vkGetInstanceProcAddr.p(nullptr, "vkDisplayPowerControlEXT"); + vkDisplayPowerControlEXT.name = "vkDisplayPowerControlEXT"; + vkEndCommandBuffer.p = (PFN_vkEndCommandBuffer)vkGetInstanceProcAddr.p(nullptr, "vkEndCommandBuffer"); + vkEndCommandBuffer.name = "vkEndCommandBuffer"; + vkEnumerateDeviceExtensionProperties.p = (PFN_vkEnumerateDeviceExtensionProperties)vkGetInstanceProcAddr.p(nullptr, "vkEnumerateDeviceExtensionProperties"); + vkEnumerateDeviceExtensionProperties.name = "vkEnumerateDeviceExtensionProperties"; + vkEnumerateDeviceLayerProperties.p = (PFN_vkEnumerateDeviceLayerProperties)vkGetInstanceProcAddr.p(nullptr, "vkEnumerateDeviceLayerProperties"); + vkEnumerateDeviceLayerProperties.name = "vkEnumerateDeviceLayerProperties"; + vkEnumerateInstanceExtensionProperties.p = (PFN_vkEnumerateInstanceExtensionProperties)vkGetInstanceProcAddr.p(nullptr, "vkEnumerateInstanceExtensionProperties"); + vkEnumerateInstanceExtensionProperties.name = "vkEnumerateInstanceExtensionProperties"; + vkEnumerateInstanceLayerProperties.p = (PFN_vkEnumerateInstanceLayerProperties)vkGetInstanceProcAddr.p(nullptr, "vkEnumerateInstanceLayerProperties"); + vkEnumerateInstanceLayerProperties.name = "vkEnumerateInstanceLayerProperties"; + vkEnumerateInstanceVersion.p = (PFN_vkEnumerateInstanceVersion)vkGetInstanceProcAddr.p(nullptr, "vkEnumerateInstanceVersion"); + vkEnumerateInstanceVersion.name = "vkEnumerateInstanceVersion"; + vkEnumeratePhysicalDeviceGroups.p = (PFN_vkEnumeratePhysicalDeviceGroups)vkGetInstanceProcAddr.p(nullptr, "vkEnumeratePhysicalDeviceGroups"); + vkEnumeratePhysicalDeviceGroups.name = "vkEnumeratePhysicalDeviceGroups"; + vkEnumeratePhysicalDeviceGroupsKHR.p = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)vkGetInstanceProcAddr.p(nullptr, "vkEnumeratePhysicalDeviceGroupsKHR"); + vkEnumeratePhysicalDeviceGroupsKHR.name = "vkEnumeratePhysicalDeviceGroupsKHR"; + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.p = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vkGetInstanceProcAddr.p(nullptr, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"); + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.name = "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"; + vkEnumeratePhysicalDevices.p = (PFN_vkEnumeratePhysicalDevices)vkGetInstanceProcAddr.p(nullptr, "vkEnumeratePhysicalDevices"); + vkEnumeratePhysicalDevices.name = "vkEnumeratePhysicalDevices"; +#if defined(VK_USE_PLATFORM_METAL_EXT) + vkExportMetalObjectsEXT.p = (PFN_vkExportMetalObjectsEXT)vkGetInstanceProcAddr.p(nullptr, "vkExportMetalObjectsEXT"); + vkExportMetalObjectsEXT.name = "vkExportMetalObjectsEXT"; +#endif + vkFlushMappedMemoryRanges.p = (PFN_vkFlushMappedMemoryRanges)vkGetInstanceProcAddr.p(nullptr, "vkFlushMappedMemoryRanges"); + vkFlushMappedMemoryRanges.name = "vkFlushMappedMemoryRanges"; + vkFreeCommandBuffers.p = (PFN_vkFreeCommandBuffers)vkGetInstanceProcAddr.p(nullptr, "vkFreeCommandBuffers"); + vkFreeCommandBuffers.name = "vkFreeCommandBuffers"; + vkFreeDescriptorSets.p = (PFN_vkFreeDescriptorSets)vkGetInstanceProcAddr.p(nullptr, "vkFreeDescriptorSets"); + vkFreeDescriptorSets.name = "vkFreeDescriptorSets"; + vkFreeMemory.p = (PFN_vkFreeMemory)vkGetInstanceProcAddr.p(nullptr, "vkFreeMemory"); + vkFreeMemory.name = "vkFreeMemory"; + vkGetAccelerationStructureBuildSizesKHR.p = (PFN_vkGetAccelerationStructureBuildSizesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetAccelerationStructureBuildSizesKHR"); + vkGetAccelerationStructureBuildSizesKHR.name = "vkGetAccelerationStructureBuildSizesKHR"; + vkGetAccelerationStructureDeviceAddressKHR.p = (PFN_vkGetAccelerationStructureDeviceAddressKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetAccelerationStructureDeviceAddressKHR"); + vkGetAccelerationStructureDeviceAddressKHR.name = "vkGetAccelerationStructureDeviceAddressKHR"; + vkGetAccelerationStructureHandleNV.p = (PFN_vkGetAccelerationStructureHandleNV)vkGetInstanceProcAddr.p(nullptr, "vkGetAccelerationStructureHandleNV"); + vkGetAccelerationStructureHandleNV.name = "vkGetAccelerationStructureHandleNV"; + vkGetAccelerationStructureMemoryRequirementsNV.p = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)vkGetInstanceProcAddr.p(nullptr, "vkGetAccelerationStructureMemoryRequirementsNV"); + vkGetAccelerationStructureMemoryRequirementsNV.name = "vkGetAccelerationStructureMemoryRequirementsNV"; + vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.p = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT"); + vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.name = "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT"; +#if defined(VK_USE_PLATFORM_ANDROID_KHR) + vkGetAndroidHardwareBufferPropertiesANDROID.p = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vkGetInstanceProcAddr.p(nullptr, "vkGetAndroidHardwareBufferPropertiesANDROID"); + vkGetAndroidHardwareBufferPropertiesANDROID.name = "vkGetAndroidHardwareBufferPropertiesANDROID"; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkGetBufferCollectionPropertiesFUCHSIA.p = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferCollectionPropertiesFUCHSIA"); + vkGetBufferCollectionPropertiesFUCHSIA.name = "vkGetBufferCollectionPropertiesFUCHSIA"; +#endif + vkGetBufferDeviceAddress.p = (PFN_vkGetBufferDeviceAddress)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferDeviceAddress"); + vkGetBufferDeviceAddress.name = "vkGetBufferDeviceAddress"; + vkGetBufferDeviceAddressEXT.p = (PFN_vkGetBufferDeviceAddressEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferDeviceAddressEXT"); + vkGetBufferDeviceAddressEXT.name = "vkGetBufferDeviceAddressEXT"; + vkGetBufferDeviceAddressKHR.p = (PFN_vkGetBufferDeviceAddressKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferDeviceAddressKHR"); + vkGetBufferDeviceAddressKHR.name = "vkGetBufferDeviceAddressKHR"; + vkGetBufferMemoryRequirements.p = (PFN_vkGetBufferMemoryRequirements)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferMemoryRequirements"); + vkGetBufferMemoryRequirements.name = "vkGetBufferMemoryRequirements"; + vkGetBufferMemoryRequirements2.p = (PFN_vkGetBufferMemoryRequirements2)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferMemoryRequirements2"); + vkGetBufferMemoryRequirements2.name = "vkGetBufferMemoryRequirements2"; + vkGetBufferMemoryRequirements2KHR.p = (PFN_vkGetBufferMemoryRequirements2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferMemoryRequirements2KHR"); + vkGetBufferMemoryRequirements2KHR.name = "vkGetBufferMemoryRequirements2KHR"; + vkGetBufferOpaqueCaptureAddress.p = (PFN_vkGetBufferOpaqueCaptureAddress)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferOpaqueCaptureAddress"); + vkGetBufferOpaqueCaptureAddress.name = "vkGetBufferOpaqueCaptureAddress"; + vkGetBufferOpaqueCaptureAddressKHR.p = (PFN_vkGetBufferOpaqueCaptureAddressKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferOpaqueCaptureAddressKHR"); + vkGetBufferOpaqueCaptureAddressKHR.name = "vkGetBufferOpaqueCaptureAddressKHR"; + vkGetBufferOpaqueCaptureDescriptorDataEXT.p = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetBufferOpaqueCaptureDescriptorDataEXT"); + vkGetBufferOpaqueCaptureDescriptorDataEXT.name = "vkGetBufferOpaqueCaptureDescriptorDataEXT"; + vkGetCalibratedTimestampsEXT.p = (PFN_vkGetCalibratedTimestampsEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetCalibratedTimestampsEXT"); + vkGetCalibratedTimestampsEXT.name = "vkGetCalibratedTimestampsEXT"; + vkGetCalibratedTimestampsKHR.p = (PFN_vkGetCalibratedTimestampsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetCalibratedTimestampsKHR"); + vkGetCalibratedTimestampsKHR.name = "vkGetCalibratedTimestampsKHR"; + vkGetClusterAccelerationStructureBuildSizesNV.p = (PFN_vkGetClusterAccelerationStructureBuildSizesNV)vkGetInstanceProcAddr.p(nullptr, "vkGetClusterAccelerationStructureBuildSizesNV"); + vkGetClusterAccelerationStructureBuildSizesNV.name = "vkGetClusterAccelerationStructureBuildSizesNV"; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkGetCudaModuleCacheNV.p = (PFN_vkGetCudaModuleCacheNV)vkGetInstanceProcAddr.p(nullptr, "vkGetCudaModuleCacheNV"); + vkGetCudaModuleCacheNV.name = "vkGetCudaModuleCacheNV"; +#endif + vkGetDeferredOperationMaxConcurrencyKHR.p = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeferredOperationMaxConcurrencyKHR"); + vkGetDeferredOperationMaxConcurrencyKHR.name = "vkGetDeferredOperationMaxConcurrencyKHR"; + vkGetDeferredOperationResultKHR.p = (PFN_vkGetDeferredOperationResultKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeferredOperationResultKHR"); + vkGetDeferredOperationResultKHR.name = "vkGetDeferredOperationResultKHR"; + vkGetDescriptorEXT.p = (PFN_vkGetDescriptorEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetDescriptorEXT"); + vkGetDescriptorEXT.name = "vkGetDescriptorEXT"; + vkGetDescriptorSetHostMappingVALVE.p = (PFN_vkGetDescriptorSetHostMappingVALVE)vkGetInstanceProcAddr.p(nullptr, "vkGetDescriptorSetHostMappingVALVE"); + vkGetDescriptorSetHostMappingVALVE.name = "vkGetDescriptorSetHostMappingVALVE"; + vkGetDescriptorSetLayoutBindingOffsetEXT.p = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetDescriptorSetLayoutBindingOffsetEXT"); + vkGetDescriptorSetLayoutBindingOffsetEXT.name = "vkGetDescriptorSetLayoutBindingOffsetEXT"; + vkGetDescriptorSetLayoutHostMappingInfoVALVE.p = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)vkGetInstanceProcAddr.p(nullptr, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"); + vkGetDescriptorSetLayoutHostMappingInfoVALVE.name = "vkGetDescriptorSetLayoutHostMappingInfoVALVE"; + vkGetDescriptorSetLayoutSizeEXT.p = (PFN_vkGetDescriptorSetLayoutSizeEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetDescriptorSetLayoutSizeEXT"); + vkGetDescriptorSetLayoutSizeEXT.name = "vkGetDescriptorSetLayoutSizeEXT"; + vkGetDescriptorSetLayoutSupport.p = (PFN_vkGetDescriptorSetLayoutSupport)vkGetInstanceProcAddr.p(nullptr, "vkGetDescriptorSetLayoutSupport"); + vkGetDescriptorSetLayoutSupport.name = "vkGetDescriptorSetLayoutSupport"; + vkGetDescriptorSetLayoutSupportKHR.p = (PFN_vkGetDescriptorSetLayoutSupportKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDescriptorSetLayoutSupportKHR"); + vkGetDescriptorSetLayoutSupportKHR.name = "vkGetDescriptorSetLayoutSupportKHR"; + vkGetDeviceAccelerationStructureCompatibilityKHR.p = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceAccelerationStructureCompatibilityKHR"); + vkGetDeviceAccelerationStructureCompatibilityKHR.name = "vkGetDeviceAccelerationStructureCompatibilityKHR"; + vkGetDeviceBufferMemoryRequirements.p = (PFN_vkGetDeviceBufferMemoryRequirements)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceBufferMemoryRequirements"); + vkGetDeviceBufferMemoryRequirements.name = "vkGetDeviceBufferMemoryRequirements"; + vkGetDeviceBufferMemoryRequirementsKHR.p = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceBufferMemoryRequirementsKHR"); + vkGetDeviceBufferMemoryRequirementsKHR.name = "vkGetDeviceBufferMemoryRequirementsKHR"; + vkGetDeviceFaultInfoEXT.p = (PFN_vkGetDeviceFaultInfoEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceFaultInfoEXT"); + vkGetDeviceFaultInfoEXT.name = "vkGetDeviceFaultInfoEXT"; + vkGetDeviceGroupPeerMemoryFeatures.p = (PFN_vkGetDeviceGroupPeerMemoryFeatures)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceGroupPeerMemoryFeatures"); + vkGetDeviceGroupPeerMemoryFeatures.name = "vkGetDeviceGroupPeerMemoryFeatures"; + vkGetDeviceGroupPeerMemoryFeaturesKHR.p = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceGroupPeerMemoryFeaturesKHR"); + vkGetDeviceGroupPeerMemoryFeaturesKHR.name = "vkGetDeviceGroupPeerMemoryFeaturesKHR"; + vkGetDeviceGroupPresentCapabilitiesKHR.p = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceGroupPresentCapabilitiesKHR"); + vkGetDeviceGroupPresentCapabilitiesKHR.name = "vkGetDeviceGroupPresentCapabilitiesKHR"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetDeviceGroupSurfacePresentModes2EXT.p = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceGroupSurfacePresentModes2EXT"); + vkGetDeviceGroupSurfacePresentModes2EXT.name = "vkGetDeviceGroupSurfacePresentModes2EXT"; +#endif + vkGetDeviceGroupSurfacePresentModesKHR.p = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceGroupSurfacePresentModesKHR"); + vkGetDeviceGroupSurfacePresentModesKHR.name = "vkGetDeviceGroupSurfacePresentModesKHR"; + vkGetDeviceImageMemoryRequirements.p = (PFN_vkGetDeviceImageMemoryRequirements)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceImageMemoryRequirements"); + vkGetDeviceImageMemoryRequirements.name = "vkGetDeviceImageMemoryRequirements"; + vkGetDeviceImageMemoryRequirementsKHR.p = (PFN_vkGetDeviceImageMemoryRequirementsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceImageMemoryRequirementsKHR"); + vkGetDeviceImageMemoryRequirementsKHR.name = "vkGetDeviceImageMemoryRequirementsKHR"; + vkGetDeviceImageSparseMemoryRequirements.p = (PFN_vkGetDeviceImageSparseMemoryRequirements)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceImageSparseMemoryRequirements"); + vkGetDeviceImageSparseMemoryRequirements.name = "vkGetDeviceImageSparseMemoryRequirements"; + vkGetDeviceImageSparseMemoryRequirementsKHR.p = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceImageSparseMemoryRequirementsKHR"); + vkGetDeviceImageSparseMemoryRequirementsKHR.name = "vkGetDeviceImageSparseMemoryRequirementsKHR"; + vkGetDeviceImageSubresourceLayout.p = (PFN_vkGetDeviceImageSubresourceLayout)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceImageSubresourceLayout"); + vkGetDeviceImageSubresourceLayout.name = "vkGetDeviceImageSubresourceLayout"; + vkGetDeviceImageSubresourceLayoutKHR.p = (PFN_vkGetDeviceImageSubresourceLayoutKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceImageSubresourceLayoutKHR"); + vkGetDeviceImageSubresourceLayoutKHR.name = "vkGetDeviceImageSubresourceLayoutKHR"; + vkGetDeviceMemoryCommitment.p = (PFN_vkGetDeviceMemoryCommitment)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceMemoryCommitment"); + vkGetDeviceMemoryCommitment.name = "vkGetDeviceMemoryCommitment"; + vkGetDeviceMemoryOpaqueCaptureAddress.p = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceMemoryOpaqueCaptureAddress"); + vkGetDeviceMemoryOpaqueCaptureAddress.name = "vkGetDeviceMemoryOpaqueCaptureAddress"; + vkGetDeviceMemoryOpaqueCaptureAddressKHR.p = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"); + vkGetDeviceMemoryOpaqueCaptureAddressKHR.name = "vkGetDeviceMemoryOpaqueCaptureAddressKHR"; + vkGetDeviceMicromapCompatibilityEXT.p = (PFN_vkGetDeviceMicromapCompatibilityEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceMicromapCompatibilityEXT"); + vkGetDeviceMicromapCompatibilityEXT.name = "vkGetDeviceMicromapCompatibilityEXT"; + vkGetDeviceProcAddr.p = (PFN_vkGetDeviceProcAddr)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceProcAddr"); + vkGetDeviceProcAddr.name = "vkGetDeviceProcAddr"; + vkGetDeviceQueue.p = (PFN_vkGetDeviceQueue)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceQueue"); + vkGetDeviceQueue.name = "vkGetDeviceQueue"; + vkGetDeviceQueue2.p = (PFN_vkGetDeviceQueue2)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceQueue2"); + vkGetDeviceQueue2.name = "vkGetDeviceQueue2"; + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.p = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"); + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.name = "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"; + vkGetDisplayModeProperties2KHR.p = (PFN_vkGetDisplayModeProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDisplayModeProperties2KHR"); + vkGetDisplayModeProperties2KHR.name = "vkGetDisplayModeProperties2KHR"; + vkGetDisplayModePropertiesKHR.p = (PFN_vkGetDisplayModePropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDisplayModePropertiesKHR"); + vkGetDisplayModePropertiesKHR.name = "vkGetDisplayModePropertiesKHR"; + vkGetDisplayPlaneCapabilities2KHR.p = (PFN_vkGetDisplayPlaneCapabilities2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDisplayPlaneCapabilities2KHR"); + vkGetDisplayPlaneCapabilities2KHR.name = "vkGetDisplayPlaneCapabilities2KHR"; + vkGetDisplayPlaneCapabilitiesKHR.p = (PFN_vkGetDisplayPlaneCapabilitiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDisplayPlaneCapabilitiesKHR"); + vkGetDisplayPlaneCapabilitiesKHR.name = "vkGetDisplayPlaneCapabilitiesKHR"; + vkGetDisplayPlaneSupportedDisplaysKHR.p = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetDisplayPlaneSupportedDisplaysKHR"); + vkGetDisplayPlaneSupportedDisplaysKHR.name = "vkGetDisplayPlaneSupportedDisplaysKHR"; + vkGetDrmDisplayEXT.p = (PFN_vkGetDrmDisplayEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetDrmDisplayEXT"); + vkGetDrmDisplayEXT.name = "vkGetDrmDisplayEXT"; + vkGetDynamicRenderingTilePropertiesQCOM.p = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)vkGetInstanceProcAddr.p(nullptr, "vkGetDynamicRenderingTilePropertiesQCOM"); + vkGetDynamicRenderingTilePropertiesQCOM.name = "vkGetDynamicRenderingTilePropertiesQCOM"; + vkGetEncodedVideoSessionParametersKHR.p = (PFN_vkGetEncodedVideoSessionParametersKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetEncodedVideoSessionParametersKHR"); + vkGetEncodedVideoSessionParametersKHR.name = "vkGetEncodedVideoSessionParametersKHR"; + vkGetEventStatus.p = (PFN_vkGetEventStatus)vkGetInstanceProcAddr.p(nullptr, "vkGetEventStatus"); + vkGetEventStatus.name = "vkGetEventStatus"; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkGetExecutionGraphPipelineNodeIndexAMDX.p = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)vkGetInstanceProcAddr.p(nullptr, "vkGetExecutionGraphPipelineNodeIndexAMDX"); + vkGetExecutionGraphPipelineNodeIndexAMDX.name = "vkGetExecutionGraphPipelineNodeIndexAMDX"; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + vkGetExecutionGraphPipelineScratchSizeAMDX.p = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)vkGetInstanceProcAddr.p(nullptr, "vkGetExecutionGraphPipelineScratchSizeAMDX"); + vkGetExecutionGraphPipelineScratchSizeAMDX.name = "vkGetExecutionGraphPipelineScratchSizeAMDX"; +#endif + vkGetExternalComputeQueueDataNV.p = (PFN_vkGetExternalComputeQueueDataNV)vkGetInstanceProcAddr.p(nullptr, "vkGetExternalComputeQueueDataNV"); + vkGetExternalComputeQueueDataNV.name = "vkGetExternalComputeQueueDataNV"; + vkGetFenceFdKHR.p = (PFN_vkGetFenceFdKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetFenceFdKHR"); + vkGetFenceFdKHR.name = "vkGetFenceFdKHR"; + vkGetFenceStatus.p = (PFN_vkGetFenceStatus)vkGetInstanceProcAddr.p(nullptr, "vkGetFenceStatus"); + vkGetFenceStatus.name = "vkGetFenceStatus"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetFenceWin32HandleKHR.p = (PFN_vkGetFenceWin32HandleKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetFenceWin32HandleKHR"); + vkGetFenceWin32HandleKHR.name = "vkGetFenceWin32HandleKHR"; +#endif + vkGetFramebufferTilePropertiesQCOM.p = (PFN_vkGetFramebufferTilePropertiesQCOM)vkGetInstanceProcAddr.p(nullptr, "vkGetFramebufferTilePropertiesQCOM"); + vkGetFramebufferTilePropertiesQCOM.name = "vkGetFramebufferTilePropertiesQCOM"; + vkGetGeneratedCommandsMemoryRequirementsEXT.p = (PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetGeneratedCommandsMemoryRequirementsEXT"); + vkGetGeneratedCommandsMemoryRequirementsEXT.name = "vkGetGeneratedCommandsMemoryRequirementsEXT"; + vkGetGeneratedCommandsMemoryRequirementsNV.p = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)vkGetInstanceProcAddr.p(nullptr, "vkGetGeneratedCommandsMemoryRequirementsNV"); + vkGetGeneratedCommandsMemoryRequirementsNV.name = "vkGetGeneratedCommandsMemoryRequirementsNV"; + vkGetImageDrmFormatModifierPropertiesEXT.p = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetImageDrmFormatModifierPropertiesEXT"); + vkGetImageDrmFormatModifierPropertiesEXT.name = "vkGetImageDrmFormatModifierPropertiesEXT"; + vkGetImageMemoryRequirements.p = (PFN_vkGetImageMemoryRequirements)vkGetInstanceProcAddr.p(nullptr, "vkGetImageMemoryRequirements"); + vkGetImageMemoryRequirements.name = "vkGetImageMemoryRequirements"; + vkGetImageMemoryRequirements2.p = (PFN_vkGetImageMemoryRequirements2)vkGetInstanceProcAddr.p(nullptr, "vkGetImageMemoryRequirements2"); + vkGetImageMemoryRequirements2.name = "vkGetImageMemoryRequirements2"; + vkGetImageMemoryRequirements2KHR.p = (PFN_vkGetImageMemoryRequirements2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetImageMemoryRequirements2KHR"); + vkGetImageMemoryRequirements2KHR.name = "vkGetImageMemoryRequirements2KHR"; + vkGetImageOpaqueCaptureDescriptorDataEXT.p = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetImageOpaqueCaptureDescriptorDataEXT"); + vkGetImageOpaqueCaptureDescriptorDataEXT.name = "vkGetImageOpaqueCaptureDescriptorDataEXT"; + vkGetImageSparseMemoryRequirements.p = (PFN_vkGetImageSparseMemoryRequirements)vkGetInstanceProcAddr.p(nullptr, "vkGetImageSparseMemoryRequirements"); + vkGetImageSparseMemoryRequirements.name = "vkGetImageSparseMemoryRequirements"; + vkGetImageSparseMemoryRequirements2.p = (PFN_vkGetImageSparseMemoryRequirements2)vkGetInstanceProcAddr.p(nullptr, "vkGetImageSparseMemoryRequirements2"); + vkGetImageSparseMemoryRequirements2.name = "vkGetImageSparseMemoryRequirements2"; + vkGetImageSparseMemoryRequirements2KHR.p = (PFN_vkGetImageSparseMemoryRequirements2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetImageSparseMemoryRequirements2KHR"); + vkGetImageSparseMemoryRequirements2KHR.name = "vkGetImageSparseMemoryRequirements2KHR"; + vkGetImageSubresourceLayout.p = (PFN_vkGetImageSubresourceLayout)vkGetInstanceProcAddr.p(nullptr, "vkGetImageSubresourceLayout"); + vkGetImageSubresourceLayout.name = "vkGetImageSubresourceLayout"; + vkGetImageSubresourceLayout2.p = (PFN_vkGetImageSubresourceLayout2)vkGetInstanceProcAddr.p(nullptr, "vkGetImageSubresourceLayout2"); + vkGetImageSubresourceLayout2.name = "vkGetImageSubresourceLayout2"; + vkGetImageSubresourceLayout2EXT.p = (PFN_vkGetImageSubresourceLayout2EXT)vkGetInstanceProcAddr.p(nullptr, "vkGetImageSubresourceLayout2EXT"); + vkGetImageSubresourceLayout2EXT.name = "vkGetImageSubresourceLayout2EXT"; + vkGetImageSubresourceLayout2KHR.p = (PFN_vkGetImageSubresourceLayout2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetImageSubresourceLayout2KHR"); + vkGetImageSubresourceLayout2KHR.name = "vkGetImageSubresourceLayout2KHR"; + vkGetImageViewAddressNVX.p = (PFN_vkGetImageViewAddressNVX)vkGetInstanceProcAddr.p(nullptr, "vkGetImageViewAddressNVX"); + vkGetImageViewAddressNVX.name = "vkGetImageViewAddressNVX"; + vkGetImageViewHandle64NVX.p = (PFN_vkGetImageViewHandle64NVX)vkGetInstanceProcAddr.p(nullptr, "vkGetImageViewHandle64NVX"); + vkGetImageViewHandle64NVX.name = "vkGetImageViewHandle64NVX"; + vkGetImageViewHandleNVX.p = (PFN_vkGetImageViewHandleNVX)vkGetInstanceProcAddr.p(nullptr, "vkGetImageViewHandleNVX"); + vkGetImageViewHandleNVX.name = "vkGetImageViewHandleNVX"; + vkGetImageViewOpaqueCaptureDescriptorDataEXT.p = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetImageViewOpaqueCaptureDescriptorDataEXT"); + vkGetImageViewOpaqueCaptureDescriptorDataEXT.name = "vkGetImageViewOpaqueCaptureDescriptorDataEXT"; + vkGetInstanceProcAddr.p = (PFN_vkGetInstanceProcAddr)vkGetInstanceProcAddr.p(nullptr, "vkGetInstanceProcAddr"); + vkGetInstanceProcAddr.name = "vkGetInstanceProcAddr"; + vkGetLatencyTimingsNV.p = (PFN_vkGetLatencyTimingsNV)vkGetInstanceProcAddr.p(nullptr, "vkGetLatencyTimingsNV"); + vkGetLatencyTimingsNV.name = "vkGetLatencyTimingsNV"; +#if defined(VK_USE_PLATFORM_ANDROID_KHR) + vkGetMemoryAndroidHardwareBufferANDROID.p = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryAndroidHardwareBufferANDROID"); + vkGetMemoryAndroidHardwareBufferANDROID.name = "vkGetMemoryAndroidHardwareBufferANDROID"; +#endif + vkGetMemoryFdKHR.p = (PFN_vkGetMemoryFdKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryFdKHR"); + vkGetMemoryFdKHR.name = "vkGetMemoryFdKHR"; + vkGetMemoryFdPropertiesKHR.p = (PFN_vkGetMemoryFdPropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryFdPropertiesKHR"); + vkGetMemoryFdPropertiesKHR.name = "vkGetMemoryFdPropertiesKHR"; + vkGetMemoryHostPointerPropertiesEXT.p = (PFN_vkGetMemoryHostPointerPropertiesEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryHostPointerPropertiesEXT"); + vkGetMemoryHostPointerPropertiesEXT.name = "vkGetMemoryHostPointerPropertiesEXT"; +#if defined(VK_USE_PLATFORM_METAL_EXT) + vkGetMemoryMetalHandleEXT.p = (PFN_vkGetMemoryMetalHandleEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryMetalHandleEXT"); + vkGetMemoryMetalHandleEXT.name = "vkGetMemoryMetalHandleEXT"; +#endif +#if defined(VK_USE_PLATFORM_METAL_EXT) + vkGetMemoryMetalHandlePropertiesEXT.p = (PFN_vkGetMemoryMetalHandlePropertiesEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryMetalHandlePropertiesEXT"); + vkGetMemoryMetalHandlePropertiesEXT.name = "vkGetMemoryMetalHandlePropertiesEXT"; +#endif + vkGetMemoryRemoteAddressNV.p = (PFN_vkGetMemoryRemoteAddressNV)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryRemoteAddressNV"); + vkGetMemoryRemoteAddressNV.name = "vkGetMemoryRemoteAddressNV"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetMemoryWin32HandleKHR.p = (PFN_vkGetMemoryWin32HandleKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryWin32HandleKHR"); + vkGetMemoryWin32HandleKHR.name = "vkGetMemoryWin32HandleKHR"; +#endif +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetMemoryWin32HandleNV.p = (PFN_vkGetMemoryWin32HandleNV)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryWin32HandleNV"); + vkGetMemoryWin32HandleNV.name = "vkGetMemoryWin32HandleNV"; +#endif +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetMemoryWin32HandlePropertiesKHR.p = (PFN_vkGetMemoryWin32HandlePropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryWin32HandlePropertiesKHR"); + vkGetMemoryWin32HandlePropertiesKHR.name = "vkGetMemoryWin32HandlePropertiesKHR"; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkGetMemoryZirconHandleFUCHSIA.p = (PFN_vkGetMemoryZirconHandleFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryZirconHandleFUCHSIA"); + vkGetMemoryZirconHandleFUCHSIA.name = "vkGetMemoryZirconHandleFUCHSIA"; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkGetMemoryZirconHandlePropertiesFUCHSIA.p = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkGetMemoryZirconHandlePropertiesFUCHSIA"); + vkGetMemoryZirconHandlePropertiesFUCHSIA.name = "vkGetMemoryZirconHandlePropertiesFUCHSIA"; +#endif + vkGetMicromapBuildSizesEXT.p = (PFN_vkGetMicromapBuildSizesEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetMicromapBuildSizesEXT"); + vkGetMicromapBuildSizesEXT.name = "vkGetMicromapBuildSizesEXT"; + vkGetPartitionedAccelerationStructuresBuildSizesNV.p = (PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPartitionedAccelerationStructuresBuildSizesNV"); + vkGetPartitionedAccelerationStructuresBuildSizesNV.name = "vkGetPartitionedAccelerationStructuresBuildSizesNV"; + vkGetPastPresentationTimingGOOGLE.p = (PFN_vkGetPastPresentationTimingGOOGLE)vkGetInstanceProcAddr.p(nullptr, "vkGetPastPresentationTimingGOOGLE"); + vkGetPastPresentationTimingGOOGLE.name = "vkGetPastPresentationTimingGOOGLE"; + vkGetPerformanceParameterINTEL.p = (PFN_vkGetPerformanceParameterINTEL)vkGetInstanceProcAddr.p(nullptr, "vkGetPerformanceParameterINTEL"); + vkGetPerformanceParameterINTEL.name = "vkGetPerformanceParameterINTEL"; + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.p = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"); + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.name = "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"; + vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.p = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR"); + vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.name = "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR"; + vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.p = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV"); + vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.name = "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV"; + vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.p = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"); + vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.name = "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"; + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.p = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"); + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.name = "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"; + vkGetPhysicalDeviceCooperativeVectorPropertiesNV.p = (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV"); + vkGetPhysicalDeviceCooperativeVectorPropertiesNV.name = "vkGetPhysicalDeviceCooperativeVectorPropertiesNV"; +#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) + vkGetPhysicalDeviceDirectFBPresentationSupportEXT.p = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"); + vkGetPhysicalDeviceDirectFBPresentationSupportEXT.name = "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"; +#endif + vkGetPhysicalDeviceDisplayPlaneProperties2KHR.p = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); + vkGetPhysicalDeviceDisplayPlaneProperties2KHR.name = "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"; + vkGetPhysicalDeviceDisplayPlanePropertiesKHR.p = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); + vkGetPhysicalDeviceDisplayPlanePropertiesKHR.name = "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"; + vkGetPhysicalDeviceDisplayProperties2KHR.p = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceDisplayProperties2KHR"); + vkGetPhysicalDeviceDisplayProperties2KHR.name = "vkGetPhysicalDeviceDisplayProperties2KHR"; + vkGetPhysicalDeviceDisplayPropertiesKHR.p = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceDisplayPropertiesKHR"); + vkGetPhysicalDeviceDisplayPropertiesKHR.name = "vkGetPhysicalDeviceDisplayPropertiesKHR"; + vkGetPhysicalDeviceExternalBufferProperties.p = (PFN_vkGetPhysicalDeviceExternalBufferProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceExternalBufferProperties"); + vkGetPhysicalDeviceExternalBufferProperties.name = "vkGetPhysicalDeviceExternalBufferProperties"; + vkGetPhysicalDeviceExternalBufferPropertiesKHR.p = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"); + vkGetPhysicalDeviceExternalBufferPropertiesKHR.name = "vkGetPhysicalDeviceExternalBufferPropertiesKHR"; + vkGetPhysicalDeviceExternalFenceProperties.p = (PFN_vkGetPhysicalDeviceExternalFenceProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceExternalFenceProperties"); + vkGetPhysicalDeviceExternalFenceProperties.name = "vkGetPhysicalDeviceExternalFenceProperties"; + vkGetPhysicalDeviceExternalFencePropertiesKHR.p = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceExternalFencePropertiesKHR"); + vkGetPhysicalDeviceExternalFencePropertiesKHR.name = "vkGetPhysicalDeviceExternalFencePropertiesKHR"; + vkGetPhysicalDeviceExternalImageFormatPropertiesNV.p = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); + vkGetPhysicalDeviceExternalImageFormatPropertiesNV.name = "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"; + vkGetPhysicalDeviceExternalSemaphoreProperties.p = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceExternalSemaphoreProperties"); + vkGetPhysicalDeviceExternalSemaphoreProperties.name = "vkGetPhysicalDeviceExternalSemaphoreProperties"; + vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.p = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); + vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.name = "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"; + vkGetPhysicalDeviceFeatures.p = (PFN_vkGetPhysicalDeviceFeatures)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceFeatures"); + vkGetPhysicalDeviceFeatures.name = "vkGetPhysicalDeviceFeatures"; + vkGetPhysicalDeviceFeatures2.p = (PFN_vkGetPhysicalDeviceFeatures2)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceFeatures2"); + vkGetPhysicalDeviceFeatures2.name = "vkGetPhysicalDeviceFeatures2"; + vkGetPhysicalDeviceFeatures2KHR.p = (PFN_vkGetPhysicalDeviceFeatures2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceFeatures2KHR"); + vkGetPhysicalDeviceFeatures2KHR.name = "vkGetPhysicalDeviceFeatures2KHR"; + vkGetPhysicalDeviceFormatProperties.p = (PFN_vkGetPhysicalDeviceFormatProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceFormatProperties"); + vkGetPhysicalDeviceFormatProperties.name = "vkGetPhysicalDeviceFormatProperties"; + vkGetPhysicalDeviceFormatProperties2.p = (PFN_vkGetPhysicalDeviceFormatProperties2)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceFormatProperties2"); + vkGetPhysicalDeviceFormatProperties2.name = "vkGetPhysicalDeviceFormatProperties2"; + vkGetPhysicalDeviceFormatProperties2KHR.p = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceFormatProperties2KHR"); + vkGetPhysicalDeviceFormatProperties2KHR.name = "vkGetPhysicalDeviceFormatProperties2KHR"; + vkGetPhysicalDeviceFragmentShadingRatesKHR.p = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceFragmentShadingRatesKHR"); + vkGetPhysicalDeviceFragmentShadingRatesKHR.name = "vkGetPhysicalDeviceFragmentShadingRatesKHR"; + vkGetPhysicalDeviceImageFormatProperties.p = (PFN_vkGetPhysicalDeviceImageFormatProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceImageFormatProperties"); + vkGetPhysicalDeviceImageFormatProperties.name = "vkGetPhysicalDeviceImageFormatProperties"; + vkGetPhysicalDeviceImageFormatProperties2.p = (PFN_vkGetPhysicalDeviceImageFormatProperties2)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceImageFormatProperties2"); + vkGetPhysicalDeviceImageFormatProperties2.name = "vkGetPhysicalDeviceImageFormatProperties2"; + vkGetPhysicalDeviceImageFormatProperties2KHR.p = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceImageFormatProperties2KHR"); + vkGetPhysicalDeviceImageFormatProperties2KHR.name = "vkGetPhysicalDeviceImageFormatProperties2KHR"; + vkGetPhysicalDeviceMemoryProperties.p = (PFN_vkGetPhysicalDeviceMemoryProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceMemoryProperties"); + vkGetPhysicalDeviceMemoryProperties.name = "vkGetPhysicalDeviceMemoryProperties"; + vkGetPhysicalDeviceMemoryProperties2.p = (PFN_vkGetPhysicalDeviceMemoryProperties2)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceMemoryProperties2"); + vkGetPhysicalDeviceMemoryProperties2.name = "vkGetPhysicalDeviceMemoryProperties2"; + vkGetPhysicalDeviceMemoryProperties2KHR.p = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceMemoryProperties2KHR"); + vkGetPhysicalDeviceMemoryProperties2KHR.name = "vkGetPhysicalDeviceMemoryProperties2KHR"; + vkGetPhysicalDeviceMultisamplePropertiesEXT.p = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceMultisamplePropertiesEXT"); + vkGetPhysicalDeviceMultisamplePropertiesEXT.name = "vkGetPhysicalDeviceMultisamplePropertiesEXT"; + vkGetPhysicalDeviceOpticalFlowImageFormatsNV.p = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"); + vkGetPhysicalDeviceOpticalFlowImageFormatsNV.name = "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"; + vkGetPhysicalDevicePresentRectanglesKHR.p = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDevicePresentRectanglesKHR"); + vkGetPhysicalDevicePresentRectanglesKHR.name = "vkGetPhysicalDevicePresentRectanglesKHR"; + vkGetPhysicalDeviceProperties.p = (PFN_vkGetPhysicalDeviceProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceProperties"); + vkGetPhysicalDeviceProperties.name = "vkGetPhysicalDeviceProperties"; + vkGetPhysicalDeviceProperties2.p = (PFN_vkGetPhysicalDeviceProperties2)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceProperties2"); + vkGetPhysicalDeviceProperties2.name = "vkGetPhysicalDeviceProperties2"; + vkGetPhysicalDeviceProperties2KHR.p = (PFN_vkGetPhysicalDeviceProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceProperties2KHR"); + vkGetPhysicalDeviceProperties2KHR.name = "vkGetPhysicalDeviceProperties2KHR"; + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.p = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"); + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.name = "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"; + vkGetPhysicalDeviceQueueFamilyProperties.p = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceQueueFamilyProperties"); + vkGetPhysicalDeviceQueueFamilyProperties.name = "vkGetPhysicalDeviceQueueFamilyProperties"; + vkGetPhysicalDeviceQueueFamilyProperties2.p = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceQueueFamilyProperties2"); + vkGetPhysicalDeviceQueueFamilyProperties2.name = "vkGetPhysicalDeviceQueueFamilyProperties2"; + vkGetPhysicalDeviceQueueFamilyProperties2KHR.p = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"); + vkGetPhysicalDeviceQueueFamilyProperties2KHR.name = "vkGetPhysicalDeviceQueueFamilyProperties2KHR"; +#if defined(VK_USE_PLATFORM_SCREEN_QNX) + vkGetPhysicalDeviceScreenPresentationSupportQNX.p = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceScreenPresentationSupportQNX"); + vkGetPhysicalDeviceScreenPresentationSupportQNX.name = "vkGetPhysicalDeviceScreenPresentationSupportQNX"; +#endif + vkGetPhysicalDeviceSparseImageFormatProperties.p = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSparseImageFormatProperties"); + vkGetPhysicalDeviceSparseImageFormatProperties.name = "vkGetPhysicalDeviceSparseImageFormatProperties"; + vkGetPhysicalDeviceSparseImageFormatProperties2.p = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSparseImageFormatProperties2"); + vkGetPhysicalDeviceSparseImageFormatProperties2.name = "vkGetPhysicalDeviceSparseImageFormatProperties2"; + vkGetPhysicalDeviceSparseImageFormatProperties2KHR.p = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); + vkGetPhysicalDeviceSparseImageFormatProperties2KHR.name = "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"; + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.p = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"); + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.name = "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"; + vkGetPhysicalDeviceSurfaceCapabilities2EXT.p = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"); + vkGetPhysicalDeviceSurfaceCapabilities2EXT.name = "vkGetPhysicalDeviceSurfaceCapabilities2EXT"; + vkGetPhysicalDeviceSurfaceCapabilities2KHR.p = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"); + vkGetPhysicalDeviceSurfaceCapabilities2KHR.name = "vkGetPhysicalDeviceSurfaceCapabilities2KHR"; + vkGetPhysicalDeviceSurfaceCapabilitiesKHR.p = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); + vkGetPhysicalDeviceSurfaceCapabilitiesKHR.name = "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"; + vkGetPhysicalDeviceSurfaceFormats2KHR.p = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSurfaceFormats2KHR"); + vkGetPhysicalDeviceSurfaceFormats2KHR.name = "vkGetPhysicalDeviceSurfaceFormats2KHR"; + vkGetPhysicalDeviceSurfaceFormatsKHR.p = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSurfaceFormatsKHR"); + vkGetPhysicalDeviceSurfaceFormatsKHR.name = "vkGetPhysicalDeviceSurfaceFormatsKHR"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetPhysicalDeviceSurfacePresentModes2EXT.p = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSurfacePresentModes2EXT"); + vkGetPhysicalDeviceSurfacePresentModes2EXT.name = "vkGetPhysicalDeviceSurfacePresentModes2EXT"; +#endif + vkGetPhysicalDeviceSurfacePresentModesKHR.p = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSurfacePresentModesKHR"); + vkGetPhysicalDeviceSurfacePresentModesKHR.name = "vkGetPhysicalDeviceSurfacePresentModesKHR"; + vkGetPhysicalDeviceSurfaceSupportKHR.p = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceSurfaceSupportKHR"); + vkGetPhysicalDeviceSurfaceSupportKHR.name = "vkGetPhysicalDeviceSurfaceSupportKHR"; + vkGetPhysicalDeviceToolProperties.p = (PFN_vkGetPhysicalDeviceToolProperties)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceToolProperties"); + vkGetPhysicalDeviceToolProperties.name = "vkGetPhysicalDeviceToolProperties"; + vkGetPhysicalDeviceToolPropertiesEXT.p = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceToolPropertiesEXT"); + vkGetPhysicalDeviceToolPropertiesEXT.name = "vkGetPhysicalDeviceToolPropertiesEXT"; + vkGetPhysicalDeviceVideoCapabilitiesKHR.p = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceVideoCapabilitiesKHR"); + vkGetPhysicalDeviceVideoCapabilitiesKHR.name = "vkGetPhysicalDeviceVideoCapabilitiesKHR"; + vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.p = (PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR"); + vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.name = "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR"; + vkGetPhysicalDeviceVideoFormatPropertiesKHR.p = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceVideoFormatPropertiesKHR"); + vkGetPhysicalDeviceVideoFormatPropertiesKHR.name = "vkGetPhysicalDeviceVideoFormatPropertiesKHR"; +#if defined(VK_USE_PLATFORM_WAYLAND_KHR) + vkGetPhysicalDeviceWaylandPresentationSupportKHR.p = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"); + vkGetPhysicalDeviceWaylandPresentationSupportKHR.name = "vkGetPhysicalDeviceWaylandPresentationSupportKHR"; +#endif +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetPhysicalDeviceWin32PresentationSupportKHR.p = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceWin32PresentationSupportKHR"); + vkGetPhysicalDeviceWin32PresentationSupportKHR.name = "vkGetPhysicalDeviceWin32PresentationSupportKHR"; +#endif +#if defined(VK_USE_PLATFORM_XCB_KHR) + vkGetPhysicalDeviceXcbPresentationSupportKHR.p = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceXcbPresentationSupportKHR"); + vkGetPhysicalDeviceXcbPresentationSupportKHR.name = "vkGetPhysicalDeviceXcbPresentationSupportKHR"; +#endif +#if defined(VK_USE_PLATFORM_XLIB_KHR) + vkGetPhysicalDeviceXlibPresentationSupportKHR.p = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPhysicalDeviceXlibPresentationSupportKHR"); + vkGetPhysicalDeviceXlibPresentationSupportKHR.name = "vkGetPhysicalDeviceXlibPresentationSupportKHR"; +#endif + vkGetPipelineBinaryDataKHR.p = (PFN_vkGetPipelineBinaryDataKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelineBinaryDataKHR"); + vkGetPipelineBinaryDataKHR.name = "vkGetPipelineBinaryDataKHR"; + vkGetPipelineCacheData.p = (PFN_vkGetPipelineCacheData)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelineCacheData"); + vkGetPipelineCacheData.name = "vkGetPipelineCacheData"; + vkGetPipelineExecutableInternalRepresentationsKHR.p = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelineExecutableInternalRepresentationsKHR"); + vkGetPipelineExecutableInternalRepresentationsKHR.name = "vkGetPipelineExecutableInternalRepresentationsKHR"; + vkGetPipelineExecutablePropertiesKHR.p = (PFN_vkGetPipelineExecutablePropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelineExecutablePropertiesKHR"); + vkGetPipelineExecutablePropertiesKHR.name = "vkGetPipelineExecutablePropertiesKHR"; + vkGetPipelineExecutableStatisticsKHR.p = (PFN_vkGetPipelineExecutableStatisticsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelineExecutableStatisticsKHR"); + vkGetPipelineExecutableStatisticsKHR.name = "vkGetPipelineExecutableStatisticsKHR"; + vkGetPipelineIndirectDeviceAddressNV.p = (PFN_vkGetPipelineIndirectDeviceAddressNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelineIndirectDeviceAddressNV"); + vkGetPipelineIndirectDeviceAddressNV.name = "vkGetPipelineIndirectDeviceAddressNV"; + vkGetPipelineIndirectMemoryRequirementsNV.p = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelineIndirectMemoryRequirementsNV"); + vkGetPipelineIndirectMemoryRequirementsNV.name = "vkGetPipelineIndirectMemoryRequirementsNV"; + vkGetPipelineKeyKHR.p = (PFN_vkGetPipelineKeyKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelineKeyKHR"); + vkGetPipelineKeyKHR.name = "vkGetPipelineKeyKHR"; + vkGetPipelinePropertiesEXT.p = (PFN_vkGetPipelinePropertiesEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetPipelinePropertiesEXT"); + vkGetPipelinePropertiesEXT.name = "vkGetPipelinePropertiesEXT"; + vkGetPrivateData.p = (PFN_vkGetPrivateData)vkGetInstanceProcAddr.p(nullptr, "vkGetPrivateData"); + vkGetPrivateData.name = "vkGetPrivateData"; + vkGetPrivateDataEXT.p = (PFN_vkGetPrivateDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetPrivateDataEXT"); + vkGetPrivateDataEXT.name = "vkGetPrivateDataEXT"; + vkGetQueryPoolResults.p = (PFN_vkGetQueryPoolResults)vkGetInstanceProcAddr.p(nullptr, "vkGetQueryPoolResults"); + vkGetQueryPoolResults.name = "vkGetQueryPoolResults"; + vkGetQueueCheckpointData2NV.p = (PFN_vkGetQueueCheckpointData2NV)vkGetInstanceProcAddr.p(nullptr, "vkGetQueueCheckpointData2NV"); + vkGetQueueCheckpointData2NV.name = "vkGetQueueCheckpointData2NV"; + vkGetQueueCheckpointDataNV.p = (PFN_vkGetQueueCheckpointDataNV)vkGetInstanceProcAddr.p(nullptr, "vkGetQueueCheckpointDataNV"); + vkGetQueueCheckpointDataNV.name = "vkGetQueueCheckpointDataNV"; +#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) + vkGetRandROutputDisplayEXT.p = (PFN_vkGetRandROutputDisplayEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetRandROutputDisplayEXT"); + vkGetRandROutputDisplayEXT.name = "vkGetRandROutputDisplayEXT"; +#endif + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.p = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"); + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.name = "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"; + vkGetRayTracingShaderGroupHandlesKHR.p = (PFN_vkGetRayTracingShaderGroupHandlesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetRayTracingShaderGroupHandlesKHR"); + vkGetRayTracingShaderGroupHandlesKHR.name = "vkGetRayTracingShaderGroupHandlesKHR"; + vkGetRayTracingShaderGroupHandlesNV.p = (PFN_vkGetRayTracingShaderGroupHandlesNV)vkGetInstanceProcAddr.p(nullptr, "vkGetRayTracingShaderGroupHandlesNV"); + vkGetRayTracingShaderGroupHandlesNV.name = "vkGetRayTracingShaderGroupHandlesNV"; + vkGetRayTracingShaderGroupStackSizeKHR.p = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetRayTracingShaderGroupStackSizeKHR"); + vkGetRayTracingShaderGroupStackSizeKHR.name = "vkGetRayTracingShaderGroupStackSizeKHR"; + vkGetRefreshCycleDurationGOOGLE.p = (PFN_vkGetRefreshCycleDurationGOOGLE)vkGetInstanceProcAddr.p(nullptr, "vkGetRefreshCycleDurationGOOGLE"); + vkGetRefreshCycleDurationGOOGLE.name = "vkGetRefreshCycleDurationGOOGLE"; + vkGetRenderAreaGranularity.p = (PFN_vkGetRenderAreaGranularity)vkGetInstanceProcAddr.p(nullptr, "vkGetRenderAreaGranularity"); + vkGetRenderAreaGranularity.name = "vkGetRenderAreaGranularity"; + vkGetRenderingAreaGranularity.p = (PFN_vkGetRenderingAreaGranularity)vkGetInstanceProcAddr.p(nullptr, "vkGetRenderingAreaGranularity"); + vkGetRenderingAreaGranularity.name = "vkGetRenderingAreaGranularity"; + vkGetRenderingAreaGranularityKHR.p = (PFN_vkGetRenderingAreaGranularityKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetRenderingAreaGranularityKHR"); + vkGetRenderingAreaGranularityKHR.name = "vkGetRenderingAreaGranularityKHR"; + vkGetSamplerOpaqueCaptureDescriptorDataEXT.p = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetSamplerOpaqueCaptureDescriptorDataEXT"); + vkGetSamplerOpaqueCaptureDescriptorDataEXT.name = "vkGetSamplerOpaqueCaptureDescriptorDataEXT"; +#if defined(VK_USE_PLATFORM_SCREEN_QNX) + vkGetScreenBufferPropertiesQNX.p = (PFN_vkGetScreenBufferPropertiesQNX)vkGetInstanceProcAddr.p(nullptr, "vkGetScreenBufferPropertiesQNX"); + vkGetScreenBufferPropertiesQNX.name = "vkGetScreenBufferPropertiesQNX"; +#endif + vkGetSemaphoreCounterValue.p = (PFN_vkGetSemaphoreCounterValue)vkGetInstanceProcAddr.p(nullptr, "vkGetSemaphoreCounterValue"); + vkGetSemaphoreCounterValue.name = "vkGetSemaphoreCounterValue"; + vkGetSemaphoreCounterValueKHR.p = (PFN_vkGetSemaphoreCounterValueKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetSemaphoreCounterValueKHR"); + vkGetSemaphoreCounterValueKHR.name = "vkGetSemaphoreCounterValueKHR"; + vkGetSemaphoreFdKHR.p = (PFN_vkGetSemaphoreFdKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetSemaphoreFdKHR"); + vkGetSemaphoreFdKHR.name = "vkGetSemaphoreFdKHR"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetSemaphoreWin32HandleKHR.p = (PFN_vkGetSemaphoreWin32HandleKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetSemaphoreWin32HandleKHR"); + vkGetSemaphoreWin32HandleKHR.name = "vkGetSemaphoreWin32HandleKHR"; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkGetSemaphoreZirconHandleFUCHSIA.p = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkGetSemaphoreZirconHandleFUCHSIA"); + vkGetSemaphoreZirconHandleFUCHSIA.name = "vkGetSemaphoreZirconHandleFUCHSIA"; +#endif + vkGetShaderBinaryDataEXT.p = (PFN_vkGetShaderBinaryDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetShaderBinaryDataEXT"); + vkGetShaderBinaryDataEXT.name = "vkGetShaderBinaryDataEXT"; + vkGetShaderInfoAMD.p = (PFN_vkGetShaderInfoAMD)vkGetInstanceProcAddr.p(nullptr, "vkGetShaderInfoAMD"); + vkGetShaderInfoAMD.name = "vkGetShaderInfoAMD"; + vkGetShaderModuleCreateInfoIdentifierEXT.p = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetShaderModuleCreateInfoIdentifierEXT"); + vkGetShaderModuleCreateInfoIdentifierEXT.name = "vkGetShaderModuleCreateInfoIdentifierEXT"; + vkGetShaderModuleIdentifierEXT.p = (PFN_vkGetShaderModuleIdentifierEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetShaderModuleIdentifierEXT"); + vkGetShaderModuleIdentifierEXT.name = "vkGetShaderModuleIdentifierEXT"; + vkGetSwapchainCounterEXT.p = (PFN_vkGetSwapchainCounterEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetSwapchainCounterEXT"); + vkGetSwapchainCounterEXT.name = "vkGetSwapchainCounterEXT"; + vkGetSwapchainImagesKHR.p = (PFN_vkGetSwapchainImagesKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetSwapchainImagesKHR"); + vkGetSwapchainImagesKHR.name = "vkGetSwapchainImagesKHR"; + vkGetSwapchainStatusKHR.p = (PFN_vkGetSwapchainStatusKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetSwapchainStatusKHR"); + vkGetSwapchainStatusKHR.name = "vkGetSwapchainStatusKHR"; + vkGetValidationCacheDataEXT.p = (PFN_vkGetValidationCacheDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkGetValidationCacheDataEXT"); + vkGetValidationCacheDataEXT.name = "vkGetValidationCacheDataEXT"; + vkGetVideoSessionMemoryRequirementsKHR.p = (PFN_vkGetVideoSessionMemoryRequirementsKHR)vkGetInstanceProcAddr.p(nullptr, "vkGetVideoSessionMemoryRequirementsKHR"); + vkGetVideoSessionMemoryRequirementsKHR.name = "vkGetVideoSessionMemoryRequirementsKHR"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkGetWinrtDisplayNV.p = (PFN_vkGetWinrtDisplayNV)vkGetInstanceProcAddr.p(nullptr, "vkGetWinrtDisplayNV"); + vkGetWinrtDisplayNV.name = "vkGetWinrtDisplayNV"; +#endif + vkImportFenceFdKHR.p = (PFN_vkImportFenceFdKHR)vkGetInstanceProcAddr.p(nullptr, "vkImportFenceFdKHR"); + vkImportFenceFdKHR.name = "vkImportFenceFdKHR"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkImportFenceWin32HandleKHR.p = (PFN_vkImportFenceWin32HandleKHR)vkGetInstanceProcAddr.p(nullptr, "vkImportFenceWin32HandleKHR"); + vkImportFenceWin32HandleKHR.name = "vkImportFenceWin32HandleKHR"; +#endif + vkImportSemaphoreFdKHR.p = (PFN_vkImportSemaphoreFdKHR)vkGetInstanceProcAddr.p(nullptr, "vkImportSemaphoreFdKHR"); + vkImportSemaphoreFdKHR.name = "vkImportSemaphoreFdKHR"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkImportSemaphoreWin32HandleKHR.p = (PFN_vkImportSemaphoreWin32HandleKHR)vkGetInstanceProcAddr.p(nullptr, "vkImportSemaphoreWin32HandleKHR"); + vkImportSemaphoreWin32HandleKHR.name = "vkImportSemaphoreWin32HandleKHR"; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkImportSemaphoreZirconHandleFUCHSIA.p = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkImportSemaphoreZirconHandleFUCHSIA"); + vkImportSemaphoreZirconHandleFUCHSIA.name = "vkImportSemaphoreZirconHandleFUCHSIA"; +#endif + vkInitializePerformanceApiINTEL.p = (PFN_vkInitializePerformanceApiINTEL)vkGetInstanceProcAddr.p(nullptr, "vkInitializePerformanceApiINTEL"); + vkInitializePerformanceApiINTEL.name = "vkInitializePerformanceApiINTEL"; + vkInvalidateMappedMemoryRanges.p = (PFN_vkInvalidateMappedMemoryRanges)vkGetInstanceProcAddr.p(nullptr, "vkInvalidateMappedMemoryRanges"); + vkInvalidateMappedMemoryRanges.name = "vkInvalidateMappedMemoryRanges"; + vkLatencySleepNV.p = (PFN_vkLatencySleepNV)vkGetInstanceProcAddr.p(nullptr, "vkLatencySleepNV"); + vkLatencySleepNV.name = "vkLatencySleepNV"; + vkMapMemory.p = (PFN_vkMapMemory)vkGetInstanceProcAddr.p(nullptr, "vkMapMemory"); + vkMapMemory.name = "vkMapMemory"; + vkMapMemory2.p = (PFN_vkMapMemory2)vkGetInstanceProcAddr.p(nullptr, "vkMapMemory2"); + vkMapMemory2.name = "vkMapMemory2"; + vkMapMemory2KHR.p = (PFN_vkMapMemory2KHR)vkGetInstanceProcAddr.p(nullptr, "vkMapMemory2KHR"); + vkMapMemory2KHR.name = "vkMapMemory2KHR"; + vkMergePipelineCaches.p = (PFN_vkMergePipelineCaches)vkGetInstanceProcAddr.p(nullptr, "vkMergePipelineCaches"); + vkMergePipelineCaches.name = "vkMergePipelineCaches"; + vkMergeValidationCachesEXT.p = (PFN_vkMergeValidationCachesEXT)vkGetInstanceProcAddr.p(nullptr, "vkMergeValidationCachesEXT"); + vkMergeValidationCachesEXT.name = "vkMergeValidationCachesEXT"; + vkQueueBeginDebugUtilsLabelEXT.p = (PFN_vkQueueBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr.p(nullptr, "vkQueueBeginDebugUtilsLabelEXT"); + vkQueueBeginDebugUtilsLabelEXT.name = "vkQueueBeginDebugUtilsLabelEXT"; + vkQueueBindSparse.p = (PFN_vkQueueBindSparse)vkGetInstanceProcAddr.p(nullptr, "vkQueueBindSparse"); + vkQueueBindSparse.name = "vkQueueBindSparse"; + vkQueueEndDebugUtilsLabelEXT.p = (PFN_vkQueueEndDebugUtilsLabelEXT)vkGetInstanceProcAddr.p(nullptr, "vkQueueEndDebugUtilsLabelEXT"); + vkQueueEndDebugUtilsLabelEXT.name = "vkQueueEndDebugUtilsLabelEXT"; + vkQueueInsertDebugUtilsLabelEXT.p = (PFN_vkQueueInsertDebugUtilsLabelEXT)vkGetInstanceProcAddr.p(nullptr, "vkQueueInsertDebugUtilsLabelEXT"); + vkQueueInsertDebugUtilsLabelEXT.name = "vkQueueInsertDebugUtilsLabelEXT"; + vkQueueNotifyOutOfBandNV.p = (PFN_vkQueueNotifyOutOfBandNV)vkGetInstanceProcAddr.p(nullptr, "vkQueueNotifyOutOfBandNV"); + vkQueueNotifyOutOfBandNV.name = "vkQueueNotifyOutOfBandNV"; + vkQueuePresentKHR.p = (PFN_vkQueuePresentKHR)vkGetInstanceProcAddr.p(nullptr, "vkQueuePresentKHR"); + vkQueuePresentKHR.name = "vkQueuePresentKHR"; + vkQueueSetPerformanceConfigurationINTEL.p = (PFN_vkQueueSetPerformanceConfigurationINTEL)vkGetInstanceProcAddr.p(nullptr, "vkQueueSetPerformanceConfigurationINTEL"); + vkQueueSetPerformanceConfigurationINTEL.name = "vkQueueSetPerformanceConfigurationINTEL"; + vkQueueSubmit.p = (PFN_vkQueueSubmit)vkGetInstanceProcAddr.p(nullptr, "vkQueueSubmit"); + vkQueueSubmit.name = "vkQueueSubmit"; + vkQueueSubmit2.p = (PFN_vkQueueSubmit2)vkGetInstanceProcAddr.p(nullptr, "vkQueueSubmit2"); + vkQueueSubmit2.name = "vkQueueSubmit2"; + vkQueueSubmit2KHR.p = (PFN_vkQueueSubmit2KHR)vkGetInstanceProcAddr.p(nullptr, "vkQueueSubmit2KHR"); + vkQueueSubmit2KHR.name = "vkQueueSubmit2KHR"; + vkQueueWaitIdle.p = (PFN_vkQueueWaitIdle)vkGetInstanceProcAddr.p(nullptr, "vkQueueWaitIdle"); + vkQueueWaitIdle.name = "vkQueueWaitIdle"; + vkRegisterDeviceEventEXT.p = (PFN_vkRegisterDeviceEventEXT)vkGetInstanceProcAddr.p(nullptr, "vkRegisterDeviceEventEXT"); + vkRegisterDeviceEventEXT.name = "vkRegisterDeviceEventEXT"; + vkRegisterDisplayEventEXT.p = (PFN_vkRegisterDisplayEventEXT)vkGetInstanceProcAddr.p(nullptr, "vkRegisterDisplayEventEXT"); + vkRegisterDisplayEventEXT.name = "vkRegisterDisplayEventEXT"; + vkReleaseCapturedPipelineDataKHR.p = (PFN_vkReleaseCapturedPipelineDataKHR)vkGetInstanceProcAddr.p(nullptr, "vkReleaseCapturedPipelineDataKHR"); + vkReleaseCapturedPipelineDataKHR.name = "vkReleaseCapturedPipelineDataKHR"; + vkReleaseDisplayEXT.p = (PFN_vkReleaseDisplayEXT)vkGetInstanceProcAddr.p(nullptr, "vkReleaseDisplayEXT"); + vkReleaseDisplayEXT.name = "vkReleaseDisplayEXT"; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + vkReleaseFullScreenExclusiveModeEXT.p = (PFN_vkReleaseFullScreenExclusiveModeEXT)vkGetInstanceProcAddr.p(nullptr, "vkReleaseFullScreenExclusiveModeEXT"); + vkReleaseFullScreenExclusiveModeEXT.name = "vkReleaseFullScreenExclusiveModeEXT"; +#endif + vkReleasePerformanceConfigurationINTEL.p = (PFN_vkReleasePerformanceConfigurationINTEL)vkGetInstanceProcAddr.p(nullptr, "vkReleasePerformanceConfigurationINTEL"); + vkReleasePerformanceConfigurationINTEL.name = "vkReleasePerformanceConfigurationINTEL"; + vkReleaseProfilingLockKHR.p = (PFN_vkReleaseProfilingLockKHR)vkGetInstanceProcAddr.p(nullptr, "vkReleaseProfilingLockKHR"); + vkReleaseProfilingLockKHR.name = "vkReleaseProfilingLockKHR"; + vkReleaseSwapchainImagesEXT.p = (PFN_vkReleaseSwapchainImagesEXT)vkGetInstanceProcAddr.p(nullptr, "vkReleaseSwapchainImagesEXT"); + vkReleaseSwapchainImagesEXT.name = "vkReleaseSwapchainImagesEXT"; + vkResetCommandBuffer.p = (PFN_vkResetCommandBuffer)vkGetInstanceProcAddr.p(nullptr, "vkResetCommandBuffer"); + vkResetCommandBuffer.name = "vkResetCommandBuffer"; + vkResetCommandPool.p = (PFN_vkResetCommandPool)vkGetInstanceProcAddr.p(nullptr, "vkResetCommandPool"); + vkResetCommandPool.name = "vkResetCommandPool"; + vkResetDescriptorPool.p = (PFN_vkResetDescriptorPool)vkGetInstanceProcAddr.p(nullptr, "vkResetDescriptorPool"); + vkResetDescriptorPool.name = "vkResetDescriptorPool"; + vkResetEvent.p = (PFN_vkResetEvent)vkGetInstanceProcAddr.p(nullptr, "vkResetEvent"); + vkResetEvent.name = "vkResetEvent"; + vkResetFences.p = (PFN_vkResetFences)vkGetInstanceProcAddr.p(nullptr, "vkResetFences"); + vkResetFences.name = "vkResetFences"; + vkResetQueryPool.p = (PFN_vkResetQueryPool)vkGetInstanceProcAddr.p(nullptr, "vkResetQueryPool"); + vkResetQueryPool.name = "vkResetQueryPool"; + vkResetQueryPoolEXT.p = (PFN_vkResetQueryPoolEXT)vkGetInstanceProcAddr.p(nullptr, "vkResetQueryPoolEXT"); + vkResetQueryPoolEXT.name = "vkResetQueryPoolEXT"; +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkSetBufferCollectionBufferConstraintsFUCHSIA.p = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkSetBufferCollectionBufferConstraintsFUCHSIA"); + vkSetBufferCollectionBufferConstraintsFUCHSIA.name = "vkSetBufferCollectionBufferConstraintsFUCHSIA"; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + vkSetBufferCollectionImageConstraintsFUCHSIA.p = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)vkGetInstanceProcAddr.p(nullptr, "vkSetBufferCollectionImageConstraintsFUCHSIA"); + vkSetBufferCollectionImageConstraintsFUCHSIA.name = "vkSetBufferCollectionImageConstraintsFUCHSIA"; +#endif + vkSetDebugUtilsObjectNameEXT.p = (PFN_vkSetDebugUtilsObjectNameEXT)vkGetInstanceProcAddr.p(nullptr, "vkSetDebugUtilsObjectNameEXT"); + vkSetDebugUtilsObjectNameEXT.name = "vkSetDebugUtilsObjectNameEXT"; + vkSetDebugUtilsObjectTagEXT.p = (PFN_vkSetDebugUtilsObjectTagEXT)vkGetInstanceProcAddr.p(nullptr, "vkSetDebugUtilsObjectTagEXT"); + vkSetDebugUtilsObjectTagEXT.name = "vkSetDebugUtilsObjectTagEXT"; + vkSetDeviceMemoryPriorityEXT.p = (PFN_vkSetDeviceMemoryPriorityEXT)vkGetInstanceProcAddr.p(nullptr, "vkSetDeviceMemoryPriorityEXT"); + vkSetDeviceMemoryPriorityEXT.name = "vkSetDeviceMemoryPriorityEXT"; + vkSetEvent.p = (PFN_vkSetEvent)vkGetInstanceProcAddr.p(nullptr, "vkSetEvent"); + vkSetEvent.name = "vkSetEvent"; + vkSetHdrMetadataEXT.p = (PFN_vkSetHdrMetadataEXT)vkGetInstanceProcAddr.p(nullptr, "vkSetHdrMetadataEXT"); + vkSetHdrMetadataEXT.name = "vkSetHdrMetadataEXT"; + vkSetLatencyMarkerNV.p = (PFN_vkSetLatencyMarkerNV)vkGetInstanceProcAddr.p(nullptr, "vkSetLatencyMarkerNV"); + vkSetLatencyMarkerNV.name = "vkSetLatencyMarkerNV"; + vkSetLatencySleepModeNV.p = (PFN_vkSetLatencySleepModeNV)vkGetInstanceProcAddr.p(nullptr, "vkSetLatencySleepModeNV"); + vkSetLatencySleepModeNV.name = "vkSetLatencySleepModeNV"; + vkSetLocalDimmingAMD.p = (PFN_vkSetLocalDimmingAMD)vkGetInstanceProcAddr.p(nullptr, "vkSetLocalDimmingAMD"); + vkSetLocalDimmingAMD.name = "vkSetLocalDimmingAMD"; + vkSetPrivateData.p = (PFN_vkSetPrivateData)vkGetInstanceProcAddr.p(nullptr, "vkSetPrivateData"); + vkSetPrivateData.name = "vkSetPrivateData"; + vkSetPrivateDataEXT.p = (PFN_vkSetPrivateDataEXT)vkGetInstanceProcAddr.p(nullptr, "vkSetPrivateDataEXT"); + vkSetPrivateDataEXT.name = "vkSetPrivateDataEXT"; + vkSignalSemaphore.p = (PFN_vkSignalSemaphore)vkGetInstanceProcAddr.p(nullptr, "vkSignalSemaphore"); + vkSignalSemaphore.name = "vkSignalSemaphore"; + vkSignalSemaphoreKHR.p = (PFN_vkSignalSemaphoreKHR)vkGetInstanceProcAddr.p(nullptr, "vkSignalSemaphoreKHR"); + vkSignalSemaphoreKHR.name = "vkSignalSemaphoreKHR"; + vkSubmitDebugUtilsMessageEXT.p = (PFN_vkSubmitDebugUtilsMessageEXT)vkGetInstanceProcAddr.p(nullptr, "vkSubmitDebugUtilsMessageEXT"); + vkSubmitDebugUtilsMessageEXT.name = "vkSubmitDebugUtilsMessageEXT"; + vkTransitionImageLayout.p = (PFN_vkTransitionImageLayout)vkGetInstanceProcAddr.p(nullptr, "vkTransitionImageLayout"); + vkTransitionImageLayout.name = "vkTransitionImageLayout"; + vkTransitionImageLayoutEXT.p = (PFN_vkTransitionImageLayoutEXT)vkGetInstanceProcAddr.p(nullptr, "vkTransitionImageLayoutEXT"); + vkTransitionImageLayoutEXT.name = "vkTransitionImageLayoutEXT"; + vkTrimCommandPool.p = (PFN_vkTrimCommandPool)vkGetInstanceProcAddr.p(nullptr, "vkTrimCommandPool"); + vkTrimCommandPool.name = "vkTrimCommandPool"; + vkTrimCommandPoolKHR.p = (PFN_vkTrimCommandPoolKHR)vkGetInstanceProcAddr.p(nullptr, "vkTrimCommandPoolKHR"); + vkTrimCommandPoolKHR.name = "vkTrimCommandPoolKHR"; + vkUninitializePerformanceApiINTEL.p = (PFN_vkUninitializePerformanceApiINTEL)vkGetInstanceProcAddr.p(nullptr, "vkUninitializePerformanceApiINTEL"); + vkUninitializePerformanceApiINTEL.name = "vkUninitializePerformanceApiINTEL"; + vkUnmapMemory.p = (PFN_vkUnmapMemory)vkGetInstanceProcAddr.p(nullptr, "vkUnmapMemory"); + vkUnmapMemory.name = "vkUnmapMemory"; + vkUnmapMemory2.p = (PFN_vkUnmapMemory2)vkGetInstanceProcAddr.p(nullptr, "vkUnmapMemory2"); + vkUnmapMemory2.name = "vkUnmapMemory2"; + vkUnmapMemory2KHR.p = (PFN_vkUnmapMemory2KHR)vkGetInstanceProcAddr.p(nullptr, "vkUnmapMemory2KHR"); + vkUnmapMemory2KHR.name = "vkUnmapMemory2KHR"; + vkUpdateDescriptorSets.p = (PFN_vkUpdateDescriptorSets)vkGetInstanceProcAddr.p(nullptr, "vkUpdateDescriptorSets"); + vkUpdateDescriptorSets.name = "vkUpdateDescriptorSets"; + vkUpdateDescriptorSetWithTemplate.p = (PFN_vkUpdateDescriptorSetWithTemplate)vkGetInstanceProcAddr.p(nullptr, "vkUpdateDescriptorSetWithTemplate"); + vkUpdateDescriptorSetWithTemplate.name = "vkUpdateDescriptorSetWithTemplate"; + vkUpdateDescriptorSetWithTemplateKHR.p = (PFN_vkUpdateDescriptorSetWithTemplateKHR)vkGetInstanceProcAddr.p(nullptr, "vkUpdateDescriptorSetWithTemplateKHR"); + vkUpdateDescriptorSetWithTemplateKHR.name = "vkUpdateDescriptorSetWithTemplateKHR"; + vkUpdateIndirectExecutionSetPipelineEXT.p = (PFN_vkUpdateIndirectExecutionSetPipelineEXT)vkGetInstanceProcAddr.p(nullptr, "vkUpdateIndirectExecutionSetPipelineEXT"); + vkUpdateIndirectExecutionSetPipelineEXT.name = "vkUpdateIndirectExecutionSetPipelineEXT"; + vkUpdateIndirectExecutionSetShaderEXT.p = (PFN_vkUpdateIndirectExecutionSetShaderEXT)vkGetInstanceProcAddr.p(nullptr, "vkUpdateIndirectExecutionSetShaderEXT"); + vkUpdateIndirectExecutionSetShaderEXT.name = "vkUpdateIndirectExecutionSetShaderEXT"; + vkUpdateVideoSessionParametersKHR.p = (PFN_vkUpdateVideoSessionParametersKHR)vkGetInstanceProcAddr.p(nullptr, "vkUpdateVideoSessionParametersKHR"); + vkUpdateVideoSessionParametersKHR.name = "vkUpdateVideoSessionParametersKHR"; + vkWaitForFences.p = (PFN_vkWaitForFences)vkGetInstanceProcAddr.p(nullptr, "vkWaitForFences"); + vkWaitForFences.name = "vkWaitForFences"; + vkWaitForPresentKHR.p = (PFN_vkWaitForPresentKHR)vkGetInstanceProcAddr.p(nullptr, "vkWaitForPresentKHR"); + vkWaitForPresentKHR.name = "vkWaitForPresentKHR"; + vkWaitSemaphores.p = (PFN_vkWaitSemaphores)vkGetInstanceProcAddr.p(nullptr, "vkWaitSemaphores"); + vkWaitSemaphores.name = "vkWaitSemaphores"; + vkWaitSemaphoresKHR.p = (PFN_vkWaitSemaphoresKHR)vkGetInstanceProcAddr.p(nullptr, "vkWaitSemaphoresKHR"); + vkWaitSemaphoresKHR.name = "vkWaitSemaphoresKHR"; + vkWriteAccelerationStructuresPropertiesKHR.p = (PFN_vkWriteAccelerationStructuresPropertiesKHR)vkGetInstanceProcAddr.p(nullptr, "vkWriteAccelerationStructuresPropertiesKHR"); + vkWriteAccelerationStructuresPropertiesKHR.name = "vkWriteAccelerationStructuresPropertiesKHR"; + vkWriteMicromapsPropertiesEXT.p = (PFN_vkWriteMicromapsPropertiesEXT)vkGetInstanceProcAddr.p(nullptr, "vkWriteMicromapsPropertiesEXT"); + vkWriteMicromapsPropertiesEXT.name = "vkWriteMicromapsPropertiesEXT"; +} + +void VulkanFunctions::loadInstance(VkInstance instance){ +} + +void VulkanFunctions::loadDevice(VkDevice device){ + vkGetDeviceProcAddr.p = (PFN_vkGetDeviceProcAddr)vkGetInstanceProcAddr.p(nullptr, "vkGetDeviceProcAddr"); + vkGetDeviceProcAddr.name = "vkGetDeviceProcAddr"; +} + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/Generated/VulkanPP/VulkanFunctions.hpp b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VulkanFunctions.hpp new file mode 100644 index 0000000..c14eb43 --- /dev/null +++ b/Src/RenderFramework/Vulkan/Generated/VulkanPP/VulkanFunctions.hpp @@ -0,0 +1,890 @@ +#pragma once +#include +#include +#include +#include + +namespace VulkanPP { + +// Small callable wrapper around PFN_vk* that throws if not loaded. +template +struct Fn { + PFN p = nullptr; + const char* name = nullptr; + bool loaded() const noexcept { return p != nullptr; } + template + auto operator()(Args&&... args) const + -> decltype(p(std::forward(args)...)) + { + if (!p) throw std::runtime_error(std::string("Vulkan function not loaded: ") + (name ? name : "")); + return p(std::forward(args)...); + } +}; + +struct VulkanFunctions { + Fn vkAcquireDrmDisplayEXT; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkAcquireFullScreenExclusiveModeEXT; +#endif + Fn vkAcquireNextImage2KHR; + Fn vkAcquireNextImageKHR; + Fn vkAcquirePerformanceConfigurationINTEL; + Fn vkAcquireProfilingLockKHR; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkAcquireWinrtDisplayNV; +#endif +#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) + Fn vkAcquireXlibDisplayEXT; +#endif + Fn vkAllocateCommandBuffers; + Fn vkAllocateDescriptorSets; + Fn vkAllocateMemory; + Fn vkAntiLagUpdateAMD; + Fn vkBeginCommandBuffer; + Fn vkBindAccelerationStructureMemoryNV; + Fn vkBindBufferMemory; + Fn vkBindBufferMemory2; + Fn vkBindBufferMemory2KHR; + Fn vkBindImageMemory; + Fn vkBindImageMemory2; + Fn vkBindImageMemory2KHR; + Fn vkBindOpticalFlowSessionImageNV; + Fn vkBindVideoSessionMemoryKHR; + Fn vkBuildAccelerationStructuresKHR; + Fn vkBuildMicromapsEXT; + Fn vkCmdBeginConditionalRenderingEXT; + Fn vkCmdBeginDebugUtilsLabelEXT; + Fn vkCmdBeginPerTileExecutionQCOM; + Fn vkCmdBeginQuery; + Fn vkCmdBeginQueryIndexedEXT; + Fn vkCmdBeginRendering; + Fn vkCmdBeginRenderingKHR; + Fn vkCmdBeginRenderPass; + Fn vkCmdBeginRenderPass2; + Fn vkCmdBeginRenderPass2KHR; + Fn vkCmdBeginTransformFeedbackEXT; + Fn vkCmdBeginVideoCodingKHR; + Fn vkCmdBindDescriptorBufferEmbeddedSamplers2EXT; + Fn vkCmdBindDescriptorBufferEmbeddedSamplersEXT; + Fn vkCmdBindDescriptorBuffersEXT; + Fn vkCmdBindDescriptorSets; + Fn vkCmdBindDescriptorSets2; + Fn vkCmdBindDescriptorSets2KHR; + Fn vkCmdBindIndexBuffer; + Fn vkCmdBindIndexBuffer2; + Fn vkCmdBindIndexBuffer2KHR; + Fn vkCmdBindInvocationMaskHUAWEI; + Fn vkCmdBindPipeline; + Fn vkCmdBindPipelineShaderGroupNV; + Fn vkCmdBindShadersEXT; + Fn vkCmdBindShadingRateImageNV; + Fn vkCmdBindTileMemoryQCOM; + Fn vkCmdBindTransformFeedbackBuffersEXT; + Fn vkCmdBindVertexBuffers; + Fn vkCmdBindVertexBuffers2; + Fn vkCmdBindVertexBuffers2EXT; + Fn vkCmdBlitImage; + Fn vkCmdBlitImage2; + Fn vkCmdBlitImage2KHR; + Fn vkCmdBuildAccelerationStructureNV; + Fn vkCmdBuildAccelerationStructuresIndirectKHR; + Fn vkCmdBuildAccelerationStructuresKHR; + Fn vkCmdBuildClusterAccelerationStructureIndirectNV; + Fn vkCmdBuildMicromapsEXT; + Fn vkCmdBuildPartitionedAccelerationStructuresNV; + Fn vkCmdClearAttachments; + Fn vkCmdClearColorImage; + Fn vkCmdClearDepthStencilImage; + Fn vkCmdControlVideoCodingKHR; + Fn vkCmdConvertCooperativeVectorMatrixNV; + Fn vkCmdCopyAccelerationStructureKHR; + Fn vkCmdCopyAccelerationStructureNV; + Fn vkCmdCopyAccelerationStructureToMemoryKHR; + Fn vkCmdCopyBuffer; + Fn vkCmdCopyBuffer2; + Fn vkCmdCopyBuffer2KHR; + Fn vkCmdCopyBufferToImage; + Fn vkCmdCopyBufferToImage2; + Fn vkCmdCopyBufferToImage2KHR; + Fn vkCmdCopyImage; + Fn vkCmdCopyImage2; + Fn vkCmdCopyImage2KHR; + Fn vkCmdCopyImageToBuffer; + Fn vkCmdCopyImageToBuffer2; + Fn vkCmdCopyImageToBuffer2KHR; + Fn vkCmdCopyMemoryIndirectNV; + Fn vkCmdCopyMemoryToAccelerationStructureKHR; + Fn vkCmdCopyMemoryToImageIndirectNV; + Fn vkCmdCopyMemoryToMicromapEXT; + Fn vkCmdCopyMicromapEXT; + Fn vkCmdCopyMicromapToMemoryEXT; + Fn vkCmdCopyQueryPoolResults; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkCmdCudaLaunchKernelNV; +#endif + Fn vkCmdCuLaunchKernelNVX; + Fn vkCmdDebugMarkerBeginEXT; + Fn vkCmdDebugMarkerEndEXT; + Fn vkCmdDebugMarkerInsertEXT; + Fn vkCmdDecodeVideoKHR; + Fn vkCmdDecompressMemoryIndirectCountNV; + Fn vkCmdDecompressMemoryNV; + Fn vkCmdDispatch; + Fn vkCmdDispatchBase; + Fn vkCmdDispatchBaseKHR; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkCmdDispatchGraphAMDX; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkCmdDispatchGraphIndirectAMDX; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkCmdDispatchGraphIndirectCountAMDX; +#endif + Fn vkCmdDispatchIndirect; + Fn vkCmdDispatchTileQCOM; + Fn vkCmdDraw; + Fn vkCmdDrawClusterHUAWEI; + Fn vkCmdDrawClusterIndirectHUAWEI; + Fn vkCmdDrawIndexed; + Fn vkCmdDrawIndexedIndirect; + Fn vkCmdDrawIndexedIndirectCount; + Fn vkCmdDrawIndexedIndirectCountAMD; + Fn vkCmdDrawIndexedIndirectCountKHR; + Fn vkCmdDrawIndirect; + Fn vkCmdDrawIndirectByteCountEXT; + Fn vkCmdDrawIndirectCount; + Fn vkCmdDrawIndirectCountAMD; + Fn vkCmdDrawIndirectCountKHR; + Fn vkCmdDrawMeshTasksEXT; + Fn vkCmdDrawMeshTasksIndirectCountEXT; + Fn vkCmdDrawMeshTasksIndirectCountNV; + Fn vkCmdDrawMeshTasksIndirectEXT; + Fn vkCmdDrawMeshTasksIndirectNV; + Fn vkCmdDrawMeshTasksNV; + Fn vkCmdDrawMultiEXT; + Fn vkCmdDrawMultiIndexedEXT; + Fn vkCmdEncodeVideoKHR; + Fn vkCmdEndConditionalRenderingEXT; + Fn vkCmdEndDebugUtilsLabelEXT; + Fn vkCmdEndPerTileExecutionQCOM; + Fn vkCmdEndQuery; + Fn vkCmdEndQueryIndexedEXT; + Fn vkCmdEndRendering; + Fn vkCmdEndRendering2EXT; + Fn vkCmdEndRenderingKHR; + Fn vkCmdEndRenderPass; + Fn vkCmdEndRenderPass2; + Fn vkCmdEndRenderPass2KHR; + Fn vkCmdEndTransformFeedbackEXT; + Fn vkCmdEndVideoCodingKHR; + Fn vkCmdExecuteCommands; + Fn vkCmdExecuteGeneratedCommandsEXT; + Fn vkCmdExecuteGeneratedCommandsNV; + Fn vkCmdFillBuffer; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkCmdInitializeGraphScratchMemoryAMDX; +#endif + Fn vkCmdInsertDebugUtilsLabelEXT; + Fn vkCmdNextSubpass; + Fn vkCmdNextSubpass2; + Fn vkCmdNextSubpass2KHR; + Fn vkCmdOpticalFlowExecuteNV; + Fn vkCmdPipelineBarrier; + Fn vkCmdPipelineBarrier2; + Fn vkCmdPipelineBarrier2KHR; + Fn vkCmdPreprocessGeneratedCommandsEXT; + Fn vkCmdPreprocessGeneratedCommandsNV; + Fn vkCmdPushConstants; + Fn vkCmdPushConstants2; + Fn vkCmdPushConstants2KHR; + Fn vkCmdPushDescriptorSet; + Fn vkCmdPushDescriptorSet2; + Fn vkCmdPushDescriptorSet2KHR; + Fn vkCmdPushDescriptorSetKHR; + Fn vkCmdPushDescriptorSetWithTemplate; + Fn vkCmdPushDescriptorSetWithTemplate2; + Fn vkCmdPushDescriptorSetWithTemplate2KHR; + Fn vkCmdPushDescriptorSetWithTemplateKHR; + Fn vkCmdResetEvent; + Fn vkCmdResetEvent2; + Fn vkCmdResetEvent2KHR; + Fn vkCmdResetQueryPool; + Fn vkCmdResolveImage; + Fn vkCmdResolveImage2; + Fn vkCmdResolveImage2KHR; + Fn vkCmdSetAlphaToCoverageEnableEXT; + Fn vkCmdSetAlphaToOneEnableEXT; + Fn vkCmdSetAttachmentFeedbackLoopEnableEXT; + Fn vkCmdSetBlendConstants; + Fn vkCmdSetCheckpointNV; + Fn vkCmdSetCoarseSampleOrderNV; + Fn vkCmdSetColorBlendAdvancedEXT; + Fn vkCmdSetColorBlendEnableEXT; + Fn vkCmdSetColorBlendEquationEXT; + Fn vkCmdSetColorWriteEnableEXT; + Fn vkCmdSetColorWriteMaskEXT; + Fn vkCmdSetConservativeRasterizationModeEXT; + Fn vkCmdSetCoverageModulationModeNV; + Fn vkCmdSetCoverageModulationTableEnableNV; + Fn vkCmdSetCoverageModulationTableNV; + Fn vkCmdSetCoverageReductionModeNV; + Fn vkCmdSetCoverageToColorEnableNV; + Fn vkCmdSetCoverageToColorLocationNV; + Fn vkCmdSetCullMode; + Fn vkCmdSetCullModeEXT; + Fn vkCmdSetDepthBias; + Fn vkCmdSetDepthBias2EXT; + Fn vkCmdSetDepthBiasEnable; + Fn vkCmdSetDepthBiasEnableEXT; + Fn vkCmdSetDepthBounds; + Fn vkCmdSetDepthBoundsTestEnable; + Fn vkCmdSetDepthBoundsTestEnableEXT; + Fn vkCmdSetDepthClampEnableEXT; + Fn vkCmdSetDepthClampRangeEXT; + Fn vkCmdSetDepthClipEnableEXT; + Fn vkCmdSetDepthClipNegativeOneToOneEXT; + Fn vkCmdSetDepthCompareOp; + Fn vkCmdSetDepthCompareOpEXT; + Fn vkCmdSetDepthTestEnable; + Fn vkCmdSetDepthTestEnableEXT; + Fn vkCmdSetDepthWriteEnable; + Fn vkCmdSetDepthWriteEnableEXT; + Fn vkCmdSetDescriptorBufferOffsets2EXT; + Fn vkCmdSetDescriptorBufferOffsetsEXT; + Fn vkCmdSetDeviceMask; + Fn vkCmdSetDeviceMaskKHR; + Fn vkCmdSetDiscardRectangleEnableEXT; + Fn vkCmdSetDiscardRectangleEXT; + Fn vkCmdSetDiscardRectangleModeEXT; + Fn vkCmdSetEvent; + Fn vkCmdSetEvent2; + Fn vkCmdSetEvent2KHR; + Fn vkCmdSetExclusiveScissorEnableNV; + Fn vkCmdSetExclusiveScissorNV; + Fn vkCmdSetExtraPrimitiveOverestimationSizeEXT; + Fn vkCmdSetFragmentShadingRateEnumNV; + Fn vkCmdSetFragmentShadingRateKHR; + Fn vkCmdSetFrontFace; + Fn vkCmdSetFrontFaceEXT; + Fn vkCmdSetLineRasterizationModeEXT; + Fn vkCmdSetLineStipple; + Fn vkCmdSetLineStippleEnableEXT; + Fn vkCmdSetLineStippleEXT; + Fn vkCmdSetLineStippleKHR; + Fn vkCmdSetLineWidth; + Fn vkCmdSetLogicOpEnableEXT; + Fn vkCmdSetLogicOpEXT; + Fn vkCmdSetPatchControlPointsEXT; + Fn vkCmdSetPerformanceMarkerINTEL; + Fn vkCmdSetPerformanceOverrideINTEL; + Fn vkCmdSetPerformanceStreamMarkerINTEL; + Fn vkCmdSetPolygonModeEXT; + Fn vkCmdSetPrimitiveRestartEnable; + Fn vkCmdSetPrimitiveRestartEnableEXT; + Fn vkCmdSetPrimitiveTopology; + Fn vkCmdSetPrimitiveTopologyEXT; + Fn vkCmdSetProvokingVertexModeEXT; + Fn vkCmdSetRasterizationSamplesEXT; + Fn vkCmdSetRasterizationStreamEXT; + Fn vkCmdSetRasterizerDiscardEnable; + Fn vkCmdSetRasterizerDiscardEnableEXT; + Fn vkCmdSetRayTracingPipelineStackSizeKHR; + Fn vkCmdSetRenderingAttachmentLocations; + Fn vkCmdSetRenderingAttachmentLocationsKHR; + Fn vkCmdSetRenderingInputAttachmentIndices; + Fn vkCmdSetRenderingInputAttachmentIndicesKHR; + Fn vkCmdSetRepresentativeFragmentTestEnableNV; + Fn vkCmdSetSampleLocationsEnableEXT; + Fn vkCmdSetSampleLocationsEXT; + Fn vkCmdSetSampleMaskEXT; + Fn vkCmdSetScissor; + Fn vkCmdSetScissorWithCount; + Fn vkCmdSetScissorWithCountEXT; + Fn vkCmdSetShadingRateImageEnableNV; + Fn vkCmdSetStencilCompareMask; + Fn vkCmdSetStencilOp; + Fn vkCmdSetStencilOpEXT; + Fn vkCmdSetStencilReference; + Fn vkCmdSetStencilTestEnable; + Fn vkCmdSetStencilTestEnableEXT; + Fn vkCmdSetStencilWriteMask; + Fn vkCmdSetTessellationDomainOriginEXT; + Fn vkCmdSetVertexInputEXT; + Fn vkCmdSetViewport; + Fn vkCmdSetViewportShadingRatePaletteNV; + Fn vkCmdSetViewportSwizzleNV; + Fn vkCmdSetViewportWithCount; + Fn vkCmdSetViewportWithCountEXT; + Fn vkCmdSetViewportWScalingEnableNV; + Fn vkCmdSetViewportWScalingNV; + Fn vkCmdSubpassShadingHUAWEI; + Fn vkCmdTraceRaysIndirect2KHR; + Fn vkCmdTraceRaysIndirectKHR; + Fn vkCmdTraceRaysKHR; + Fn vkCmdTraceRaysNV; + Fn vkCmdUpdateBuffer; + Fn vkCmdUpdatePipelineIndirectBufferNV; + Fn vkCmdWaitEvents; + Fn vkCmdWaitEvents2; + Fn vkCmdWaitEvents2KHR; + Fn vkCmdWriteAccelerationStructuresPropertiesKHR; + Fn vkCmdWriteAccelerationStructuresPropertiesNV; + Fn vkCmdWriteBufferMarker2AMD; + Fn vkCmdWriteBufferMarkerAMD; + Fn vkCmdWriteMicromapsPropertiesEXT; + Fn vkCmdWriteTimestamp; + Fn vkCmdWriteTimestamp2; + Fn vkCmdWriteTimestamp2KHR; + Fn vkCompileDeferredNV; + Fn vkConvertCooperativeVectorMatrixNV; + Fn vkCopyAccelerationStructureKHR; + Fn vkCopyAccelerationStructureToMemoryKHR; + Fn vkCopyImageToImage; + Fn vkCopyImageToImageEXT; + Fn vkCopyImageToMemory; + Fn vkCopyImageToMemoryEXT; + Fn vkCopyMemoryToAccelerationStructureKHR; + Fn vkCopyMemoryToImage; + Fn vkCopyMemoryToImageEXT; + Fn vkCopyMemoryToMicromapEXT; + Fn vkCopyMicromapEXT; + Fn vkCopyMicromapToMemoryEXT; + Fn vkCreateAccelerationStructureKHR; + Fn vkCreateAccelerationStructureNV; +#if defined(VK_USE_PLATFORM_ANDROID_KHR) + Fn vkCreateAndroidSurfaceKHR; +#endif + Fn vkCreateBuffer; +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkCreateBufferCollectionFUCHSIA; +#endif + Fn vkCreateBufferView; + Fn vkCreateCommandPool; + Fn vkCreateComputePipelines; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkCreateCudaFunctionNV; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkCreateCudaModuleNV; +#endif + Fn vkCreateCuFunctionNVX; + Fn vkCreateCuModuleNVX; + Fn vkCreateDebugReportCallbackEXT; + Fn vkCreateDebugUtilsMessengerEXT; + Fn vkCreateDeferredOperationKHR; + Fn vkCreateDescriptorPool; + Fn vkCreateDescriptorSetLayout; + Fn vkCreateDescriptorUpdateTemplate; + Fn vkCreateDescriptorUpdateTemplateKHR; + Fn vkCreateDevice; +#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) + Fn vkCreateDirectFBSurfaceEXT; +#endif + Fn vkCreateDisplayModeKHR; + Fn vkCreateDisplayPlaneSurfaceKHR; + Fn vkCreateEvent; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkCreateExecutionGraphPipelinesAMDX; +#endif + Fn vkCreateExternalComputeQueueNV; + Fn vkCreateFence; + Fn vkCreateFramebuffer; + Fn vkCreateGraphicsPipelines; + Fn vkCreateHeadlessSurfaceEXT; + Fn vkCreateImage; +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkCreateImagePipeSurfaceFUCHSIA; +#endif + Fn vkCreateImageView; + Fn vkCreateIndirectCommandsLayoutEXT; + Fn vkCreateIndirectCommandsLayoutNV; + Fn vkCreateIndirectExecutionSetEXT; + Fn vkCreateInstance; +#if defined(VK_USE_PLATFORM_IOS_MVK) + Fn vkCreateIOSSurfaceMVK; +#endif +#if defined(VK_USE_PLATFORM_MACOS_MVK) + Fn vkCreateMacOSSurfaceMVK; +#endif +#if defined(VK_USE_PLATFORM_METAL_EXT) + Fn vkCreateMetalSurfaceEXT; +#endif + Fn vkCreateMicromapEXT; + Fn vkCreateOpticalFlowSessionNV; + Fn vkCreatePipelineBinariesKHR; + Fn vkCreatePipelineCache; + Fn vkCreatePipelineLayout; + Fn vkCreatePrivateDataSlot; + Fn vkCreatePrivateDataSlotEXT; + Fn vkCreateQueryPool; + Fn vkCreateRayTracingPipelinesKHR; + Fn vkCreateRayTracingPipelinesNV; + Fn vkCreateRenderPass; + Fn vkCreateRenderPass2; + Fn vkCreateRenderPass2KHR; + Fn vkCreateSampler; + Fn vkCreateSamplerYcbcrConversion; + Fn vkCreateSamplerYcbcrConversionKHR; +#if defined(VK_USE_PLATFORM_SCREEN_QNX) + Fn vkCreateScreenSurfaceQNX; +#endif + Fn vkCreateSemaphore; + Fn vkCreateShaderModule; + Fn vkCreateShadersEXT; + Fn vkCreateSharedSwapchainsKHR; +#if defined(VK_USE_PLATFORM_GGP) + Fn vkCreateStreamDescriptorSurfaceGGP; +#endif + Fn vkCreateSwapchainKHR; + Fn vkCreateValidationCacheEXT; + Fn vkCreateVideoSessionKHR; + Fn vkCreateVideoSessionParametersKHR; +#if defined(VK_USE_PLATFORM_VI_NN) + Fn vkCreateViSurfaceNN; +#endif +#if defined(VK_USE_PLATFORM_WAYLAND_KHR) + Fn vkCreateWaylandSurfaceKHR; +#endif +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkCreateWin32SurfaceKHR; +#endif +#if defined(VK_USE_PLATFORM_XCB_KHR) + Fn vkCreateXcbSurfaceKHR; +#endif +#if defined(VK_USE_PLATFORM_XLIB_KHR) + Fn vkCreateXlibSurfaceKHR; +#endif + Fn vkDebugMarkerSetObjectNameEXT; + Fn vkDebugMarkerSetObjectTagEXT; + Fn vkDebugReportMessageEXT; + Fn vkDeferredOperationJoinKHR; + Fn vkDestroyAccelerationStructureKHR; + Fn vkDestroyAccelerationStructureNV; + Fn vkDestroyBuffer; +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkDestroyBufferCollectionFUCHSIA; +#endif + Fn vkDestroyBufferView; + Fn vkDestroyCommandPool; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkDestroyCudaFunctionNV; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkDestroyCudaModuleNV; +#endif + Fn vkDestroyCuFunctionNVX; + Fn vkDestroyCuModuleNVX; + Fn vkDestroyDebugReportCallbackEXT; + Fn vkDestroyDebugUtilsMessengerEXT; + Fn vkDestroyDeferredOperationKHR; + Fn vkDestroyDescriptorPool; + Fn vkDestroyDescriptorSetLayout; + Fn vkDestroyDescriptorUpdateTemplate; + Fn vkDestroyDescriptorUpdateTemplateKHR; + Fn vkDestroyDevice; + Fn vkDestroyEvent; + Fn vkDestroyExternalComputeQueueNV; + Fn vkDestroyFence; + Fn vkDestroyFramebuffer; + Fn vkDestroyImage; + Fn vkDestroyImageView; + Fn vkDestroyIndirectCommandsLayoutEXT; + Fn vkDestroyIndirectCommandsLayoutNV; + Fn vkDestroyIndirectExecutionSetEXT; + Fn vkDestroyInstance; + Fn vkDestroyMicromapEXT; + Fn vkDestroyOpticalFlowSessionNV; + Fn vkDestroyPipeline; + Fn vkDestroyPipelineBinaryKHR; + Fn vkDestroyPipelineCache; + Fn vkDestroyPipelineLayout; + Fn vkDestroyPrivateDataSlot; + Fn vkDestroyPrivateDataSlotEXT; + Fn vkDestroyQueryPool; + Fn vkDestroyRenderPass; + Fn vkDestroySampler; + Fn vkDestroySamplerYcbcrConversion; + Fn vkDestroySamplerYcbcrConversionKHR; + Fn vkDestroySemaphore; + Fn vkDestroyShaderEXT; + Fn vkDestroyShaderModule; + Fn vkDestroySurfaceKHR; + Fn vkDestroySwapchainKHR; + Fn vkDestroyValidationCacheEXT; + Fn vkDestroyVideoSessionKHR; + Fn vkDestroyVideoSessionParametersKHR; + Fn vkDeviceWaitIdle; + Fn vkDisplayPowerControlEXT; + Fn vkEndCommandBuffer; + Fn vkEnumerateDeviceExtensionProperties; + Fn vkEnumerateDeviceLayerProperties; + Fn vkEnumerateInstanceExtensionProperties; + Fn vkEnumerateInstanceLayerProperties; + Fn vkEnumerateInstanceVersion; + Fn vkEnumeratePhysicalDeviceGroups; + Fn vkEnumeratePhysicalDeviceGroupsKHR; + Fn vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; + Fn vkEnumeratePhysicalDevices; +#if defined(VK_USE_PLATFORM_METAL_EXT) + Fn vkExportMetalObjectsEXT; +#endif + Fn vkFlushMappedMemoryRanges; + Fn vkFreeCommandBuffers; + Fn vkFreeDescriptorSets; + Fn vkFreeMemory; + Fn vkGetAccelerationStructureBuildSizesKHR; + Fn vkGetAccelerationStructureDeviceAddressKHR; + Fn vkGetAccelerationStructureHandleNV; + Fn vkGetAccelerationStructureMemoryRequirementsNV; + Fn vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; +#if defined(VK_USE_PLATFORM_ANDROID_KHR) + Fn vkGetAndroidHardwareBufferPropertiesANDROID; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkGetBufferCollectionPropertiesFUCHSIA; +#endif + Fn vkGetBufferDeviceAddress; + Fn vkGetBufferDeviceAddressEXT; + Fn vkGetBufferDeviceAddressKHR; + Fn vkGetBufferMemoryRequirements; + Fn vkGetBufferMemoryRequirements2; + Fn vkGetBufferMemoryRequirements2KHR; + Fn vkGetBufferOpaqueCaptureAddress; + Fn vkGetBufferOpaqueCaptureAddressKHR; + Fn vkGetBufferOpaqueCaptureDescriptorDataEXT; + Fn vkGetCalibratedTimestampsEXT; + Fn vkGetCalibratedTimestampsKHR; + Fn vkGetClusterAccelerationStructureBuildSizesNV; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkGetCudaModuleCacheNV; +#endif + Fn vkGetDeferredOperationMaxConcurrencyKHR; + Fn vkGetDeferredOperationResultKHR; + Fn vkGetDescriptorEXT; + Fn vkGetDescriptorSetHostMappingVALVE; + Fn vkGetDescriptorSetLayoutBindingOffsetEXT; + Fn vkGetDescriptorSetLayoutHostMappingInfoVALVE; + Fn vkGetDescriptorSetLayoutSizeEXT; + Fn vkGetDescriptorSetLayoutSupport; + Fn vkGetDescriptorSetLayoutSupportKHR; + Fn vkGetDeviceAccelerationStructureCompatibilityKHR; + Fn vkGetDeviceBufferMemoryRequirements; + Fn vkGetDeviceBufferMemoryRequirementsKHR; + Fn vkGetDeviceFaultInfoEXT; + Fn vkGetDeviceGroupPeerMemoryFeatures; + Fn vkGetDeviceGroupPeerMemoryFeaturesKHR; + Fn vkGetDeviceGroupPresentCapabilitiesKHR; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetDeviceGroupSurfacePresentModes2EXT; +#endif + Fn vkGetDeviceGroupSurfacePresentModesKHR; + Fn vkGetDeviceImageMemoryRequirements; + Fn vkGetDeviceImageMemoryRequirementsKHR; + Fn vkGetDeviceImageSparseMemoryRequirements; + Fn vkGetDeviceImageSparseMemoryRequirementsKHR; + Fn vkGetDeviceImageSubresourceLayout; + Fn vkGetDeviceImageSubresourceLayoutKHR; + Fn vkGetDeviceMemoryCommitment; + Fn vkGetDeviceMemoryOpaqueCaptureAddress; + Fn vkGetDeviceMemoryOpaqueCaptureAddressKHR; + Fn vkGetDeviceMicromapCompatibilityEXT; + Fn vkGetDeviceProcAddr; + Fn vkGetDeviceQueue; + Fn vkGetDeviceQueue2; + Fn vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; + Fn vkGetDisplayModeProperties2KHR; + Fn vkGetDisplayModePropertiesKHR; + Fn vkGetDisplayPlaneCapabilities2KHR; + Fn vkGetDisplayPlaneCapabilitiesKHR; + Fn vkGetDisplayPlaneSupportedDisplaysKHR; + Fn vkGetDrmDisplayEXT; + Fn vkGetDynamicRenderingTilePropertiesQCOM; + Fn vkGetEncodedVideoSessionParametersKHR; + Fn vkGetEventStatus; +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkGetExecutionGraphPipelineNodeIndexAMDX; +#endif +#if defined(VK_ENABLE_BETA_EXTENSIONS) + Fn vkGetExecutionGraphPipelineScratchSizeAMDX; +#endif + Fn vkGetExternalComputeQueueDataNV; + Fn vkGetFenceFdKHR; + Fn vkGetFenceStatus; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetFenceWin32HandleKHR; +#endif + Fn vkGetFramebufferTilePropertiesQCOM; + Fn vkGetGeneratedCommandsMemoryRequirementsEXT; + Fn vkGetGeneratedCommandsMemoryRequirementsNV; + Fn vkGetImageDrmFormatModifierPropertiesEXT; + Fn vkGetImageMemoryRequirements; + Fn vkGetImageMemoryRequirements2; + Fn vkGetImageMemoryRequirements2KHR; + Fn vkGetImageOpaqueCaptureDescriptorDataEXT; + Fn vkGetImageSparseMemoryRequirements; + Fn vkGetImageSparseMemoryRequirements2; + Fn vkGetImageSparseMemoryRequirements2KHR; + Fn vkGetImageSubresourceLayout; + Fn vkGetImageSubresourceLayout2; + Fn vkGetImageSubresourceLayout2EXT; + Fn vkGetImageSubresourceLayout2KHR; + Fn vkGetImageViewAddressNVX; + Fn vkGetImageViewHandle64NVX; + Fn vkGetImageViewHandleNVX; + Fn vkGetImageViewOpaqueCaptureDescriptorDataEXT; + Fn vkGetInstanceProcAddr; + Fn vkGetLatencyTimingsNV; +#if defined(VK_USE_PLATFORM_ANDROID_KHR) + Fn vkGetMemoryAndroidHardwareBufferANDROID; +#endif + Fn vkGetMemoryFdKHR; + Fn vkGetMemoryFdPropertiesKHR; + Fn vkGetMemoryHostPointerPropertiesEXT; +#if defined(VK_USE_PLATFORM_METAL_EXT) + Fn vkGetMemoryMetalHandleEXT; +#endif +#if defined(VK_USE_PLATFORM_METAL_EXT) + Fn vkGetMemoryMetalHandlePropertiesEXT; +#endif + Fn vkGetMemoryRemoteAddressNV; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetMemoryWin32HandleKHR; +#endif +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetMemoryWin32HandleNV; +#endif +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetMemoryWin32HandlePropertiesKHR; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkGetMemoryZirconHandleFUCHSIA; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkGetMemoryZirconHandlePropertiesFUCHSIA; +#endif + Fn vkGetMicromapBuildSizesEXT; + Fn vkGetPartitionedAccelerationStructuresBuildSizesNV; + Fn vkGetPastPresentationTimingGOOGLE; + Fn vkGetPerformanceParameterINTEL; + Fn vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; + Fn vkGetPhysicalDeviceCalibrateableTimeDomainsKHR; + Fn vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; + Fn vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR; + Fn vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; + Fn vkGetPhysicalDeviceCooperativeVectorPropertiesNV; +#if defined(VK_USE_PLATFORM_DIRECTFB_EXT) + Fn vkGetPhysicalDeviceDirectFBPresentationSupportEXT; +#endif + Fn vkGetPhysicalDeviceDisplayPlaneProperties2KHR; + Fn vkGetPhysicalDeviceDisplayPlanePropertiesKHR; + Fn vkGetPhysicalDeviceDisplayProperties2KHR; + Fn vkGetPhysicalDeviceDisplayPropertiesKHR; + Fn vkGetPhysicalDeviceExternalBufferProperties; + Fn vkGetPhysicalDeviceExternalBufferPropertiesKHR; + Fn vkGetPhysicalDeviceExternalFenceProperties; + Fn vkGetPhysicalDeviceExternalFencePropertiesKHR; + Fn vkGetPhysicalDeviceExternalImageFormatPropertiesNV; + Fn vkGetPhysicalDeviceExternalSemaphoreProperties; + Fn vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; + Fn vkGetPhysicalDeviceFeatures; + Fn vkGetPhysicalDeviceFeatures2; + Fn vkGetPhysicalDeviceFeatures2KHR; + Fn vkGetPhysicalDeviceFormatProperties; + Fn vkGetPhysicalDeviceFormatProperties2; + Fn vkGetPhysicalDeviceFormatProperties2KHR; + Fn vkGetPhysicalDeviceFragmentShadingRatesKHR; + Fn vkGetPhysicalDeviceImageFormatProperties; + Fn vkGetPhysicalDeviceImageFormatProperties2; + Fn vkGetPhysicalDeviceImageFormatProperties2KHR; + Fn vkGetPhysicalDeviceMemoryProperties; + Fn vkGetPhysicalDeviceMemoryProperties2; + Fn vkGetPhysicalDeviceMemoryProperties2KHR; + Fn vkGetPhysicalDeviceMultisamplePropertiesEXT; + Fn vkGetPhysicalDeviceOpticalFlowImageFormatsNV; + Fn vkGetPhysicalDevicePresentRectanglesKHR; + Fn vkGetPhysicalDeviceProperties; + Fn vkGetPhysicalDeviceProperties2; + Fn vkGetPhysicalDeviceProperties2KHR; + Fn vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; + Fn vkGetPhysicalDeviceQueueFamilyProperties; + Fn vkGetPhysicalDeviceQueueFamilyProperties2; + Fn vkGetPhysicalDeviceQueueFamilyProperties2KHR; +#if defined(VK_USE_PLATFORM_SCREEN_QNX) + Fn vkGetPhysicalDeviceScreenPresentationSupportQNX; +#endif + Fn vkGetPhysicalDeviceSparseImageFormatProperties; + Fn vkGetPhysicalDeviceSparseImageFormatProperties2; + Fn vkGetPhysicalDeviceSparseImageFormatProperties2KHR; + Fn vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; + Fn vkGetPhysicalDeviceSurfaceCapabilities2EXT; + Fn vkGetPhysicalDeviceSurfaceCapabilities2KHR; + Fn vkGetPhysicalDeviceSurfaceCapabilitiesKHR; + Fn vkGetPhysicalDeviceSurfaceFormats2KHR; + Fn vkGetPhysicalDeviceSurfaceFormatsKHR; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetPhysicalDeviceSurfacePresentModes2EXT; +#endif + Fn vkGetPhysicalDeviceSurfacePresentModesKHR; + Fn vkGetPhysicalDeviceSurfaceSupportKHR; + Fn vkGetPhysicalDeviceToolProperties; + Fn vkGetPhysicalDeviceToolPropertiesEXT; + Fn vkGetPhysicalDeviceVideoCapabilitiesKHR; + Fn vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR; + Fn vkGetPhysicalDeviceVideoFormatPropertiesKHR; +#if defined(VK_USE_PLATFORM_WAYLAND_KHR) + Fn vkGetPhysicalDeviceWaylandPresentationSupportKHR; +#endif +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetPhysicalDeviceWin32PresentationSupportKHR; +#endif +#if defined(VK_USE_PLATFORM_XCB_KHR) + Fn vkGetPhysicalDeviceXcbPresentationSupportKHR; +#endif +#if defined(VK_USE_PLATFORM_XLIB_KHR) + Fn vkGetPhysicalDeviceXlibPresentationSupportKHR; +#endif + Fn vkGetPipelineBinaryDataKHR; + Fn vkGetPipelineCacheData; + Fn vkGetPipelineExecutableInternalRepresentationsKHR; + Fn vkGetPipelineExecutablePropertiesKHR; + Fn vkGetPipelineExecutableStatisticsKHR; + Fn vkGetPipelineIndirectDeviceAddressNV; + Fn vkGetPipelineIndirectMemoryRequirementsNV; + Fn vkGetPipelineKeyKHR; + Fn vkGetPipelinePropertiesEXT; + Fn vkGetPrivateData; + Fn vkGetPrivateDataEXT; + Fn vkGetQueryPoolResults; + Fn vkGetQueueCheckpointData2NV; + Fn vkGetQueueCheckpointDataNV; +#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) + Fn vkGetRandROutputDisplayEXT; +#endif + Fn vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; + Fn vkGetRayTracingShaderGroupHandlesKHR; + Fn vkGetRayTracingShaderGroupHandlesNV; + Fn vkGetRayTracingShaderGroupStackSizeKHR; + Fn vkGetRefreshCycleDurationGOOGLE; + Fn vkGetRenderAreaGranularity; + Fn vkGetRenderingAreaGranularity; + Fn vkGetRenderingAreaGranularityKHR; + Fn vkGetSamplerOpaqueCaptureDescriptorDataEXT; +#if defined(VK_USE_PLATFORM_SCREEN_QNX) + Fn vkGetScreenBufferPropertiesQNX; +#endif + Fn vkGetSemaphoreCounterValue; + Fn vkGetSemaphoreCounterValueKHR; + Fn vkGetSemaphoreFdKHR; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetSemaphoreWin32HandleKHR; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkGetSemaphoreZirconHandleFUCHSIA; +#endif + Fn vkGetShaderBinaryDataEXT; + Fn vkGetShaderInfoAMD; + Fn vkGetShaderModuleCreateInfoIdentifierEXT; + Fn vkGetShaderModuleIdentifierEXT; + Fn vkGetSwapchainCounterEXT; + Fn vkGetSwapchainImagesKHR; + Fn vkGetSwapchainStatusKHR; + Fn vkGetValidationCacheDataEXT; + Fn vkGetVideoSessionMemoryRequirementsKHR; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkGetWinrtDisplayNV; +#endif + Fn vkImportFenceFdKHR; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkImportFenceWin32HandleKHR; +#endif + Fn vkImportSemaphoreFdKHR; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkImportSemaphoreWin32HandleKHR; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkImportSemaphoreZirconHandleFUCHSIA; +#endif + Fn vkInitializePerformanceApiINTEL; + Fn vkInvalidateMappedMemoryRanges; + Fn vkLatencySleepNV; + Fn vkMapMemory; + Fn vkMapMemory2; + Fn vkMapMemory2KHR; + Fn vkMergePipelineCaches; + Fn vkMergeValidationCachesEXT; + Fn vkQueueBeginDebugUtilsLabelEXT; + Fn vkQueueBindSparse; + Fn vkQueueEndDebugUtilsLabelEXT; + Fn vkQueueInsertDebugUtilsLabelEXT; + Fn vkQueueNotifyOutOfBandNV; + Fn vkQueuePresentKHR; + Fn vkQueueSetPerformanceConfigurationINTEL; + Fn vkQueueSubmit; + Fn vkQueueSubmit2; + Fn vkQueueSubmit2KHR; + Fn vkQueueWaitIdle; + Fn vkRegisterDeviceEventEXT; + Fn vkRegisterDisplayEventEXT; + Fn vkReleaseCapturedPipelineDataKHR; + Fn vkReleaseDisplayEXT; +#if defined(VK_USE_PLATFORM_WIN32_KHR) + Fn vkReleaseFullScreenExclusiveModeEXT; +#endif + Fn vkReleasePerformanceConfigurationINTEL; + Fn vkReleaseProfilingLockKHR; + Fn vkReleaseSwapchainImagesEXT; + Fn vkResetCommandBuffer; + Fn vkResetCommandPool; + Fn vkResetDescriptorPool; + Fn vkResetEvent; + Fn vkResetFences; + Fn vkResetQueryPool; + Fn vkResetQueryPoolEXT; +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkSetBufferCollectionBufferConstraintsFUCHSIA; +#endif +#if defined(VK_USE_PLATFORM_FUCHSIA) + Fn vkSetBufferCollectionImageConstraintsFUCHSIA; +#endif + Fn vkSetDebugUtilsObjectNameEXT; + Fn vkSetDebugUtilsObjectTagEXT; + Fn vkSetDeviceMemoryPriorityEXT; + Fn vkSetEvent; + Fn vkSetHdrMetadataEXT; + Fn vkSetLatencyMarkerNV; + Fn vkSetLatencySleepModeNV; + Fn vkSetLocalDimmingAMD; + Fn vkSetPrivateData; + Fn vkSetPrivateDataEXT; + Fn vkSignalSemaphore; + Fn vkSignalSemaphoreKHR; + Fn vkSubmitDebugUtilsMessageEXT; + Fn vkTransitionImageLayout; + Fn vkTransitionImageLayoutEXT; + Fn vkTrimCommandPool; + Fn vkTrimCommandPoolKHR; + Fn vkUninitializePerformanceApiINTEL; + Fn vkUnmapMemory; + Fn vkUnmapMemory2; + Fn vkUnmapMemory2KHR; + Fn vkUpdateDescriptorSets; + Fn vkUpdateDescriptorSetWithTemplate; + Fn vkUpdateDescriptorSetWithTemplateKHR; + Fn vkUpdateIndirectExecutionSetPipelineEXT; + Fn vkUpdateIndirectExecutionSetShaderEXT; + Fn vkUpdateVideoSessionParametersKHR; + Fn vkWaitForFences; + Fn vkWaitForPresentKHR; + Fn vkWaitSemaphores; + Fn vkWaitSemaphoresKHR; + Fn vkWriteAccelerationStructuresPropertiesKHR; + Fn vkWriteMicromapsPropertiesEXT; + + void loadGlobal(); + void loadInstance(VkInstance instance); + void loadDevice(VkDevice device); +}; +extern VulkanFunctions vk; + +} // namespace VulkanPP diff --git a/Src/RenderFramework/Vulkan/IntrusivePtr.h b/Src/RenderFramework/Vulkan/IntrusivePtr.h index 4a78e7b..49d009a 100644 --- a/Src/RenderFramework/Vulkan/IntrusivePtr.h +++ b/Src/RenderFramework/Vulkan/IntrusivePtr.h @@ -1,104 +1,81 @@ #pragma once #include +#include #include -template -void IntrusivePtrAddRef(T* ptr) { - ptr->addref(); -} +// --- Интерфейс хуков (только декларации!) --- +template void IntrusivePtrAddRef(T*) noexcept; // будет найден по ADL +template void IntrusivePtrRelease(T*) noexcept; // будет найден по ADL -template -void IntrusivePtrRelease(T* ptr) { - ptr->release(); -} +// Базовый счётчик (опционально) +class RefCounted { +public: + virtual ~RefCounted() = default; + void addref() noexcept { ++_refCount; } + void release() noexcept { if (--_refCount == 0) delete this; } +private: + std::size_t _refCount{0}; +}; -template +// --- Сам умный указатель --- +template class IntrusivePtr { public: - IntrusivePtr() { - } - ~IntrusivePtr() { - reset(); - } + using element_type = T; - template - IntrusivePtr(U* src, bool addref = true) : _object(static_cast, Object>>>(src)) { - if (addref) { - addrefImpl(); - } - } + constexpr IntrusivePtr() noexcept = default; + constexpr IntrusivePtr(std::nullptr_t) noexcept {} - template - IntrusivePtr(const IntrusivePtr& src) : _object(static_cast, Object>>>(src.get())) { - addrefImpl(); - } + // из сырого указателя + explicit IntrusivePtr(T* p, bool addRef = true) noexcept : _p(p) { + if (_p && addRef) addrefImpl(); + } - IntrusivePtr(Object* object, bool addref = true) :_object(object) { - if (addref) { - addrefImpl(); - } - } - IntrusivePtr(const IntrusivePtr& ptr) { - _object = ptr._object; - if (_object) { - addrefImpl(); - } - } - IntrusivePtr& operator=(const IntrusivePtr& other) { - assign(other._object, true); - return *this; - } - IntrusivePtr& operator=(std::nullptr_t) { - reset(); - return *this; - } + // копирование + IntrusivePtr(const IntrusivePtr& rhs) noexcept : _p(rhs._p) { if (_p) addrefImpl(); } - template - static inline IntrusivePtr create(Args... args){ - return IntrusivePtr( new Object(std::forward(args)... )); - } + template, int> = 0> + IntrusivePtr(const IntrusivePtr& rhs) noexcept : _p(rhs.get()) { if (_p) addrefImpl(); } - void assign(Object* object, bool addref = true) { - if (object != nullptr && addref) { - object->addref(); - } - reset(); - _object = object; - } + // перемещение + IntrusivePtr(IntrusivePtr&& rhs) noexcept : _p(rhs._p) { rhs._p = nullptr; } + template, int> = 0> + IntrusivePtr(IntrusivePtr&& rhs) noexcept : _p(rhs.get()) { rhs.reset(); } - Object* operator->() { - if (_object == nullptr) { - throw new std::runtime_error("Accessing null object in IntrusivePtr"); - } - return _object; - } + ~IntrusivePtr() noexcept { reset(); } - const Object* operator->() const { - if (_object == nullptr) { - throw new std::runtime_error("Accessing null object in IntrusivePtr"); - } - return _object; - } + IntrusivePtr& operator=(const IntrusivePtr& rhs) noexcept { + if (this != &rhs) assign(rhs._p, true); + return *this; + } + IntrusivePtr& operator=(IntrusivePtr&& rhs) noexcept { + if (this != &rhs) { reset(); _p = rhs._p; rhs._p = nullptr; } + return *this; + } + IntrusivePtr& operator=(std::nullptr_t) noexcept { reset(); return *this; } - void reset() { - if (_object != nullptr) { - releaseImpl(); - _object = nullptr; - } - } + template + static IntrusivePtr make(Args&&... args) { + return IntrusivePtr(new T(std::forward(args)...), /*addRef*/false); + } - Object* get() const { - return _object; - } + void assign(T* p, bool addRef = true) noexcept { + if (p && addRef) IntrusivePtrAddRef(p); + reset(); + _p = p; + } + + void reset() noexcept { + if (_p) { releaseImpl(); _p = nullptr; } + } + + T* get() const noexcept { return _p; } + T& operator*() const { if(!_p) throw std::runtime_error("null IntrusivePtr deref"); return *_p; } + T* operator->() const { if(!_p) throw std::runtime_error("null IntrusivePtr access"); return _p; } + explicit operator bool() const noexcept { return _p != nullptr; } private: - Object * _object = nullptr; - - void addrefImpl() { - IntrusivePtrAddRef(_object); - } - - void releaseImpl() { - IntrusivePtrRelease(_object); - } + T* _p = nullptr; + void addrefImpl() noexcept { IntrusivePtrAddRef(_p); } + void releaseImpl() noexcept { IntrusivePtrRelease(_p); } }; diff --git a/Tools/VulkanWrapperGenerator/Generator.cs b/Tools/VulkanWrapperGenerator/Generator.cs index 74bfb02..9d4ab8d 100644 --- a/Tools/VulkanWrapperGenerator/Generator.cs +++ b/Tools/VulkanWrapperGenerator/Generator.cs @@ -11,6 +11,14 @@ public sealed class Generator { private readonly string _outDir; private readonly ReadOnlyDictionary _sugar; + // Per-class header/source builders + private readonly Dictionary _headers = new(StringComparer.Ordinal); + private readonly Dictionary _sources = new(StringComparer.Ordinal); + + // Forward declarations for headers, and includes needed in .cpp + private readonly Dictionary> _headerForwards = new(StringComparer.Ordinal); + private readonly Dictionary> _cppIncludes = new(StringComparer.Ordinal); + public Generator(VkSpec spec, string outDir, IEnumerable? sugarSpecs = null) { _spec = spec; _outDir = outDir; @@ -30,35 +38,30 @@ public sealed class Generator { public void GenerateAll() { GenerateVulkanFunctions(); - GenerateHandleWrappers(); - GenerateProducerMemberMethods(); - GenerateMemberMethods(); + GenerateHandleWrappersSkeletons(); // class skeletons (.hpp) + ctor/dtor declarations + GenerateFactories(); // ctor / createMany: prototypes (inside class) + .cpp bodies + GenerateProducerMemberMethods(); // get*/enumerate*: prototypes (inside class) + .cpp bodies + GenerateMemberMethods(); // other methods: prototypes (inside class) + .cpp bodies + GenerateSugarMethods(); // sugar: prototypes (inside class) + .cpp bodies + FinalizeHeadersAndSources(); // insert forwards; write .hpp/.cpp files } // ---------- helpers ---------- + IEnumerable EnabledCommands() + => _spec.Commands.Values.Where(c => _spec.ReachableCommands.Contains(c.Name)); + static string ToClass(string vkType) => vkType.StartsWith("Vk") ? vkType.Substring(2) : vkType; - /// - /// Build a pretty method name from a vk* command for a given class. - /// Rules: - /// - Strip leading 'vk'. - /// - Strip the class token at BEGIN or END (Queue, Device, CommandBuffer...). - /// - For CommandBuffer also strip "Cmd". - /// - Remove first occurrence of class token inside the name if still present (e.g., PhysicalDevice). - /// - LowerCamelCase. - /// static string MakeMethodName(string className, string vkFunc) { string s = vkFunc.StartsWith("vk") ? vkFunc.Substring(2) : vkFunc; - var tokens = new List { className }; if (className == "CommandBuffer") tokens.Add("Cmd"); - foreach (var t in tokens) { + foreach (var t in tokens) if (s.StartsWith(t, StringComparison.Ordinal)) { s = s.Substring(t.Length); break; } - } - foreach (var t in tokens) { + foreach (var t in tokens) if (s.EndsWith(t, StringComparison.Ordinal)) { s = s.Substring(0, s.Length - t.Length); break; } - } + int idx = s.IndexOf(className, StringComparison.Ordinal); if (idx >= 0) s = s.Remove(idx, className.Length); @@ -66,13 +69,86 @@ public sealed class Generator { return char.ToLowerInvariant(s[0]) + s.Substring(1); } - static string Render(string tpl, Dictionary vars) { - foreach (var kv in vars) tpl = tpl.Replace("${" + kv.Key + "}", kv.Value); - return tpl; + static string GuardExpr(HashSet macros) { + if (macros == null || macros.Count == 0) return ""; + return string.Join(" || ", macros.Select(m => "defined(" + m + ")")); + } + + static string InsertIntoClassText(string text, string className, string snippet) { + // find "class " then the opening '{' + int cls = text.IndexOf("class " + className, StringComparison.Ordinal); + if (cls < 0) return text; + int open = text.IndexOf('{', cls); + if (open < 0) return text; + + // walk and find the matching closing '}' for that class body + int depth = 1; + int i = open + 1; + for (; i < text.Length; i++) { + char c = text[i]; + if (c == '{') depth++; + else if (c == '}') { + depth--; + if (depth == 0) { + // insert BEFORE this '}' (i points at the closing brace) + var ins = snippet; + if (!ins.StartsWith("\n")) ins = "\n" + ins; // keep formatting clean + return text.Insert(i, ins); + } + } + } + // fallback: nothing inserted + return text; + } + + + void AddToHeaderClass(string className, string snippet) { + if (!_headers.TryGetValue(className, out var h)) return; + var s = h.ToString(); + s = InsertIntoClassText(s, className, snippet); + _headers[className] = new StringBuilder(s); + } + + void TouchHeader(string className) { + if (_headers.ContainsKey(className)) return; + + var h = new StringBuilder(); + h.AppendLine("#pragma once"); + h.AppendLine("#include "); + h.AppendLine("#include "); + h.AppendLine("#include "); + h.AppendLine("#include "); + h.AppendLine(); + h.AppendLine("namespace VulkanPP {"); + h.AppendLine(); + // forward declarations inserted later + _headers[className] = h; + + // Init .cpp with own include; other includes inserted later + var s = new StringBuilder(); + s.AppendLine("#include "); + s.AppendLine(); + s.AppendLine("namespace VulkanPP {"); + s.AppendLine(); + _sources[className] = s; + } + + void AddHeaderForward(string className, string fwd) { + if (fwd == className) return; + if (!_headerForwards.TryGetValue(className, out var set)) + _headerForwards[className] = set = new(StringComparer.Ordinal); + set.Add(fwd); + } + + void AddCppInclude(string className, string need) { + if (need == className) return; + if (!_cppIncludes.TryGetValue(className, out var set)) + _cppIncludes[className] = set = new(StringComparer.Ordinal); + set.Add(need); } // ========================================= - // VulkanFunctions — function pointers loader + // VulkanFunctions — PFN wrappers + loaders with platform guards // ========================================= void GenerateVulkanFunctions() { var sbH = new StringBuilder(); @@ -80,11 +156,33 @@ public sealed class Generator { sbH.AppendLine("#include "); sbH.AppendLine("#include "); sbH.AppendLine("#include "); + sbH.AppendLine("#include "); + sbH.AppendLine(); + sbH.AppendLine("namespace VulkanPP {"); + sbH.AppendLine(); + sbH.AppendLine("// Small callable wrapper around PFN_vk* that throws if not loaded."); + sbH.AppendLine("template "); + sbH.AppendLine("struct Fn {"); + sbH.AppendLine(" PFN p = nullptr;"); + sbH.AppendLine(" const char* name = nullptr;"); + sbH.AppendLine(" bool loaded() const noexcept { return p != nullptr; }"); + sbH.AppendLine(" template "); + sbH.AppendLine(" auto operator()(Args&&... args) const"); + sbH.AppendLine(" -> decltype(p(std::forward(args)...))"); + sbH.AppendLine(" {"); + sbH.AppendLine(" if (!p) throw std::runtime_error(std::string(\"Vulkan function not loaded: \") + (name ? name : \"\"));"); + sbH.AppendLine(" return p(std::forward(args)...);"); + sbH.AppendLine(" }"); + sbH.AppendLine("};"); sbH.AppendLine(); sbH.AppendLine("struct VulkanFunctions {"); - foreach (var cmd in _spec.Commands.Values.OrderBy(c => c.Name)) - sbH.AppendLine(" PFN_" + cmd.Name + " " + cmd.Name + " = nullptr;"); + foreach (var cmd in EnabledCommands().OrderBy(c => c.Name)) { + var guard = GuardExpr(cmd.ProtectMacros); + if (guard.Length > 0) sbH.AppendLine("#if " + guard); + sbH.AppendLine(" Fn " + cmd.Name + ";"); + if (guard.Length > 0) sbH.AppendLine("#endif"); + } sbH.AppendLine(); sbH.AppendLine(" void loadGlobal();"); @@ -92,10 +190,12 @@ public sealed class Generator { sbH.AppendLine(" void loadDevice(VkDevice device);"); sbH.AppendLine("};"); sbH.AppendLine("extern VulkanFunctions vk;"); + sbH.AppendLine(); + sbH.AppendLine("} // namespace VulkanPP"); File.WriteAllText(Path.Combine(_outDir, "VulkanFunctions.hpp"), sbH.ToString()); var sbCpp = new StringBuilder(); - sbCpp.AppendLine("#include \"VulkanFunctions.hpp\""); + sbCpp.AppendLine("#include "); sbCpp.AppendLine("#if defined(_WIN32)"); sbCpp.AppendLine("#include "); sbCpp.AppendLine("static HMODULE g_vkLib = LoadLibraryA(\"vulkan-1.dll\");"); @@ -105,43 +205,74 @@ public sealed class Generator { sbCpp.AppendLine("static void* g_vkLib = dlopen(\"libvulkan.so.1\", RTLD_NOW | RTLD_LOCAL);"); sbCpp.AppendLine("static void* LoadSymbol(const char* n){ return dlsym(g_vkLib, n); }"); sbCpp.AppendLine("#endif"); + sbCpp.AppendLine(); + sbCpp.AppendLine("namespace VulkanPP {"); + sbCpp.AppendLine(); sbCpp.AppendLine("VulkanFunctions vk;"); sbCpp.AppendLine(); sbCpp.AppendLine("void VulkanFunctions::loadGlobal(){"); - sbCpp.AppendLine(" vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)LoadSymbol(\"vkGetInstanceProcAddr\");"); - foreach (var cmd in _spec.Commands.Values.Where(c => _spec.ClassifyLoadLevel(c) == VkSpec.LoadLevel.Global).OrderBy(c => c.Name)) - sbCpp.AppendLine(" " + cmd.Name + " = (PFN_" + cmd.Name + ")vkGetInstanceProcAddr(nullptr, \"" + cmd.Name + "\");"); + sbCpp.AppendLine(" vkGetInstanceProcAddr.p = (PFN_vkGetInstanceProcAddr)LoadSymbol(\"vkGetInstanceProcAddr\");"); + sbCpp.AppendLine(" vkGetInstanceProcAddr.name = \"vkGetInstanceProcAddr\";"); + + foreach (var cmd in EnabledCommands() + .Where(c => _spec.ClassifyLoadLevel(c) == VkSpec.LoadLevel.Global) + .OrderBy(c => c.Name)) { + var guard = GuardExpr(cmd.ProtectMacros); + if (guard.Length > 0) sbCpp.AppendLine("#if " + guard); + sbCpp.AppendLine(" " + cmd.Name + ".p = (PFN_" + cmd.Name + ")vkGetInstanceProcAddr.p(nullptr, \"" + cmd.Name + "\");"); + sbCpp.AppendLine(" " + cmd.Name + ".name = \"" + cmd.Name + "\";"); + if (guard.Length > 0) sbCpp.AppendLine("#endif"); + } sbCpp.AppendLine("}"); sbCpp.AppendLine(); sbCpp.AppendLine("void VulkanFunctions::loadInstance(VkInstance instance){"); - foreach (var cmd in _spec.Commands.Values.Where(c => _spec.ClassifyLoadLevel(c) == VkSpec.LoadLevel.Instance).OrderBy(c => c.Name)) - sbCpp.AppendLine(" " + cmd.Name + " = (PFN_" + cmd.Name + ")vkGetInstanceProcAddr(instance, \"" + cmd.Name + "\");"); + foreach (var cmd in EnabledCommands() + .Where(c => _spec.ClassifyLoadLevel(c) == VkSpec.LoadLevel.Instance) + .OrderBy(c => c.Name)) { + var guard = GuardExpr(cmd.ProtectMacros); + if (guard.Length > 0) sbCpp.AppendLine("#if " + guard); + sbCpp.AppendLine(" " + cmd.Name + ".p = (PFN_" + cmd.Name + ")vkGetInstanceProcAddr.p(instance, \"" + cmd.Name + "\");"); + sbCpp.AppendLine(" " + cmd.Name + ".name = \"" + cmd.Name + "\";"); + if (guard.Length > 0) sbCpp.AppendLine("#endif"); + } sbCpp.AppendLine("}"); sbCpp.AppendLine(); sbCpp.AppendLine("void VulkanFunctions::loadDevice(VkDevice device){"); - sbCpp.AppendLine(" vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)vkGetInstanceProcAddr(nullptr, \"vkGetDeviceProcAddr\");"); - foreach (var cmd in _spec.Commands.Values.Where(c => _spec.ClassifyLoadLevel(c) == VkSpec.LoadLevel.Device).OrderBy(c => c.Name)) - sbCpp.AppendLine(" " + cmd.Name + " = (PFN_" + cmd.Name + ")vkGetDeviceProcAddr(device, \"" + cmd.Name + "\");"); + sbCpp.AppendLine(" vkGetDeviceProcAddr.p = (PFN_vkGetDeviceProcAddr)vkGetInstanceProcAddr.p(nullptr, \"vkGetDeviceProcAddr\");"); + sbCpp.AppendLine(" vkGetDeviceProcAddr.name = \"vkGetDeviceProcAddr\";"); + foreach (var cmd in EnabledCommands() + .Where(c => _spec.ClassifyLoadLevel(c) == VkSpec.LoadLevel.Device) + .OrderBy(c => c.Name)) { + var guard = GuardExpr(cmd.ProtectMacros); + if (guard.Length > 0) sbCpp.AppendLine("#if " + guard); + sbCpp.AppendLine(" " + cmd.Name + ".p = (PFN_" + cmd.Name + ")vkGetDeviceProcAddr.p(device, \"" + cmd.Name + "\");"); + sbCpp.AppendLine(" " + cmd.Name + ".name = \"" + cmd.Name + "\";"); + if (guard.Length > 0) sbCpp.AppendLine("#endif"); + } sbCpp.AppendLine("}"); + sbCpp.AppendLine(); + sbCpp.AppendLine("} // namespace VulkanPP"); File.WriteAllText(Path.Combine(_outDir, "VulkanFunctions.cpp"), sbCpp.ToString()); } // ========================================= - // RAII wrappers (owned + borrowed) + // 1) Skeletons (.hpp classes) + ctor/dtor declarations // ========================================= - void GenerateHandleWrappers() { + void GenerateHandleWrappersSkeletons() { var handlesToGenerate = new HashSet(_spec.Pairs.Select(p => p.HandleType)); foreach (var pr in _spec.Producers) handlesToGenerate.Add(pr.HandleType); foreach (var handleType in handlesToGenerate) { var className = ToClass(handleType); + TouchHeader(className); VkSpec.Pair? pair = _spec.Pairs.FirstOrDefault(p => p.HandleType == handleType); var hasOwned = pair != null; - var primaryOwners = new List(); + var primaryOwners = new List(); if (hasOwned) { - primaryOwners.Add(pair!.ParentType); + if (!string.IsNullOrEmpty(pair!.ParentType)) + primaryOwners.Add(pair!.ParentType); primaryOwners.AddRange(pair!.ExtraOwnersForDestroy.Where(o => o != pair!.ParentType)); } else { var parents = _spec.Producers.Where(p => p.HandleType == handleType) @@ -159,13 +290,16 @@ public sealed class Generator { .ToList(); } - var header = new StringBuilder(); - header.AppendLine("#pragma once"); - header.AppendLine("#include "); - header.AppendLine("#include "); - header.AppendLine("#include "); - header.AppendLine("#include \"VulkanFunctions.hpp\""); - header.AppendLine(); + // record forward-decls (owners + lifetime-kept types) + foreach (var o in primaryOwners) AddHeaderForward(className, ToClass(o)); + foreach (var u in lifetimeUses) AddHeaderForward(className, ToClass(u.Type)); + + // record cpp includes for destructor/ctor usage + foreach (var o in primaryOwners) AddCppInclude(className, ToClass(o)); + foreach (var u in lifetimeUses) AddCppInclude(className, ToClass(u.Type)); + + // Header class skeleton + var header = _headers[className]; header.AppendLine("// === Lifetime summary (deterministic) ==="); header.AppendLine("// Handle: " + handleType); @@ -181,6 +315,7 @@ public sealed class Generator { header.AppendLine("public:"); header.AppendLine(" " + handleType + " getHandle() const noexcept { return _handle; }"); + // owners getters var usedGetterNames = new HashSet(StringComparer.Ordinal); for (int i = 0; i < primaryOwners.Count; i++) { var oc = ToClass(primaryOwners[i]); @@ -199,62 +334,31 @@ public sealed class Generator { header.AppendLine(" IntrusivePtr<" + oc + "> " + unique + "() const noexcept { return _lifetime_owner_" + oc + "; }"); } - // adopt raw handle (borrowed) - if (primaryOwners.Count > 0) { - header.Append("public:\n static IntrusivePtr<" + className + "> fromHandle("); - for (int i = 0; i < primaryOwners.Count; i++) { - if (i > 0) header.Append(", "); - header.Append("IntrusivePtr<" + ToClass(primaryOwners[i]) + "> owner" + i); - } - if (primaryOwners.Count > 0) header.Append(", "); - header.Append(handleType + " handle"); - header.AppendLine(") {"); - header.Append(" return IntrusivePtr<" + className + ">(new " + className + "("); - for (int i = 0; i < primaryOwners.Count; i++) { - if (i > 0) header.Append(", "); - header.Append("owner" + i); - } - if (primaryOwners.Count > 0) header.Append(", "); - header.Append("handle, false"); - foreach (var u in lifetimeUses) { - var cls = ToClass(u.Type); - header.Append(", "); - header.Append(u.IsMany ? "std::vector>()" : "IntrusivePtr<" + cls + ">()"); - } - header.AppendLine("));"); - header.AppendLine(" }"); + // fromHandle stays inline (safe) + header.Append("public:\n static IntrusivePtr<" + className + "> fromHandle("); + for (int i = 0; i < primaryOwners.Count; i++) { + if (i > 0) header.Append(", "); + header.Append("IntrusivePtr<" + ToClass(primaryOwners[i]) + "> owner" + i); } - - // sugar methods - if (_sugar.TryGetValue(className, out var sugarSpec)) { - foreach (var m in sugarSpec.Methods) { - if (!m.RequiresFunctions.All(fn => _spec.Commands.ContainsKey(fn))) continue; - if (!m.RequiresExtensions.All(ext => _spec.Extensions.Contains(ext))) continue; - - var (sig, prelude, vars, guard) = BuildSugarSignatureAndContext(m, primaryOwners, className); - - if (!string.IsNullOrEmpty(guard)) header.AppendLine("#if " + guard); - header.AppendLine(" " + sig + " {"); - if (!string.IsNullOrEmpty(prelude)) - foreach (var line in prelude.Split('\n')) - if (line.Length > 0) header.AppendLine(" " + line); - foreach (var ln in m.BodyLines) // FIX: only the current sugar method body - header.AppendLine(" " + Render(ln, vars)); - header.AppendLine(" }"); - if (!string.IsNullOrEmpty(guard)) header.AppendLine("#endif"); - } + if (primaryOwners.Count > 0) header.Append(", "); + header.Append(handleType + " handle"); + header.AppendLine(") {"); + header.Append(" return IntrusivePtr<" + className + ">(new " + className + "("); + for (int i = 0; i < primaryOwners.Count; i++) { + if (i > 0) header.Append(", "); + header.Append("owner" + i); } - - // owned factories - if (hasOwned) { - var multiOut = pair!.OutHandleParam.LenAttr != null; - var fac = BuildFactory(_spec.Commands[pair!.CreateOrAllocate], pair!, className, ToClass(pair!.ParentType), primaryOwners, lifetimeUses, multiOut); - header.Append(fac.decl); - header.Append(fac.body); - header.AppendLine(); + if (primaryOwners.Count > 0) header.Append(", "); + header.Append("handle, false"); + foreach (var u in lifetimeUses) { + var cls = ToClass(u.Type); + header.Append(", "); + header.Append(u.IsMany ? "std::vector>()" : "IntrusivePtr<" + cls + ">()"); } + header.AppendLine("));"); + header.AppendLine(" }"); - // private ctor/dtor/fields + // Private ctor/dtor declarations header.AppendLine("private:"); header.Append(" explicit " + className + "("); for (int i = 0; i < primaryOwners.Count; i++) { @@ -270,36 +374,11 @@ public sealed class Generator { ? "const std::vector>& owners_" + cls : "IntrusivePtr<" + cls + "> owner_" + cls); } - header.AppendLine(") : _handle(handle), _owned(owned)"); - for (int i = 0; i < primaryOwners.Count; i++) - header.AppendLine(" , _owner" + i + "(std::move(owner" + i + "))"); - foreach (var u in lifetimeUses) { - var cls = ToClass(u.Type); - header.AppendLine(u.IsMany - ? " , _lifetime_owners_" + cls + "(owners_" + cls + ")" - : " , _lifetime_owner_" + cls + "(std::move(owner_" + cls + "))"); - } - header.AppendLine(" {}"); - - header.AppendLine(" ~" + className + "() override {"); - header.AppendLine(" if (_handle && _owned) {"); - if (hasOwned) { - var destroyCmd = _spec.Commands[pair!.DestroyOrFree]; - var args = new List(); - int ownerIdx = 0; - foreach (var p in destroyCmd.Params) { - if (p.Type == handleType && p.IsPointer) { args.Add("1"); args.Add("&_handle"); continue; } - if (p.Type == handleType && !p.IsPointer) { args.Add("_handle"); continue; } - if (p.Name == "pAllocator") { args.Add("nullptr"); continue; } - if (p.IsHandle) { args.Add("_owner" + (ownerIdx++) + "->getHandle()"); continue; } - if (p.Name.EndsWith("Count")) args.Add("0"); else args.Add("0"); - } - header.AppendLine(" (void)vk." + destroyCmd.Name + "(" + string.Join(", ", args) + ");"); - header.AppendLine(" _handle = VK_NULL_HANDLE;"); - } - header.AppendLine(" }"); - header.AppendLine(" }"); + header.AppendLine(");"); + header.AppendLine(" ~" + className + "() override;"); + // fields + header.AppendLine("private:"); header.AppendLine(" " + handleType + " _handle{VK_NULL_HANDLE};"); header.AppendLine(" bool _owned{false};"); for (int i = 0; i < primaryOwners.Count; i++) @@ -312,265 +391,332 @@ public sealed class Generator { } header.AppendLine("};"); + header.AppendLine("using P" + className + " = IntrusivePtr<" + className + ">;"); + header.AppendLine(); + header.AppendLine("} // namespace VulkanPP"); - File.WriteAllText(Path.Combine(_outDir, className + ".hpp"), header.ToString()); - } - } - - // Build sugar signature + prelude + placeholders + guard - (string sig, string prelude, Dictionary vars, string guard) - BuildSugarSignatureAndContext(SugarMethodSpec m, List primaryOwners, string className) { - var vars = new Dictionary { - ["class"] = className, - ["handle"] = "_handle", - ["vk"] = "vk", - ["selfOwners"] = string.Join(", ", Enumerable.Range(0, primaryOwners.Count).Select(i => "_owner" + i)) - }; - for (int i = 0; i < primaryOwners.Count; i++) { - vars["owner" + i] = "_owner" + i; - vars["owner" + i + ".handle"] = "_owner" + i + "->getHandle()"; - } - - var prelude = new StringBuilder(); - var paramList = string.Join(", ", m.Parameters); - - var rxScalar = new Regex(@"\bIntrusivePtr<\s*(\w+)\s*>\s+(\w+)\b"); - foreach (Match mt in rxScalar.Matches(paramList)) { - var varName = mt.Groups[2].Value; - vars[varName + ".handle"] = varName + "->getHandle()"; - } - - var rxVector = new Regex(@"\bstd::vector\s*<\s*IntrusivePtr<\s*(\w+)\s*>\s*>\s*&?\s*(\w+)\b"); - foreach (Match mt in rxVector.Matches(paramList)) { - var elemClass = mt.Groups[1].Value; - var varName = mt.Groups[2].Value; - var vkType = "Vk" + elemClass; - - var rawName = "_raw_" + varName; - prelude.AppendLine("std::vector<" + vkType + "> " + rawName + "; " + rawName + ".reserve(" + varName + ".size());"); - prelude.AppendLine("for (auto const& it : " + varName + ") " + rawName + ".push_back(it->getHandle());"); - - vars[varName + ".handles"] = rawName + ".data()"; - vars[varName + ".size"] = varName + ".size()"; - vars[varName + ".count"] = varName + ".size()"; - } - - var quals = new StringBuilder(); - if (m.IsConst) quals.Append(" const"); - if (m.IsNoexcept) quals.Append(" noexcept"); - - var sig = (m.IsStatic ? "static " : "") + m.ReturnType + " " + m.Name + "(" + string.Join(", ", m.Parameters) + ")" + quals.ToString(); - - string guard = ""; - var parts = new List(); - if (!string.IsNullOrWhiteSpace(m.Guard)) parts.Add(m.Guard!); - if (m.RequiresExtensions.Count > 0) - parts.Add(string.Join(" && ", m.RequiresExtensions.Select(e => "defined(" + e + ")"))); - if (parts.Count > 0) guard = string.Join(" && ", parts); - - return (sig, prelude.ToString(), vars, guard); - } - - // Owned factory: declaration + body (+ comment with vkCreate*) - (string decl, string body) BuildFactory( - VkSpec.Command create, - VkSpec.Pair pair, - string className, - string parentClass, - List primaryOwners, - List lifetimeUses, - bool multiOut) { - var sbDecl = new StringBuilder(); - var sbBody = new StringBuilder(); - - var ps = create.Params.Skip(1).ToList(); - var outLenName = pair.OutHandleParam.LenAttr; - var lenNamesToSkip = new HashSet(); - - var sigParams = new List(); - var prep = new StringBuilder(); - var callArgs = new List(); - - sbDecl.Append("public:\n "); - // <-- Comment with original vk command - sbDecl.Append("// Original: " + create.Name + "\n "); - if (!multiOut) - sbDecl.Append("static IntrusivePtr<" + className + "> create(IntrusivePtr<" + parentClass + "> parent"); - else - sbDecl.Append("static std::vector> createMany(IntrusivePtr<" + parentClass + "> parent"); - - foreach (var p in ps) { - if (p.Name == "pAllocator") continue; - if (p.IsPointer && p.Type == pair.HandleType) continue; - if (outLenName != null && p.Name == outLenName) continue; - - if (p.IsHandle) { - var cls = ToClass(p.Type); - if (p.IsPointer && p.LenAttr != null) { - sigParams.Add("const std::vector>& " + p.Name); - var rawVec = "_raw_" + p.Name; - prep.AppendLine(" std::vector<" + p.Type + "> " + rawVec + "; " + rawVec + ".reserve(" + p.Name + ".size());"); - prep.AppendLine(" for (auto const& it : " + p.Name + ") " + rawVec + ".push_back(it->getHandle());"); - lenNamesToSkip.Add(p.LenAttr); - callArgs.Add(p.Name + ".size()"); - callArgs.Add(rawVec + ".data()"); - } else { - sigParams.Add("IntrusivePtr<" + cls + "> " + p.Name); - callArgs.Add(p.Name + "->getHandle()"); - } - } else { - if (lenNamesToSkip.Contains(p.Name)) continue; - sigParams.Add((p.IsConst ? "const " : "") + p.Type + (p.IsPointer ? "*" : "") + " " + p.Name); - callArgs.Add(p.Name); + // .cpp: ctor definition + var src = _sources[className]; + src.Append(" " + className + "::" + className + "("); + for (int i = 0; i < primaryOwners.Count; i++) { + if (i > 0) src.Append(", "); + src.Append("IntrusivePtr<" + ToClass(primaryOwners[i]) + "> owner" + i); } - } - - var lifeSig = new List(); - foreach (var u in lifetimeUses) { - var cls = ToClass(u.Type); - lifeSig.Add(u.IsMany - ? "const std::vector>& owners_" + cls - : "IntrusivePtr<" + cls + "> owner_" + cls); - } - - if (sigParams.Count > 0) sbDecl.Append(", "); - sbDecl.Append(string.Join(", ", sigParams)); - if (lifeSig.Count > 0) { - if (sigParams.Count > 0) sbDecl.Append(", "); - sbDecl.Append(string.Join(", ", lifeSig)); - } - sbDecl.AppendLine(") {"); - - sbBody.Append(prep.ToString()); - - callArgs.Add("nullptr"); - - var outName = "_out"; - if (!multiOut) { - sbBody.AppendLine(" " + pair.HandleType + " " + outName + " = VK_NULL_HANDLE;"); - callArgs.Add("&" + outName); - } else { - var lenName = outLenName ?? "count"; - sbBody.AppendLine(" std::vector<" + pair.HandleType + "> " + outName + ";"); - sbBody.AppendLine(" " + outName + ".resize(" + lenName + ");"); - callArgs.Add(outName + ".data()"); - } - - var argsFinal = new List { "parent->getHandle()" }; - argsFinal.AddRange(callArgs); - sbBody.Append(" auto _res = vk." + create.Name + "(" + string.Join(", ", argsFinal) + ");\n"); - sbBody.AppendLine(" if (_res != VK_SUCCESS) throw std::runtime_error(\"" + create.Name + " failed\");"); - - if (!multiOut) { - sbBody.Append(" return IntrusivePtr<" + className + ">(new " + className + "("); - for (int i = 0; i < primaryOwners.Count; ++i) { - if (i == 0) sbBody.Append("parent"); - else { - var t = primaryOwners[i]; - var pFound = ps.FirstOrDefault(pp => pp.IsHandle && pp.Type == t); - sbBody.Append(", " + (pFound != null ? (pFound.IsPointer && pFound.LenAttr != null ? "(" + ToClass(t) + ")nullptr /*from array*/" : pFound.Name) : "parent")); - } + if (primaryOwners.Count > 0) src.Append(", "); + src.Append(handleType + " handle, bool owned"); + foreach (var u in lifetimeUses) { + src.Append(", "); + var cls = ToClass(u.Type); + src.Append(u.IsMany + ? "const std::vector>& owners_" + cls + : "IntrusivePtr<" + cls + "> owner_" + cls); } - if (primaryOwners.Count > 0) sbBody.Append(", "); - sbBody.Append(outName); - sbBody.Append(", true"); + src.AppendLine(")"); + src.AppendLine(" : _handle(handle), _owned(owned)"); + for (int i = 0; i < primaryOwners.Count; i++) + src.AppendLine(" , _owner" + i + "(std::move(owner" + i + "))"); foreach (var u in lifetimeUses) { var cls = ToClass(u.Type); - sbBody.Append(", "); - sbBody.Append(u.IsMany ? "owners_" + cls : "owner_" + cls); + src.AppendLine(u.IsMany + ? " , _lifetime_owners_" + cls + "(owners_" + cls + ")" + : " , _lifetime_owner_" + cls + "(std::move(owner_" + cls + "))"); } - sbBody.AppendLine("));"); - } else { - sbBody.AppendLine(" std::vector> _ret; _ret.reserve(" + outName + ".size());"); - sbBody.AppendLine(" for (auto h : " + outName + ") {"); - sbBody.Append(" _ret.emplace_back(new " + className + "("); - for (int i = 0; i < primaryOwners.Count; ++i) { - if (i == 0) sbBody.Append("parent"); - else { - var t = primaryOwners[i]; - var pFound = ps.FirstOrDefault(pp => pp.IsHandle && pp.Type == t); - sbBody.Append(", " + (pFound != null ? (pFound.IsPointer && pFound.LenAttr != null ? "(" + ToClass(t) + ")nullptr /*from array*/" : pFound.Name) : "parent")); + src.AppendLine("{ }"); + src.AppendLine(); + + // .cpp: dtor definition + src.AppendLine(" " + className + "::~" + className + "() {"); + src.AppendLine(" if (_handle && _owned) {"); + if (hasOwned && !string.IsNullOrEmpty(pair!.DestroyOrFree) + && _spec.Commands.TryGetValue(pair!.DestroyOrFree, out var destroyCmd)) { + var guard = GuardExpr(destroyCmd.ProtectMacros); + if (guard.Length > 0) src.AppendLine("#if " + guard); + var args = new List(); + int ownerIdx = 0; + foreach (var p in destroyCmd.Params) { + if (p.Type == handleType && p.IsPointer) { args.Add("1"); args.Add("&_handle"); continue; } + if (p.Type == handleType && !p.IsPointer) { args.Add("_handle"); continue; } + if (p.Name == "pAllocator") { args.Add("nullptr"); continue; } + if (p.IsHandle) { + args.Add($"_owner{ownerIdx} ? _owner{ownerIdx}->getHandle() : ({p.Type})VK_NULL_HANDLE"); + ownerIdx++; + continue; + } + if (p.Name.EndsWith("Count")) args.Add("0"); else args.Add("0"); } + src.AppendLine(" (void)vk." + destroyCmd.Name + "(" + string.Join(", ", args) + ");"); + src.AppendLine(" _handle = VK_NULL_HANDLE;"); + if (guard.Length > 0) src.AppendLine("#endif"); } - if (primaryOwners.Count > 0) sbBody.Append(", "); - sbBody.Append("h"); - sbBody.Append(", true"); - foreach (var u in lifetimeUses) { - var cls = ToClass(u.Type); - sbBody.Append(", "); - sbBody.Append(u.IsMany ? "owners_" + cls : "owner_" + cls); - } - sbBody.AppendLine("));"); - sbBody.AppendLine(" }"); - sbBody.AppendLine(" return _ret;"); + src.AppendLine(" }"); + src.AppendLine("}"); + src.AppendLine(); } - - sbBody.AppendLine(" }"); - - return (sbDecl.ToString(), sbBody.ToString()); } // ========================================= - // Producer methods (Get*/Enumerate*) → parent->getChild() + // 2) Factories: ctor / createMany (prototypes inside class) + bodies in .cpp // ========================================= - void GenerateProducerMemberMethods() { - var headers = Directory.GetFiles(_outDir, "*.hpp") - .ToDictionary(f => Path.GetFileNameWithoutExtension(f), f => new StringBuilder(File.ReadAllText(f))); + void GenerateFactories() { + foreach (var pair in _spec.Pairs) { + var handleType = pair.HandleType; + var className = ToClass(handleType); + var src = _sources[className]; - foreach (var pr in _spec.Producers) { - var parentClass = ToClass(pr.ParentType); - var childClass = ToClass(pr.HandleType); - if (!headers.TryGetValue(parentClass, out var h)) { - var minimal = new StringBuilder(); - minimal.AppendLine("#pragma once"); - minimal.AppendLine("#include "); - minimal.AppendLine("#include "); - minimal.AppendLine("#include \"VulkanFunctions.hpp\""); - minimal.AppendLine("class " + parentClass + " : public RefCounted {"); - minimal.AppendLine("public:"); - minimal.AppendLine(" " + pr.ParentType + " getHandle() const noexcept { return _handle; }"); - minimal.AppendLine("private:"); - minimal.AppendLine(" " + pr.ParentType + " _handle{VK_NULL_HANDLE};"); - minimal.AppendLine("};"); - h = minimal; - headers[parentClass] = h; - } + var primaryOwners = new List(); + if (!string.IsNullOrEmpty(pair.ParentType)) primaryOwners.Add(pair.ParentType); + primaryOwners.AddRange(pair.ExtraOwnersForDestroy.Where(o => o != pair.ParentType)); + primaryOwners = primaryOwners.Distinct().ToList(); - var cmd = _spec.Commands[pr.CommandName]; + var createCmd = _spec.Commands[pair.CreateOrAllocate]; + var lifetimeUses = _spec.AnalyzeCreateInfoOwners(createCmd, handleType) + .Where(u => !primaryOwners.Contains(u.Type)) + .ToList(); - var outParam = pr.OutHandleParam; - var lenName = outParam.LenAttr; + bool multiOut = pair.OutHandleParam.LenAttr != null; + bool hasParent = !string.IsNullOrEmpty(pair.ParentType); + var parentClass = hasParent ? ToClass(pair.ParentType) : ""; + + // signature pieces + var ps = createCmd.Params.ToList(); + var outLenName = pair.OutHandleParam.LenAttr; + var lenNamesToSkip = new HashSet(); var sigParams = new List(); - var callArgs = new List(); - foreach (var p in cmd.Params) { - if (p == cmd.Params[0]) continue; - if (p.Name == outParam.Name) continue; - if (!string.IsNullOrEmpty(lenName) && p.Name == lenName) continue; + var prep = new StringBuilder(); + var callArgsPrepared = new Queue(); + + if (hasParent) { sigParams.Add($"IntrusivePtr<{parentClass}> parent"); AddHeaderForward(className, parentClass); AddCppInclude(className, parentClass); } + + foreach (var p in ps) { + if (hasParent && p == ps.First()) continue; + if (p.Name == "pAllocator") continue; + if (p.IsPointer && p.Type == pair.HandleType) continue; + if (outLenName != null && p.Name == outLenName) continue; if (p.IsHandle) { var cls = ToClass(p.Type); - sigParams.Add("IntrusivePtr<" + cls + "> " + p.Name); - callArgs.Add(p.Name + "->getHandle()"); + AddHeaderForward(className, cls); + AddCppInclude(className, cls); + + if (p.IsPointer && p.LenAttr != null) { + sigParams.Add($"const std::vector>& {p.Name}"); + var rawVec = "_raw_" + p.Name; + prep.AppendLine($" std::vector<{p.Type}> {rawVec}; {rawVec}.reserve({p.Name}.size());"); + prep.AppendLine($" for (auto const& it : {p.Name}) {rawVec}.push_back(it->getHandle());"); + lenNamesToSkip.Add(p.LenAttr!); + callArgsPrepared.Enqueue($"{p.Name}.size()"); + callArgsPrepared.Enqueue($"{rawVec}.data()"); + } else { + sigParams.Add($"IntrusivePtr<{cls}> {p.Name}"); + callArgsPrepared.Enqueue($"{p.Name}->getHandle()"); + } } else { - sigParams.Add((p.IsConst ? "const " : "") + p.Type + (p.IsPointer ? "*" : "") + " " + p.Name); - callArgs.Add(p.Name); + if (lenNamesToSkip.Contains(p.Name)) continue; + sigParams.Add($"{(p.IsConst ? "const " : "")}{p.Type}{(p.IsPointer ? "*" : "")} {p.Name}"); + callArgsPrepared.Enqueue(p.Name); } } + foreach (var u in lifetimeUses) { + var cls = ToClass(u.Type); + AddHeaderForward(className, cls); + AddCppInclude(className, cls); + sigParams.Add(u.IsMany + ? $"const std::vector>& owners_{cls}" + : $"IntrusivePtr<{cls}> owner_{cls}"); + } + + string ResolveOwnerExpr(string ownerVkType) { + if (ownerVkType == pair.ParentType && hasParent) return "parent"; + var pFound = createCmd.Params.FirstOrDefault(pp => pp.IsHandle && pp.Type == ownerVkType + && (!pp.IsPointer || pp.LenAttr == null) + && (!hasParent || pp != createCmd.Params.First())); + if (pFound != null) return pFound.Name; + var lu = lifetimeUses.FirstOrDefault(x => x.Type == ownerVkType && !x.IsMany); + if (lu != null) return "owner_" + ToClass(ownerVkType); + return hasParent ? "parent" : $"({ToClass(ownerVkType)})nullptr"; + } + + var guardCreate = GuardExpr(createCmd.ProtectMacros); + + if (!multiOut) { + // ---------- DECLARE: constructor (inside class) ---------- + var decl = new StringBuilder(); + if (guardCreate.Length > 0) decl.AppendLine("#if " + guardCreate); + decl.AppendLine("public:"); + decl.AppendLine("// Original: " + createCmd.Name); + decl.AppendLine(" explicit " + className + "(" + string.Join(", ", sigParams) + ");"); + // ---------- DECLARE: static create(...) (inside class) ---------- + decl.AppendLine("// Original: " + createCmd.Name + " (factory)"); + decl.AppendLine(" static IntrusivePtr<" + className + "> create(" + string.Join(", ", sigParams) + ");"); + if (guardCreate.Length > 0) decl.AppendLine("#endif"); + decl.AppendLine(); + AddToHeaderClass(className, decl.ToString()); + + // ---------- DEFINE: constructor in .cpp ---------- + if (guardCreate.Length > 0) src.AppendLine("#if " + guardCreate); + src.AppendLine("// Original: " + createCmd.Name); + src.Append(className + "::" + className + "(" + string.Join(", ", sigParams) + ")"); + src.AppendLine(" : _handle(VK_NULL_HANDLE), _owned(true)"); + for (int i = 0; i < primaryOwners.Count; ++i) + src.AppendLine(" , _owner" + i + "(" + ResolveOwnerExpr(primaryOwners[i]) + ")"); + foreach (var u in lifetimeUses) { + var cls = ToClass(u.Type); + src.AppendLine(u.IsMany + ? " , _lifetime_owners_" + cls + "(owners_" + cls + ")" + : " , _lifetime_owner_" + cls + "(owner_" + cls + ")"); + } + src.AppendLine("{"); + src.Append(prep.ToString()); + + var outName = "_out"; + src.AppendLine(" " + pair.HandleType + " " + outName + " = VK_NULL_HANDLE;"); + + var argsFinal = new List(); + foreach (var p in createCmd.Params) { + if (hasParent && p == createCmd.Params.First()) { argsFinal.Add("parent->getHandle()"); continue; } + if (!hasParent && p == createCmd.Params.First() && !p.IsHandle) { /* queued above */ } + if (p.Name == "pAllocator") { argsFinal.Add("nullptr"); continue; } + if (p.IsPointer && p.Type == pair.HandleType) { argsFinal.Add("&" + outName); continue; } + if (outLenName != null && p.Name == outLenName) { argsFinal.Add("0"); continue; } + if (callArgsPrepared.Count > 0) argsFinal.Add(callArgsPrepared.Dequeue()); + } + + src.AppendLine(" auto _res = vk." + createCmd.Name + "(" + string.Join(", ", argsFinal) + ");"); + src.AppendLine(" if (_res != VK_SUCCESS) throw std::runtime_error(\"" + createCmd.Name + " failed\");"); + src.AppendLine(" _handle = " + outName + ";"); + src.AppendLine("}"); + + // ---------- DEFINE: static create(...) in .cpp ---------- + // derive argument names from the signature we just built + var argNames = sigParams + .Select(p => { + // works for: "IntrusivePtr x", "const VkFoo* p", "const std::vector<...>& arr", etc. + var parts = p.Trim().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + return parts[^1]; + }) + .ToList(); + + src.AppendLine("// Original: " + createCmd.Name + " (factory)"); + src.Append("IntrusivePtr<" + className + "> " + className + "::create(" + string.Join(", ", sigParams) + ")"); + src.AppendLine(" {"); + src.Append(" return IntrusivePtr<" + className + ">(new " + className + "(" + string.Join(", ", argNames) + "));"); + src.AppendLine(); + src.AppendLine("}"); + if (guardCreate.Length > 0) src.AppendLine("#endif"); + src.AppendLine(); + } else { + // declare static createMany **inside class** + var decl = new StringBuilder(); + if (guardCreate.Length > 0) decl.AppendLine("#if " + guardCreate); + decl.AppendLine("public:"); + decl.AppendLine("// Original: " + createCmd.Name); + decl.AppendLine(" static std::vector> createMany(" + string.Join(", ", sigParams) + ");"); + if (guardCreate.Length > 0) decl.AppendLine("#endif"); + decl.AppendLine(); + AddToHeaderClass(className, decl.ToString()); + + // define in .cpp + if (guardCreate.Length > 0) src.AppendLine("#if " + guardCreate); + src.AppendLine("// Original: " + createCmd.Name); + src.Append("std::vector> " + className + "::createMany(" + string.Join(", ", sigParams) + ")"); + src.AppendLine(" {"); + src.Append(prep.ToString()); + var outName = "_out"; + var lenName = outLenName ?? "count"; + src.AppendLine(" std::vector<" + pair.HandleType + "> " + outName + ";"); + src.AppendLine(" " + outName + ".resize(" + lenName + ");"); + + var argsFinal = new List(); + foreach (var p in createCmd.Params) { + if (hasParent && p == createCmd.Params.First()) { argsFinal.Add("parent->getHandle()"); continue; } + if (p.Name == "pAllocator") { argsFinal.Add("nullptr"); continue; } + if (p.IsPointer && p.Type == pair.HandleType) { argsFinal.Add(outName + ".data()"); continue; } + if (outLenName != null && p.Name == outLenName) { argsFinal.Add(lenName); continue; } + if (callArgsPrepared.Count > 0) argsFinal.Add(callArgsPrepared.Dequeue()); + } + + src.AppendLine(" auto _res = vk." + createCmd.Name + "(" + string.Join(", ", argsFinal) + ");"); + src.AppendLine(" if (_res != VK_SUCCESS) throw std::runtime_error(\"" + createCmd.Name + " failed\");"); + src.AppendLine(" std::vector> _ret; _ret.reserve(" + outName + ".size());"); + src.AppendLine(" for (auto h : " + outName + ") {"); + var ctorOwners = new List(); + for (int i = 0; i < primaryOwners.Count; ++i) ctorOwners.Add(ResolveOwnerExpr(primaryOwners[i])); + + src.Append(" _ret.emplace_back(new " + className + "(" + string.Join(", ", ctorOwners)); + if (primaryOwners.Count > 0) src.Append(", "); + src.Append("h, true"); + foreach (var u in lifetimeUses) { + var cls = ToClass(u.Type); + src.Append(", "); + src.Append(u.IsMany ? "owners_" + cls : "owner_" + cls); + } + src.AppendLine("));"); + src.AppendLine(" }"); + src.AppendLine(" return _ret;"); + src.AppendLine("}"); + if (guardCreate.Length > 0) src.AppendLine("#endif"); + src.AppendLine(); + } + } + } + + // ========================================= + // 3) Producer methods (Get*/Enumerate*) + // ========================================= + void GenerateProducerMemberMethods() { + foreach (var pr in _spec.Producers) { + var parentClass = ToClass(pr.ParentType); + var childClass = ToClass(pr.HandleType); + TouchHeader(parentClass); + + var cmd = _spec.Commands[pr.CommandName]; + var guard = GuardExpr(cmd.ProtectMacros); + + AddHeaderForward(parentClass, childClass); + AddCppInclude(parentClass, childClass); + foreach (var p in cmd.Params.Skip(1)) + if (p.IsHandle) { AddHeaderForward(parentClass, ToClass(p.Type)); AddCppInclude(parentClass, ToClass(p.Type)); } + + var outParam = pr.OutHandleParam; + var lenName = outParam.LenAttr; + + var sigParams = new List(); + foreach (var p in cmd.Params.Skip(1)) { + if (p.Name == outParam.Name) continue; + if (!string.IsNullOrEmpty(lenName) && p.Name == lenName) continue; + if (p.IsHandle) + sigParams.Add("IntrusivePtr<" + ToClass(p.Type) + "> " + p.Name); + else + sigParams.Add((p.IsConst ? "const " : "") + p.Type + (p.IsPointer ? "*" : "") + " " + p.Name); + } + var retWrapper = pr.IsMany ? "std::vector>" : "IntrusivePtr<" + childClass + ">"; var methodName = "get" + childClass + (pr.IsMany ? "s" : ""); - var method = new StringBuilder(); - method.Append("public:\n "); - // <-- Comment with original vkGet*/vkEnumerate* - method.Append("// Original: " + cmd.Name + "\n "); - method.Append(retWrapper + " " + methodName + "(" + string.Join(", ", sigParams) + ") {\n"); + + // header prototype **inside class** + var decl = new StringBuilder(); + if (guard.Length > 0) decl.AppendLine("#if " + guard); + decl.AppendLine("public:"); + decl.AppendLine("// Original: " + cmd.Name); + decl.AppendLine(" " + retWrapper + " " + methodName + "(" + string.Join(", ", sigParams) + ");"); + if (guard.Length > 0) decl.AppendLine("#endif"); + decl.AppendLine(); + AddToHeaderClass(parentClass, decl.ToString()); + + // Source definition + var src = _sources[parentClass]; + if (guard.Length > 0) src.AppendLine("#if " + guard); + src.AppendLine("// Original: " + cmd.Name); + src.Append(retWrapper + " " + parentClass + "::" + methodName + "(" + string.Join(", ", sigParams) + ")"); + src.AppendLine(" {"); + if (pr.IsMany) { - var countParam = cmd.Params.FirstOrDefault(p => p.Name == lenName)!; - var countType = countParam.Type; - method.Append(" " + countType + " _count = 0;\n"); + var countParam = cmd.Params.First(p => p.Name == lenName); + src.AppendLine(" " + countParam.Type + " _count = 0;"); var firstArgs = new List { "_handle" }; foreach (var p in cmd.Params.Skip(1)) { @@ -581,14 +727,11 @@ public sealed class Generator { } var call1 = "vk." + cmd.Name + "(" + string.Join(", ", firstArgs) + ")"; if (cmd.ReturnType.Trim() == "VkResult") { - method.Append(" auto _r1 = " + call1 + ";\n"); - method.Append(" if (_r1 != VK_SUCCESS && _r1 != VK_INCOMPLETE) throw std::runtime_error(\"" + cmd.Name + " (count) failed\");\n"); - } else { - method.Append(" " + call1 + ";\n"); - } + src.AppendLine(" auto _r1 = " + call1 + ";"); + src.AppendLine(" if (_r1 != VK_SUCCESS && _r1 != VK_INCOMPLETE) throw std::runtime_error(\"" + cmd.Name + " (count) failed\");"); + } else src.AppendLine(" " + call1 + ";"); - method.Append(" std::vector<" + pr.HandleType + "> _out;\n"); - method.Append(" _out.resize(_count);\n"); + src.AppendLine(" std::vector<" + pr.HandleType + "> _out; _out.resize(_count);"); var secondArgs = new List { "_handle" }; foreach (var p in cmd.Params.Skip(1)) { @@ -599,20 +742,16 @@ public sealed class Generator { } var call2 = "vk." + cmd.Name + "(" + string.Join(", ", secondArgs) + ")"; if (cmd.ReturnType.Trim() == "VkResult") { - method.Append(" auto _r2 = " + call2 + ";\n"); - method.Append(" if (_r2 != VK_SUCCESS) throw std::runtime_error(\"" + cmd.Name + " (fill) failed\");\n"); - } else { - method.Append(" " + call2 + ";\n"); - } + src.AppendLine(" auto _r2 = " + call2 + ";"); + src.AppendLine(" if (_r2 != VK_SUCCESS) throw std::runtime_error(\"" + cmd.Name + " (fill) failed\");"); + } else src.AppendLine(" " + call2 + ";"); - method.Append(" std::vector> _ret; _ret.reserve(_out.size());\n"); - method.Append(" IntrusivePtr<" + parentClass + "> _self(this);\n"); - method.Append(" for (auto h : _out) {\n"); - method.Append(" _ret.emplace_back(new " + childClass + "(_self, h, false));\n"); - method.Append(" }\n"); - method.Append(" return _ret;\n"); + src.AppendLine(" std::vector> _ret; _ret.reserve(_out.size());"); + src.AppendLine(" IntrusivePtr<" + parentClass + "> _self(this);"); + src.AppendLine(" for (auto h : _out) { _ret.emplace_back(new " + childClass + "(_self, h, false)); }"); + src.AppendLine(" return _ret;"); } else { - method.Append(" " + pr.HandleType + " _h = VK_NULL_HANDLE;\n"); + src.AppendLine(" " + pr.HandleType + " _h = VK_NULL_HANDLE;"); var args = new List { "_handle" }; foreach (var p in cmd.Params.Skip(1)) { if (p.Name == outParam.Name) args.Add("&_h"); @@ -621,33 +760,24 @@ public sealed class Generator { } var call = "vk." + cmd.Name + "(" + string.Join(", ", args) + ")"; if (cmd.ReturnType.Trim() == "VkResult") { - method.Append(" auto _r = " + call + ";\n"); - method.Append(" if (_r != VK_SUCCESS) throw std::runtime_error(\"" + cmd.Name + " failed\");\n"); - } else { - method.Append(" " + call + ";\n"); - } - method.Append(" return IntrusivePtr<" + childClass + ">(new " + childClass + "(IntrusivePtr<" + parentClass + ">(this), _h, false));\n"); + src.AppendLine(" auto _r = " + call + ";"); + src.AppendLine(" if (_r != VK_SUCCESS) throw std::runtime_error(\"" + cmd.Name + " failed\");"); + } else src.AppendLine(" " + call + ";"); + + src.AppendLine(" return IntrusivePtr<" + childClass + ">(new " + childClass + "(IntrusivePtr<" + parentClass + ">(this), _h, false));"); } - method.Append(" }\n"); - var s = h.ToString(); - var idx = s.LastIndexOf("};", StringComparison.Ordinal); - s = s.Insert(idx, method.ToString()); - headers[parentClass] = new StringBuilder(s); + src.AppendLine("}"); + if (guard.Length > 0) src.AppendLine("#endif"); + src.AppendLine(); } - - foreach (var kv in headers) - File.WriteAllText(Path.Combine(_outDir, kv.Key + ".hpp"), kv.Value.ToString()); } // ========================================= - // vk* → class methods (skip producer-out-handle) with pretty names + // 4) Non-producer member methods // ========================================= void GenerateMemberMethods() { - var headers = Directory.GetFiles(_outDir, "*.hpp") - .ToDictionary(f => Path.GetFileNameWithoutExtension(f), f => new StringBuilder(File.ReadAllText(f))); - - foreach (var cmd in _spec.Commands.Values) { + foreach (var cmd in EnabledCommands()) { if (cmd.Name.StartsWith("vkCreate") || cmd.Name.StartsWith("vkDestroy") || cmd.Name.StartsWith("vkAllocate") || cmd.Name.StartsWith("vkFree")) continue; @@ -662,22 +792,9 @@ public sealed class Generator { if (!_spec.Handles.ContainsKey(first.Type)) continue; var className = ToClass(first.Type); - if (!headers.TryGetValue(className, out var h)) { - var minimal = new StringBuilder(); - minimal.AppendLine("#pragma once"); - minimal.AppendLine("#include "); - minimal.AppendLine("#include "); - minimal.AppendLine("#include \"VulkanFunctions.hpp\""); - minimal.AppendLine("class " + className + " : public RefCounted {"); - minimal.AppendLine("public:"); - minimal.AppendLine(" " + first.Type + " getHandle() const noexcept { return _handle; }"); - minimal.AppendLine("private:"); - minimal.AppendLine(" " + first.Type + " _handle{VK_NULL_HANDLE};"); - minimal.AppendLine("};"); - h = minimal; - headers[className] = h; - } + TouchHeader(className); + var guard = GuardExpr(cmd.ProtectMacros); var methodName = MakeMethodName(className, cmd.Name); var retType = string.IsNullOrWhiteSpace(cmd.ReturnType) ? "void" : cmd.ReturnType; @@ -690,11 +807,14 @@ public sealed class Generator { foreach (var p in ps) { if (p.IsHandle) { var cls = ToClass(p.Type); + AddHeaderForward(className, cls); + AddCppInclude(className, cls); + if (p.IsPointer && p.LenAttr != null) { sigParams.Add("const std::vector>& " + p.Name); var raw = "_raw_" + p.Name; - prep.AppendLine(" std::vector<" + p.Type + "> " + raw + "; " + raw + ".reserve(" + p.Name + ".size());"); - prep.AppendLine(" for (auto const& it : " + p.Name + ") " + raw + ".push_back(it->getHandle());"); + prep.AppendLine(" std::vector<" + p.Type + "> " + raw + "; " + raw + ".reserve(" + p.Name + ".size());"); + prep.AppendLine(" for (auto const& it : " + p.Name + ") " + raw + ".push_back(it->getHandle());"); lenNamesToSkip.Add(p.LenAttr); callArgs.Add(p.Name + ".size()"); callArgs.Add(raw + ".data()"); @@ -709,27 +829,183 @@ public sealed class Generator { } } - var method = new StringBuilder(); - method.Append("public:\n "); - // <-- Comment with original vk* name - method.Append("// Original: " + cmd.Name + "\n "); - method.Append(retType + " " + methodName + "(" + string.Join(", ", sigParams) + ") {\n"); - method.Append(prep.ToString()); - method.Append(" "); - if (retType != "void") method.Append("return "); + // header prototype inside class + var decl = new StringBuilder(); + if (guard.Length > 0) decl.AppendLine("#if " + guard); + decl.AppendLine("public:"); + decl.AppendLine("// Original: " + cmd.Name); + decl.AppendLine(" " + retType + " " + methodName + "(" + string.Join(", ", sigParams) + ");"); + if (guard.Length > 0) decl.AppendLine("#endif"); + decl.AppendLine(); + AddToHeaderClass(className, decl.ToString()); + + // source definition + var src = _sources[className]; + if (guard.Length > 0) src.AppendLine("#if " + guard); + src.AppendLine("// Original: " + cmd.Name); + src.Append(retType + " " + className + "::" + methodName + "(" + string.Join(", ", sigParams) + ")"); + src.AppendLine(" {"); + src.Append(prep.ToString()); + src.Append(" "); + if (retType != "void") src.Append("return "); var call = "vk." + cmd.Name + "(_handle"; if (callArgs.Count > 0) call += ", " + string.Join(", ", callArgs); call += ");"; - method.Append(call + "\n"); - method.Append(" }\n"); + src.AppendLine(call); + src.AppendLine("}"); + if (guard.Length > 0) src.AppendLine("#endif"); + src.AppendLine(); + } + } - var s = h.ToString(); - var idx = s.LastIndexOf("};", StringComparison.Ordinal); - s = s.Insert(idx, method.ToString()); - headers[className] = new StringBuilder(s); + // ========================================= + // 5) Sugar methods (prototypes inside class + bodies) + // ========================================= + void GenerateSugarMethods() { + foreach (var kv in _sugar) { + var className = kv.Key; + if (!_headers.ContainsKey(className)) TouchHeader(className); + + var spec = kv.Value; + foreach (var m in spec.Methods) { + if (!m.RequiresFunctions.All(fn => _spec.Commands.ContainsKey(fn))) continue; + if (!m.RequiresExtensions.All(ext => _spec.Extensions.ContainsKey(ext))) continue; + + foreach (var p in m.Parameters) { + var m1 = Regex.Match(p, @"IntrusivePtr<\s*(\w+)\s*>"); + if (m1.Success) { AddHeaderForward(className, m1.Groups[1].Value); AddCppInclude(className, m1.Groups[1].Value); } + var m2 = Regex.Match(p, @"std::vector\s*<\s*IntrusivePtr<\s*(\w+)\s*>\s*>"); + if (m2.Success) { AddHeaderForward(className, m2.Groups[1].Value); AddCppInclude(className, m2.Groups[1].Value); } + } + + var (sig, prelude, vars, guard) = BuildSugarSignatureAndContext(m, className); + + var decl = new StringBuilder(); + if (!string.IsNullOrEmpty(guard)) decl.AppendLine("#if " + guard); + decl.AppendLine("public:"); + decl.AppendLine("// Original: (sugar)"); + decl.AppendLine(" " + sig + ";"); + if (!string.IsNullOrEmpty(guard)) decl.AppendLine("#endif"); + decl.AppendLine(); + AddToHeaderClass(className, decl.ToString()); + + var src = _sources[className]; + if (!string.IsNullOrEmpty(guard)) src.AppendLine("#if " + guard); + src.AppendLine("// Original: (sugar)"); + var nameOnly = sig.Substring(sig.IndexOf(' ') + 1); + var idxParen = nameOnly.IndexOf('('); + var methodName = nameOnly.Substring(0, idxParen); + var argsIn = nameOnly.Substring(idxParen); + src.Append(m.ReturnType + " " + className + "::" + methodName + argsIn); + src.AppendLine(" {"); + if (!string.IsNullOrEmpty(prelude)) + foreach (var line in prelude.Split('\n')) + if (line.Length > 0) src.AppendLine(" " + line); + foreach (var ln in m.BodyLines) + src.AppendLine(" " + Render(ln, vars)); + src.AppendLine("}"); + if (!string.IsNullOrEmpty(guard)) src.AppendLine("#endif"); + src.AppendLine(); + } } - foreach (var kv in headers) - File.WriteAllText(Path.Combine(_outDir, kv.Key + ".hpp"), kv.Value.ToString()); + (string sig, string prelude, Dictionary vars, string guard) + BuildSugarSignatureAndContext(SugarMethodSpec m, string className) { + var vars = new Dictionary { + ["class"] = className, + ["handle"] = "_handle", + ["vk"] = "vk" + }; + + var prelude = new StringBuilder(); + var paramList = string.Join(", ", m.Parameters); + + var rxScalar = new Regex(@"\bIntrusivePtr<\s*(\w+)\s*>\s+(\w+)\b"); + foreach (Match mt in rxScalar.Matches(paramList)) { + var varName = mt.Groups[2].Value; + vars[varName + ".handle"] = varName + "->getHandle()"; + } + + var rxVector = new Regex(@"\bstd::vector\s*<\s*IntrusivePtr<\s*(\w+)\s*>\s*>\s*&?\s*(\w+)\b"); + foreach (Match mt in rxVector.Matches(paramList)) { + var elemClass = mt.Groups[1].Value; + var varName = mt.Groups[2].Value; + var vkType = "Vk" + elemClass; + + var rawName = "_raw_" + varName; + prelude.AppendLine("std::vector<" + vkType + "> " + rawName + "; " + rawName + ".reserve(" + varName + ".size());"); + prelude.AppendLine("for (auto const& it : " + varName + ") " + rawName + ".push_back(it->getHandle());"); + + vars[varName + ".handles"] = rawName + ".data()"; + vars[varName + ".size"] = varName + ".size()"; + vars[varName + ".count"] = varName + ".size()"; + } + + var quals = new StringBuilder(); + if (m.IsConst) quals.Append(" const"); + if (m.IsNoexcept) quals.Append(" noexcept"); + + var sig = (m.IsStatic ? "static " : "") + m.ReturnType + " " + m.Name + "(" + string.Join(", ", m.Parameters) + ")" + quals.ToString(); + + string guard = ""; + var parts = new List(); + if (!string.IsNullOrWhiteSpace(m.Guard)) parts.Add(m.Guard!); + if (m.RequiresExtensions.Count > 0) + parts.Add(string.Join(" && ", m.RequiresExtensions.Select(e => "defined(" + e + ")"))); + if (parts.Count > 0) guard = string.Join(" && ", parts); + + return (sig, prelude.ToString(), vars, guard); + } + + static string Render(string tpl, Dictionary vars) { + foreach (var kv in vars) tpl = tpl.Replace("${" + kv.Key + "}", kv.Value); + return tpl; + } + } + + // ========================================= + // 6) Finalize: add forwards/includes, close namespaces, write files + // ========================================= + void FinalizeHeadersAndSources() { + foreach (var (className, h) in _headers.ToArray()) { + var text = h.ToString(); + + if (_headerForwards.TryGetValue(className, out var fwds) && fwds.Count > 0) { + var block = new StringBuilder(); + foreach (var n in fwds.OrderBy(n => n)) + block.AppendLine("class " + n + ";"); + + int posNs = text.IndexOf("namespace VulkanPP {", StringComparison.Ordinal); + if (posNs >= 0) { + int insertPos = posNs + "namespace VulkanPP {".Length; + text = text.Insert(insertPos, "\n" + block.ToString() + "\n"); + } else { + text = block.ToString() + "\n" + text; + } + } + + if (!text.EndsWith("\n")) text += "\n"; + File.WriteAllText(Path.Combine(_outDir, className + ".hpp"), text); + } + + foreach (var (className, s) in _sources.ToArray()) { + var includes = new StringBuilder(); + if (_cppIncludes.TryGetValue(className, out var incs)) { + foreach (var n in incs.OrderBy(n => n)) + includes.AppendLine("#include "); + includes.AppendLine(); + } + + var text = s.ToString(); + int firstNL = text.IndexOf('\n'); + if (firstNL >= 0) text = text.Insert(firstNL + 1, includes.ToString()); + + if (!text.EndsWith("\n} // namespace VulkanPP\n")) { + if (!text.EndsWith("\n")) text += "\n"; + text += "} // namespace VulkanPP\n"; + } + + File.WriteAllText(Path.Combine(_outDir, className + ".cpp"), text); + } } } diff --git a/Tools/VulkanWrapperGenerator/Program.cs b/Tools/VulkanWrapperGenerator/Program.cs index 5b0f932..96e3feb 100644 --- a/Tools/VulkanWrapperGenerator/Program.cs +++ b/Tools/VulkanWrapperGenerator/Program.cs @@ -1,141 +1,43 @@ using System; -using System.Collections.Generic; using System.IO; -//using VulkanWrapperGenerator; +using System.Linq; class Program { - static string ResolveVkXmlPath(string[] args) { - // 1) Explicit path via arg - if (args.Length > 0 && File.Exists(args[0])) return args[0]; + static void Main(string[] args) { + // Resolve vk.xml path + string vkXml = + args.FirstOrDefault(a => a.EndsWith("vk.xml", StringComparison.OrdinalIgnoreCase)) + ?? GuessVkXmlFromEnv() + ?? @"C:\VulkanSDK\1.4.313.0\share\vulkan\registry\vk.xml"; - // 2) VULKAN_SDK based locations - var sdk = Environment.GetEnvironmentVariable("VULKAN_SDK"); - if (!string.IsNullOrWhiteSpace(sdk)) { - var p1 = Path.Combine(sdk, "share", "vulkan", "registry", "vk.xml"); - if (File.Exists(p1)) return p1; - var p2 = Path.Combine(sdk, "Include", "vulkan", "vk.xml"); - if (File.Exists(p2)) return p2; + if (!File.Exists(vkXml)) { + Console.Error.WriteLine($"vk.xml not found: {vkXml}"); + Environment.Exit(1); } - // 3) Typical Windows SDK layout (adjust if needed) - var winShare = Path.Combine(@"C:\VulkanSDK", "1.4.313.0", "share", "vulkan", "registry", "vk.xml"); - if (File.Exists(winShare)) return winShare; - - throw new FileNotFoundException( - "vk.xml not found. Pass a path as the first argument or set VULKAN_SDK.\n" + - "Searched: , " + - (sdk != null ? $"{sdk}\\share\\vulkan\\registry\\vk.xml, {sdk}\\Include\\vulkan\\vk.xml" : "") + - ", C:\\VulkanSDK\\1.4.313.0\\share\\vulkan\\registry\\vk.xml"); - } - - static void Main(string[] args) { - var xmlPath = ResolveVkXmlPath(args); - var spec = VkSpec.Load(xmlPath); - - // External "sugar" methods you want to inject into wrappers - var sugar = new List - { - new SugarClassSpec("Buffer") - { - Includes = { "" }, - Methods = - { - new SugarMethodSpec - { - Name = "uploadData", - ReturnType = "void", - Parameters = { - "const void* data", - "size_t size", - "IntrusivePtr memory", - "VkDeviceSize offset = 0" - }, - RequiresFunctions = { "vkMapMemory", "vkUnmapMemory", "vkBindBufferMemory" }, - BodyLines = { - "void* _p = nullptr;", - "auto _r = ${vk}.vkMapMemory(${owner0.handle}, ${memory.handle}, offset, size, 0, &_p);", - "if (_r != VK_SUCCESS) throw std::runtime_error(\"vkMapMemory failed\");", - "std::memcpy(_p, data, size);", - "${vk}.vkUnmapMemory(${owner0.handle});", - "(void)${vk}.vkBindBufferMemory(${owner0.handle}, ${handle}, ${memory.handle}, 0);" - } - } - } - }, - - new SugarClassSpec("Image") - { - Methods = - { - new SugarMethodSpec - { - Name = "transitionLayout", - ReturnType = "void", - Parameters = { - "IntrusivePtr cmd", - "VkImageLayout oldLayout", - "VkImageLayout newLayout", - "VkImageAspectFlags aspect = VK_IMAGE_ASPECT_COLOR_BIT" - }, - RequiresFunctions = { "vkCmdPipelineBarrier" }, - RequiresExtensions = { "VK_KHR_synchronization2" }, // example of extension guard - BodyLines = { - "VkImageMemoryBarrier barrier{ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER };", - "barrier.oldLayout = oldLayout;", - "barrier.newLayout = newLayout;", - "barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;", - "barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;", - "barrier.image = ${handle};", - "barrier.subresourceRange.aspectMask = aspect;", - "barrier.subresourceRange.baseMipLevel = 0;", - "barrier.subresourceRange.levelCount = VK_REMAINING_MIP_LEVELS;", - "barrier.subresourceRange.baseArrayLayer = 0;", - "barrier.subresourceRange.layerCount = VK_REMAINING_ARRAY_LAYERS;", - "VkPipelineStageFlags srcStage = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;", - "VkPipelineStageFlags dstStage = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;", - "${vk}.vkCmdPipelineBarrier(${cmd.handle}, srcStage, dstStage, 0, 0, nullptr, 0, nullptr, 1, &barrier);" - } - } - } - }, - - new SugarClassSpec("Device") - { - Includes = { "", "" }, - Methods = - { - new SugarMethodSpec - { - Name = "createShaderModuleFromFile", - ReturnType = "IntrusivePtr", - Parameters = { "const char* path" }, - RequiresFunctions = { "vkCreateShaderModule" }, - BodyLines = { - "std::ifstream f(path, std::ios::binary | std::ios::ate);", - "if (!f) throw std::runtime_error(\"Can't open SPV file\");", - "auto sz = (size_t)f.tellg(); f.seekg(0);", - "std::vector code((sz + 3) / 4);", - "f.read(reinterpret_cast(code.data()), sz);", - "VkShaderModuleCreateInfo ci{ VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO };", - "ci.codeSize = sz;", - "ci.pCode = code.data();", - "VkShaderModule h = VK_NULL_HANDLE;", - "auto r = ${vk}.vkCreateShaderModule(${handle}, &ci, nullptr, &h);", - "if (r != VK_SUCCESS) throw std::runtime_error(\"vkCreateShaderModule failed\");", - "return IntrusivePtr(new ShaderModule(${selfOwners}, h));" - } - } - } - } - }; - - var outDir = "Generated"; + // Output dir (.../out/VulkanPP) + string outRoot = args.FirstOrDefault(a => a.StartsWith("--out="))?.Substring("--out=".Length) + ?? Path.Combine(Environment.CurrentDirectory, "out"); + string outDir = Path.Combine(outRoot, "VulkanPP"); Directory.CreateDirectory(outDir); + Console.WriteLine($"Parsing: {vkXml}"); + var spec = VkSpec.Load(vkXml); + + // Optional sugar methods (empty by default) + var sugar = Array.Empty(); + + Console.WriteLine($"Generating to: {outDir}"); var gen = new Generator(spec, outDir, sugar); gen.GenerateAll(); - Console.WriteLine("✅ Generated into ./Generated"); - Console.WriteLine("vk.xml used: " + xmlPath); + Console.WriteLine("Done."); + } + + static string? GuessVkXmlFromEnv() { + var sdk = Environment.GetEnvironmentVariable("VULKAN_SDK"); + if (string.IsNullOrWhiteSpace(sdk)) return null; + string candidate = Path.Combine(sdk, "share", "vulkan", "registry", "vk.xml"); + return File.Exists(candidate) ? candidate : null; } } diff --git a/Tools/VulkanWrapperGenerator/Sugar.cs b/Tools/VulkanWrapperGenerator/Sugar.cs deleted file mode 100644 index 349a7ed..0000000 --- a/Tools/VulkanWrapperGenerator/Sugar.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Collections.Generic; - -public sealed class SugarMethodSpec { - public string Name { get; init; } = ""; - public string ReturnType { get; init; } = "void"; - public List Parameters { get; init; } = new(); - public List BodyLines { get; init; } = new(); - - // Optional compile-time guard (combined with RequiresExtensions) - public string? Guard { get; init; } - - // Requirements (checked against vk.xml). Method is generated only if all match. - public List RequiresFunctions { get; init; } = new(); - public List RequiresExtensions { get; init; } = new(); - - // Method qualifiers - public bool IsConst { get; init; } = false; - public bool IsNoexcept { get; init; } = false; - public bool IsStatic { get; init; } = false; -} - -public sealed class SugarClassSpec { - public string TargetClass { get; init; } = ""; - public List Includes { get; init; } = new(); - public List Methods { get; init; } = new(); - - public SugarClassSpec() { } - public SugarClassSpec(string targetClass) { TargetClass = targetClass; } -} diff --git a/Tools/VulkanWrapperGenerator/SugarClassSpec.cs b/Tools/VulkanWrapperGenerator/SugarClassSpec.cs new file mode 100644 index 0000000..78bc9ee --- /dev/null +++ b/Tools/VulkanWrapperGenerator/SugarClassSpec.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; + +/// +/// Declarative "sugar" description for a generated wrapper class. +/// You can provide several specs with the same TargetClass; they will be merged. +/// +public sealed class SugarClassSpec { + public string TargetClass { get; } + public List Includes { get; set; } = new(); // reserved for future use + public List Methods { get; set; } = new(); + + public SugarClassSpec(string targetClass) => TargetClass = targetClass; +} + +/// +/// Declarative description of one sugar method to inject into a wrapper. +/// +public sealed class SugarMethodSpec { + public string Name { get; set; } = ""; // C++ method name + public string ReturnType { get; set; } = "void"; // C++ return type + public List Parameters { get; set; } = new(); // e.g., "int x", "IntrusivePtr buf" + public bool IsStatic { get; set; } = false; + public bool IsConst { get; set; } = false; + public bool IsNoexcept { get; set; } = false; + + // Body lines with placeholders: + // ${handle} -> _handle + // ${vk} -> vk + // ${owner0.handle} -> first primary owner handle, etc. + // For IntrusivePtr params: ${param.handle} + // For vector> params: ${param.handles}, ${param.size}/${param.count} + public List BodyLines { get; set; } = new(); + + // Optional guard expression (e.g., "defined(VK_KHR_swapchain)") + public string? Guard { get; set; } + + // Require presence of vk* function names and extension names + public List RequiresFunctions { get; set; } = new(); + public List RequiresExtensions { get; set; } = new(); +} diff --git a/Tools/VulkanWrapperGenerator/VkSpec.cs b/Tools/VulkanWrapperGenerator/VkSpec.cs index 368de67..4195760 100644 --- a/Tools/VulkanWrapperGenerator/VkSpec.cs +++ b/Tools/VulkanWrapperGenerator/VkSpec.cs @@ -1,342 +1,473 @@ -using System; +// VkSpec.cs +// Robust vk.xml parser + semantic model for the generator. + +using System; using System.Collections.Generic; +using System.IO; using System.Linq; -using System.Text.RegularExpressions; using System.Xml.Linq; public sealed class VkSpec { - // ---------- Data model ---------- + // ========================== + // Public data model + // ========================== - public sealed record Handle(string Name, bool Dispatchable); - public sealed record Param(string Raw, string Type, string Name, bool IsPointer, bool IsConst, string? LenAttr, bool IsHandle); - public sealed record Command(string Name, string ReturnType, List Params); - - public sealed record StructMember(string Type, string Name, bool IsPointer, string? LenAttr, bool IsHandle); - public sealed record StructDef(string Name, List Members); - - // Owned pair (created/destroyed or allocated/freed) - public sealed record Pair( - string HandleType, - string CreateOrAllocate, string DestroyOrFree, - string ParentType, - Param OutHandleParam, - List ExtraOwnersForDestroy - ); - - // Simple producer (Get*/Enumerate* with single parent handle and a single out handle param) - public sealed record SimpleProducer( - string HandleType, - string CommandName, - string ParentType, - Param OutHandleParam, - bool IsMany - ); - - public sealed record OwnerUse(string Type, bool IsMany, string SourceStruct, string SourceMember); - - public Dictionary Handles { get; private init; } = new(); - public Dictionary Commands { get; private init; } = new(); - public Dictionary Structs { get; private init; } = new(); - public HashSet Extensions { get; private init; } = new(); - public List Pairs { get; private init; } = new(); - public List Producers { get; private init; } = new(); - - // ---------- Load & parse ---------- - - public static VkSpec Load(string xmlPath) { - var doc = XDocument.Load(xmlPath); - - var handles = ParseHandles(doc); - var structs = ParseStructs(doc, handles); - var (real, aliasElems) = ParseCommandsPre(doc); - var cmds = BuildCommands(real, handles); - ApplyAliases(cmds, aliasElems, handles); - var exts = ParseExtensions(doc); - var pairs = BuildPairs(cmds, handles); - var producers = BuildSimpleProducers(cmds, handles); - - return new VkSpec { - Handles = handles, - Structs = structs, - Commands = cmds, - Extensions = exts, - Pairs = pairs, - Producers = producers - }; + public sealed class Handle { + public string Name = ""; // e.g., "VkBuffer" + public bool IsDispatchable; // VK_DEFINE_HANDLE vs NON_DISPATCHABLE + public string? Parent; // optional vk.xml "parent" attr } - static Dictionary ParseHandles(XDocument doc) { - var dict = new Dictionary(); - var types = doc.Root!.Element("types")!.Elements("type") - .Where(t => (string?)t.Attribute("category") == "handle"); - - foreach (var t in types) { - var name = t.Element("name")?.Value; - if (string.IsNullOrEmpty(name)) { - var txt = (t.Value ?? ""); - var m = Regex.Match(txt, @"VK_DEFINE_(?:NON_)?DISPATCHABLE_HANDLE\((Vk\w+)\)"); - if (m.Success) name = m.Groups[1].Value; - } - if (string.IsNullOrEmpty(name)) continue; - - var body = t.Value ?? string.Empty; - bool dispatchable = - body.Contains("VK_DEFINE_HANDLE(") || - body.Contains("VK_DEFINE_DISPATCHABLE_HANDLE("); - dict[name!] = new Handle(name!, dispatchable); - } - return dict; + public sealed class Param { + public string Name = ""; // e.g., "pCreateInfo" + public string Type = ""; // e.g., "VkBufferCreateInfo" + public bool IsPointer; // '*' in declaration + public bool IsConst; // "const " + public string? LenAttr; // len="..." + public bool IsHandle; // Type is a known handle } - static Dictionary ParseStructs(XDocument doc, Dictionary handles) { - var dict = new Dictionary(); - var xs = doc.Root!.Element("types")!.Elements("type") - .Where(t => (string?)t.Attribute("category") == "struct"); - - foreach (var t in xs) { - var name = t.Element("name")?.Value ?? (string?)t.Attribute("name"); - if (string.IsNullOrEmpty(name)) continue; - - var members = new List(); - foreach (var m in t.Elements("member")) { - var type = m.Element("type")?.Value ?? "void"; - var mname = m.Element("name")?.Value ?? ""; - var raw = Regex.Replace(m.Value ?? "", @"\s+", " "); - bool isPtr = raw.Contains("*"); - string? len = (string?)m.Attribute("len"); - bool isHandle = handles.ContainsKey(type); - members.Add(new StructMember(type, mname, isPtr, len, isHandle)); - } - dict[name!] = new StructDef(name!, members); - } - - return dict; + public sealed class Command { + public string Name = ""; // e.g., "vkCreateBuffer" + public string ReturnType = "void"; // e.g., "VkResult" + public List Params = new(); // parameters in order + public HashSet ProtectMacros { get; } = new(StringComparer.Ordinal); // VK_USE_PLATFORM_* + public string? AliasOf; // if this command is alias of another } - static (List real, List aliases) ParseCommandsPre(XDocument doc) { - var all = doc.Root!.Element("commands")!.Elements("command").ToList(); - var real = new List(); - var aliases = new List(); - foreach (var c in all) { - if (c.Attribute("alias") != null) aliases.Add(c); - else if (c.Element("proto") != null) real.Add(c); - } - return (real, aliases); + public sealed class StructMember { + public string Name = ""; + public string Type = ""; + public bool IsPointer; + public bool IsConst; + public string? LenAttr; + public bool IsHandle; + public bool IsStruct; } - static string Cleanup(string s) => Regex.Replace(s.Trim(), @"\s+", " "); - - static Dictionary BuildCommands(List realCmds, Dictionary handles) { - bool IsPointer(string raw) => raw.Contains("*"); - bool IsConst(string raw) => raw.Contains("const "); - - var dict = new Dictionary(); - - foreach (var c in realCmds) { - var proto = c.Element("proto")!; - var name = proto.Element("name")!.Value; - - string retType = string.Concat(proto.Nodes().Select(n => { - if (n is XElement e) return e.Name == "name" ? "" : e.Value; - return ((XText)n).Value; - })); - retType = Cleanup(retType.Replace(name, "")); - - var prms = new List(); - foreach (var p in c.Elements("param")) { - var type = p.Element("type")?.Value ?? "void"; - var pname = p.Element("name")?.Value ?? ""; - var raw = Cleanup(p.Value); - var len = (string?)p.Attribute("len"); - bool isPtr = IsPointer(raw); - bool isConst = IsConst(raw); - bool isHandle = handles.ContainsKey(type); - prms.Add(new Param(raw, type, pname, isPtr, isConst, len, isHandle)); - } - - dict[name] = new Command(name, retType, prms); - } - - return dict; + public sealed class VkStruct { + public string Name = ""; + public List Members = new(); } - static void ApplyAliases(Dictionary dict, List aliases, Dictionary handles) { - foreach (var c in aliases) { - var name = (string?)c.Attribute("name"); - var aliasOf = (string?)c.Attribute("alias"); - if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(aliasOf)) continue; - - if (dict.TryGetValue(aliasOf!, out var baseCmd)) { - var clone = new Command(name!, baseCmd.ReturnType, - baseCmd.Params.Select(p => new Param(p.Raw, p.Type, p.Name, p.IsPointer, p.IsConst, p.LenAttr, p.IsHandle)).ToList()); - dict[name!] = clone; - } - } + public sealed class Extension { + public string Name = ""; + public string? Protect; // VK_USE_PLATFORM_* if present + public string? Platform; // platform="android"/"win32"/... + public string? Supported; // "vulkan", "vulkansc", "disabled", ... + public List RequireCommands = new(); } - static HashSet ParseExtensions(XDocument doc) { - var set = new HashSet(StringComparer.Ordinal); - var exts = doc.Root!.Element("extensions")!.Elements("extension"); - foreach (var e in exts) { - var name = (string?)e.Attribute("name"); - if (!string.IsNullOrWhiteSpace(name)) set.Add(name!); - } - return set; + public sealed class Pair { + public string HandleType = ""; // e.g., "VkBuffer" + public string ParentType = ""; // creation/alloc parent (may be empty for Instance) + public string CreateOrAllocate = ""; // e.g., "vkCreateBuffer" or "vkAllocateCommandBuffers" + public string DestroyOrFree = ""; // e.g., "vkDestroyBuffer" or "vkFreeCommandBuffers" + public Param OutHandleParam = new(); // pBuffer / pCommandBuffers + public List ExtraOwnersForDestroy = new(); } - static List BuildPairs(Dictionary cmds, Dictionary handles) { - var list = new List(); - - // vkCreateX / vkDestroyX - foreach (var create in cmds.Values.Where(x => x.Name.StartsWith("vkCreate"))) { - var obj = create.Name.Substring("vkCreate".Length); - var destroyName = "vkDestroy" + obj; - if (!cmds.TryGetValue(destroyName, out var destroy)) continue; - - var parent = create.Params.First().Type; - var outParam = create.Params.LastOrDefault(p => p.IsPointer && handles.ContainsKey(p.Type)); - if (outParam is null) continue; - - var handleType = outParam.Type; - var extraOwners = destroy.Params - .Where(p => p.IsHandle && p.Type != handleType) - .Select(p => p.Type).Distinct().ToList(); - - list.Add(new Pair(handleType, create.Name, destroyName, parent, outParam, extraOwners)); - } - - // vkAllocateX / vkFreeX - foreach (var alloc in cmds.Values.Where(x => x.Name.StartsWith("vkAllocate"))) { - var obj = alloc.Name.Substring("vkAllocate".Length); - var freeName = "vkFree" + obj; - if (!cmds.TryGetValue(freeName, out var free)) continue; - - var parent = alloc.Params.First().Type; - var outParam = alloc.Params.LastOrDefault(p => p.IsPointer && handles.ContainsKey(p.Type)); - if (outParam is null) continue; - - var handleType = outParam.Type; - var extraOwners = free.Params - .Where(p => p.IsHandle && p.Type != handleType) - .Select(p => p.Type).Distinct().ToList(); - - list.Add(new Pair(handleType, alloc.Name, freeName, parent, outParam, extraOwners)); - } - - return list - .GroupBy(p => p.HandleType) - .Select(g => g.First()) - .ToList(); + public sealed class Producer { + public string CommandName = ""; // e.g., "vkGetDeviceQueue" + public string ParentType = ""; // first param type + public string HandleType = ""; // produced handle type + public Param OutHandleParam = new(); // pQueue / pPhysicalDevices + public bool IsMany; // has len="" } - // Build "simple producers": vkGet*/vkEnumerate* that output a handle with exactly one parent handle argument - static List BuildSimpleProducers(Dictionary cmds, Dictionary handles) { - var list = new List(); - - foreach (var c in cmds.Values) { - if (!(c.Name.StartsWith("vkGet") || c.Name.StartsWith("vkEnumerate"))) - continue; - - // pick first handle output param (pointer to handle) - int outIdx = c.Params.FindIndex(p => p.IsPointer && handles.ContainsKey(p.Type)); - if (outIdx < 0) continue; - var outParam = c.Params[outIdx]; - - // consider handle params BEFORE out param as potential parents - var parents = c.Params.Take(outIdx).Where(p => p.IsHandle).ToList(); - if (parents.Count != 1) continue; // only "simple" case supported: a single parent - - var parent = parents[0].Type; - bool isMany = outParam.LenAttr != null; - - list.Add(new SimpleProducer(outParam.Type, c.Name, parent, outParam, isMany)); - } - - return list; + public sealed class OwnerUse { + public string Type = ""; // handle type to keep + public bool IsMany; // array vs single + public string SourceStruct = ""; + public string SourceMember = ""; } public enum LoadLevel { Global, Instance, Device } - public LoadLevel ClassifyLoadLevel(Command c) { - if (c.Params.Count == 0) return LoadLevel.Global; - var first = c.Params[0].Type; - if (first == "VkInstance" || first == "VkPhysicalDevice") return LoadLevel.Instance; - if (first == "VkDevice" || first == "VkQueue" || first == "VkCommandBuffer") return LoadLevel.Device; - return LoadLevel.Global; + + public Dictionary Handles { get; } = new(StringComparer.Ordinal); + public Dictionary Commands { get; } = new(StringComparer.Ordinal); + public Dictionary Structs { get; } = new(StringComparer.Ordinal); + public Dictionary Extensions { get; } = new(StringComparer.Ordinal); + + public List Pairs { get; } = new(); + public List Producers { get; } = new(); + + public Dictionary PlatformGuards { get; } = new(StringComparer.Ordinal); + + public HashSet ReachableCommands { get; } = new(StringComparer.Ordinal); + + // ========================== + // Load + // ========================== + public static VkSpec Load(string vkXmlPath) { + if (!File.Exists(vkXmlPath)) + throw new FileNotFoundException("vk.xml not found", vkXmlPath); + + var xdoc = XDocument.Load(vkXmlPath, + LoadOptions.PreserveWhitespace | LoadOptions.SetBaseUri | LoadOptions.SetLineInfo); + + var spec = new VkSpec(); + var registry = xdoc.Root ?? throw new InvalidDataException("Malformed vk.xml: missing "); + + spec.ParseTypes(registry); + spec.ParseCommands(registry); + spec.ParsePlatforms(registry); + spec.ParseExtensions(registry); + spec.ParseFeatures(registry, "vulkan"); + spec.ComputeReachableCommands("vulkan"); + spec.BuildPairsAndProducers(); + + return spec; } - // ---------- Deterministic keep filter ---------- - public static class LifetimeFilter { - // Explicit "do not keep" cases (semantically not required after creation) - private static readonly HashSet<(string st, string mem, string ht)> Exact = new() - { - ("VkPipelineShaderStageCreateInfo", "module", "VkShaderModule"), - ("VkFramebufferCreateInfo", "renderPass", "VkRenderPass"), - ("VkGraphicsPipelineCreateInfo", "renderPass", "VkRenderPass"), - ("VkSwapchainCreateInfoKHR", "oldSwapchain", "VkSwapchainKHR"), - }; + // -------------------------- + // + // -------------------------- + void ParseTypes(XElement registry) { + var types = registry.Element("types") ?? throw new InvalidDataException(" missing"); - private static readonly string[] NameHints = { "old", "scratch", "staging" }; + foreach (var t in types.Elements("type")) { + var category = (string?)t.Attribute("category") ?? ""; - public static bool ShouldKeep(string structName, string memberName, string handleType) { - if (Exact.Contains((structName, memberName, handleType))) - return false; + if (category == "handle") { + var name = (string?)t.Element("name") ?? (string?)t.Attribute("name") ?? ""; + if (string.IsNullOrWhiteSpace(name)) continue; - var mn = memberName.ToLowerInvariant(); - if (NameHints.Any(h => mn.Contains(h))) - return false; + string inner = string.Concat(t.Nodes().OfType().Select(n => n.Value)); + bool isDispatchable = inner.Contains("VK_DEFINE_HANDLE", StringComparison.Ordinal); - // Immutable samplers ARE kept - return true; - } - } + Handles[name] = new Handle { + Name = name, + IsDispatchable = isDispatchable, + Parent = (string?)t.Attribute("parent") + }; + } else if (category == "struct") { + var name = (string?)t.Attribute("name") ?? ""; + if (string.IsNullOrWhiteSpace(name)) continue; - // Traverse CreateInfo/AllocateInfo trees and collect keep-alive owners - public List AnalyzeCreateInfoOwners(Command create, string handleType) { - var owners = new Dictionary<(string Type, string Struct, string Member), OwnerUse>(); + var s = new VkStruct { Name = name }; + foreach (var mem in t.Elements("member")) { + var m = new StructMember { + Name = (string?)mem.Element("name") ?? "", + Type = (string?)mem.Element("type") ?? "" + }; + m.IsHandle = Handles.ContainsKey(m.Type); - void Mark(string t, bool many, string srcStruct, string srcMember) { - if (t == handleType) return; // do not keep self - if (!LifetimeFilter.ShouldKeep(srcStruct, srcMember, t)) return; - - var key = (t, srcStruct, srcMember); - if (owners.TryGetValue(key, out var ex)) - owners[key] = new OwnerUse(t, ex.IsMany || many, srcStruct, srcMember); - else - owners[key] = new OwnerUse(t, many, srcStruct, srcMember); - } - - var stack = new Stack<(string type, bool many)>(); - - foreach (var p in create.Params.Where(p => p.Name.Contains("CreateInfo") || p.Name.Contains("AllocateInfo"))) { - if (Structs.ContainsKey(p.Type)) - stack.Push((p.Type, p.IsPointer && p.LenAttr != null)); - } - - var visited = new HashSet(); - while (stack.Count > 0) { - var (stype, parentMany) = stack.Pop(); - if (!visited.Add(stype)) { /* ok */ } - - if (!Structs.TryGetValue(stype, out var s)) continue; - foreach (var m in s.Members) { - bool manyHere = parentMany || (m.IsPointer && m.LenAttr != null); - - if (Handles.ContainsKey(m.Type)) { - Mark(m.Type, manyHere, stype, m.Name); - } else if (Structs.ContainsKey(m.Type)) { - stack.Push((m.Type, manyHere)); + string decl = GetNodeText(mem); + m.IsPointer = decl.Contains("*"); + m.IsConst = decl.Contains("const "); + m.LenAttr = (string?)mem.Attribute("len"); + m.IsStruct = (!m.IsHandle && Structs.ContainsKey(m.Type)); + s.Members.Add(m); } + Structs[name] = s; } } - return owners.Values - .GroupBy(o => o.Type) - .Select(g => new OwnerUse( - g.Key, - g.Any(x => x.IsMany), - g.First().SourceStruct, - g.First().SourceMember - )) - .ToList(); + // second pass mark struct-refs + foreach (var s in Structs.Values) + foreach (var m in s.Members) + if (!m.IsHandle && Structs.ContainsKey(m.Type)) + m.IsStruct = true; + } + + // -------------------------- + // + // -------------------------- + void ParseCommands(XElement registry) { + var commands = registry.Element("commands") ?? throw new InvalidDataException(" missing"); + var aliasToTarget = new List<(string alias, string target)>(); + + foreach (var ce in commands.Elements("command")) { + var aliasAttr = (string?)ce.Attribute("alias"); + var nameAttr = (string?)ce.Attribute("name"); + if (!string.IsNullOrEmpty(aliasAttr) && !string.IsNullOrEmpty(nameAttr)) { + Commands[nameAttr] = new Command { Name = nameAttr, AliasOf = aliasAttr }; + aliasToTarget.Add((nameAttr, aliasAttr)); + continue; + } + + var proto = ce.Element("proto"); + if (proto == null) continue; + + var cmdName = (string?)proto.Element("name") ?? ""; + if (string.IsNullOrWhiteSpace(cmdName)) continue; + + var retType = (string?)proto.Element("type") ?? "void"; + var c = new Command { Name = cmdName, ReturnType = retType }; + + foreach (var pe in ce.Elements("param")) { + var p = new Param { + Name = (string?)pe.Element("name") ?? "", + Type = (string?)pe.Element("type") ?? "" + }; + p.IsHandle = Handles.ContainsKey(p.Type); + + string decl = GetNodeText(pe); + p.IsPointer = decl.Contains("*"); + p.IsConst = decl.Contains("const "); + p.LenAttr = (string?)pe.Attribute("len"); + + c.Params.Add(p); + } + + Commands[cmdName] = c; + } + + // resolve aliases + foreach (var (alias, target) in aliasToTarget) { + if (!Commands.TryGetValue(alias, out var a) || !Commands.TryGetValue(target, out var t)) continue; + a.ReturnType = t.ReturnType; + a.Params = t.Params.Select(pp => new Param { + Name = pp.Name, + Type = pp.Type, + IsConst = pp.IsConst, + IsPointer = pp.IsPointer, + LenAttr = pp.LenAttr, + IsHandle = pp.IsHandle + }).ToList(); + a.ProtectMacros.UnionWith(t.ProtectMacros); + } + } + + // -------------------------- + // + // -------------------------- + void ParsePlatforms(XElement registry) { + var plats = registry.Element("platforms"); + if (plats == null) return; + + foreach (var p in plats.Elements("platform")) { + var name = (string?)p.Attribute("name"); + var protect = (string?)p.Attribute("protect"); + if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(protect)) continue; + PlatformGuards[name] = protect; // android -> VK_USE_PLATFORM_ANDROID_KHR + } + } + + // -------------------------- + // + // -------------------------- + void ParseExtensions(XElement registry) { + var exts = registry.Element("extensions"); + if (exts == null) return; + + foreach (var xe in exts.Elements("extension")) { + var ext = new Extension { + Name = (string?)xe.Attribute("name") ?? "", + Protect = (string?)xe.Attribute("protect"), + Platform = (string?)xe.Attribute("platform"), + Supported = (string?)xe.Attribute("supported") + }; + if (string.IsNullOrWhiteSpace(ext.Name)) continue; + + // If protect isn't set but platform is known, resolve guard + if (ext.Protect == null && ext.Platform != null && + PlatformGuards.TryGetValue(ext.Platform, out var guardMacro)) + ext.Protect = guardMacro; + + foreach (var req in xe.Elements("require")) { + foreach (var cmd in req.Elements("command")) { + var cmdName = (string?)cmd.Attribute("name") ?? ""; + if (string.IsNullOrWhiteSpace(cmdName)) continue; + ext.RequireCommands.Add(cmdName); + + if (ext.Protect != null && Commands.TryGetValue(cmdName, out var c)) + c.ProtectMacros.Add(ext.Protect); + } + } + + Extensions[ext.Name] = ext; + } + } + + // -------------------------- + // + // -------------------------- + void ParseFeatures(XElement registry, string apiFilter) { + foreach (var feat in registry.Elements("feature")) { + var api = (string?)feat.Attribute("api") ?? "vulkan"; + if (!api.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries) + .Contains(apiFilter, StringComparer.Ordinal)) + continue; + + foreach (var req in feat.Elements("require")) + foreach (var cmd in req.Elements("command")) { + var name = (string?)cmd.Attribute("name"); + if (!string.IsNullOrWhiteSpace(name)) ReachableCommands.Add(name!); + } + } + } + + // -------------------------- + // Compute enabled commands (core + enabled extensions) + // -------------------------- + void ComputeReachableCommands(string apiFilter) { + foreach (var ext in Extensions.Values) { + var supported = (ext.Supported ?? "vulkan") + .Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + + bool ok = supported.Contains(apiFilter, StringComparer.Ordinal) + && !supported.Contains("disabled", StringComparer.Ordinal); + if (!ok) continue; + + foreach (var cmd in ext.RequireCommands) + ReachableCommands.Add(cmd); + } + + // Alias coherence + foreach (var c in Commands.Values) + if (c.AliasOf != null && ReachableCommands.Contains(c.AliasOf)) + ReachableCommands.Add(c.Name); + } + + // -------------------------- + // Pairs + Producers + // -------------------------- + void BuildPairsAndProducers() { + // Create/Allocate + foreach (var c in Commands.Values) { + if (!ReachableCommands.Contains(c.Name)) continue; + + bool isCreate = c.Name.StartsWith("vkCreate", StringComparison.Ordinal); + bool isAlloc = c.Name.StartsWith("vkAllocate", StringComparison.Ordinal); + if (!isCreate && !isAlloc) continue; + + var outHandle = c.Params.FirstOrDefault(p => p.IsPointer && p.IsHandle); + if (outHandle == null) continue; + + var handleType = outHandle.Type; + if (!Handles.ContainsKey(handleType)) continue; + + string parentType = ""; + if (c.Params.Count > 0 && Handles.ContainsKey(c.Params[0].Type)) + parentType = c.Params[0].Type; + + var destroy = FindDestroyOrFreeFor(handleType); + + var extraOwners = new List(); + if (destroy != null) { + foreach (var p in destroy.Params) { + if (!p.IsHandle) continue; + if (p.Type == handleType) continue; + if (parentType != "" && p.Type == parentType) continue; + if (!extraOwners.Contains(p.Type)) extraOwners.Add(p.Type); + } + } + + Pairs.Add(new Pair { + HandleType = handleType, + ParentType = parentType, + CreateOrAllocate = c.Name, + DestroyOrFree = destroy?.Name ?? "", + OutHandleParam = outHandle, + ExtraOwnersForDestroy = extraOwners + }); + } + + // Producers + foreach (var c in Commands.Values) { + if (!ReachableCommands.Contains(c.Name)) continue; + bool isProducerName = c.Name.StartsWith("vkGet", StringComparison.Ordinal) || + c.Name.StartsWith("vkEnumerate", StringComparison.Ordinal); + if (!isProducerName) continue; + + if (c.Params.Count == 0) continue; + var parent = c.Params[0]; + if (!Handles.ContainsKey(parent.Type)) continue; + + var outHandle = c.Params.FirstOrDefault(p => p.IsPointer && Handles.ContainsKey(p.Type)); + if (outHandle == null) continue; + + Producers.Add(new Producer { + CommandName = c.Name, + ParentType = parent.Type, + HandleType = outHandle.Type, + OutHandleParam = outHandle, + IsMany = !string.IsNullOrEmpty(outHandle.LenAttr) + }); + } + } + + Command? FindDestroyOrFreeFor(string handleType) { + foreach (var c in Commands.Values) { + if (!(c.Name.Contains("vkDestroy", StringComparison.Ordinal) || + c.Name.Contains("vkFree", StringComparison.Ordinal))) + continue; + + if (!c.Params.Any(p => p.Type == handleType)) continue; + if (c.Params.Count == 0 || !Handles.ContainsKey(c.Params[0].Type)) continue; + if (!ReachableCommands.Contains(c.Name)) continue; + + return c; + } + return null; + } + + // -------------------------- + // Semantics for generator + // -------------------------- + public LoadLevel ClassifyLoadLevel(Command c) { + if (c.Params.Count == 0) return LoadLevel.Global; + + var firstType = c.Params[0].Type; + if (!Handles.TryGetValue(firstType, out var hFirst) || !hFirst.IsDispatchable) + return LoadLevel.Global; + + if (firstType == "VkInstance" || firstType == "VkPhysicalDevice") + return LoadLevel.Instance; + + return LoadLevel.Device; + } + + public IEnumerable AnalyzeCreateInfoOwners(Command createOrAlloc, string handleType) { + var infoParam = createOrAlloc.Params.FirstOrDefault(p => + p.Type.EndsWith("CreateInfo", StringComparison.Ordinal) || + p.Type.EndsWith("AllocateInfo", StringComparison.Ordinal)); + if (infoParam == null) return Enumerable.Empty(); + + if (!Structs.TryGetValue(infoParam.Type, out var infoStruct)) + return Enumerable.Empty(); + + var results = new List(); + var visited = new HashSet(StringComparer.Ordinal); + + void Recurse(string structName, bool arrayCtx) { + if (!Structs.TryGetValue(structName, out var s)) return; + if (!visited.Add(structName)) return; + + foreach (var m in s.Members) { + if (m.IsHandle) { + if (m.Type != handleType) { + bool isMany = arrayCtx || m.IsPointer || !string.IsNullOrEmpty(m.LenAttr); + results.Add(new OwnerUse { + Type = m.Type, + IsMany = isMany, + SourceStruct = structName, + SourceMember = isMany ? m.Name + "[]" : m.Name + }); + } + } else if (m.IsStruct) { + bool childArr = arrayCtx || m.IsPointer || !string.IsNullOrEmpty(m.LenAttr); + Recurse(m.Type, childArr); + } + } + + visited.Remove(structName); + } + + Recurse(infoStruct.Name, false); + + return results + .GroupBy(r => (r.Type, r.IsMany, r.SourceStruct, r.SourceMember)) + .Select(g => g.First()); + } + + static string GetNodeText(XElement e) { + return string.Concat(e.Nodes().Select(n => n switch { + XText t => t.Value, + XElement x => x.Value, + _ => "" + })); } }