From c65f60cff3a5b08997e2fadafb935f003c86d69b Mon Sep 17 00:00:00 2001 From: past-due <30942300+past-due@users.noreply.github.com> Date: Thu, 7 Nov 2024 11:03:59 -0500 Subject: [PATCH] [Vulkan] Fix compatibility with VK_HEADER_VERSION >= 301 --- lib/ivis_opengl/3rdparty/vkh_info.cpp | 8 ++--- lib/ivis_opengl/3rdparty/vkh_info.hpp | 13 +++++--- lib/ivis_opengl/gfx_api_vk.cpp | 48 +++++++++++++-------------- lib/ivis_opengl/gfx_api_vk.h | 43 +++++++++++++----------- 4 files changed, 61 insertions(+), 51 deletions(-) diff --git a/lib/ivis_opengl/3rdparty/vkh_info.cpp b/lib/ivis_opengl/3rdparty/vkh_info.cpp index 46aa8c47fa7..68ba5904775 100644 --- a/lib/ivis_opengl/3rdparty/vkh_info.cpp +++ b/lib/ivis_opengl/3rdparty/vkh_info.cpp @@ -1,8 +1,8 @@ // // VkhInfo -// Version: 1.3.2 +// Version: 1.3.3 // -// Copyright (c) 2019-2021 past-due +// Copyright (c) 2019-2024 past-due // // https://github.com/past-due/vulkan-helpers // @@ -180,7 +180,7 @@ void VkhInfo::Output_InstanceLayerProperties(PFN_vkGetInstanceProcAddr _vkGetIns } } -void VkhInfo::Output_SurfaceInformation(const vk::PhysicalDevice& physicalDevice, const vk::SurfaceKHR& surface, const vk::DispatchLoaderDynamic& vkDynLoader) +void VkhInfo::Output_SurfaceInformation(const vk::PhysicalDevice& physicalDevice, const vk::SurfaceKHR& surface, const VkhInfo::DispatchLoaderDynamic& vkDynLoader) { std::stringstream buf; @@ -237,7 +237,7 @@ void VkhInfo::Output_SurfaceInformation(const vk::PhysicalDevice& physicalDevice } // If `getProperties2` is true, the instance `inst` *must* have been created with the "VK_KHR_get_physical_device_properties2" extension enabled -void VkhInfo::Output_PhysicalDevices(const vk::Instance& inst, const vk::ApplicationInfo& appInfo, std::vector instanceExtensions, const vk::DispatchLoaderDynamic& vkDynLoader) +void VkhInfo::Output_PhysicalDevices(const vk::Instance& inst, const vk::ApplicationInfo& appInfo, std::vector instanceExtensions, const VkhInfo::DispatchLoaderDynamic& vkDynLoader) { std::stringstream buf; diff --git a/lib/ivis_opengl/3rdparty/vkh_info.hpp b/lib/ivis_opengl/3rdparty/vkh_info.hpp index 367af7a783b..31a0772a218 100644 --- a/lib/ivis_opengl/3rdparty/vkh_info.hpp +++ b/lib/ivis_opengl/3rdparty/vkh_info.hpp @@ -1,8 +1,8 @@ // // VkhInfo -// Version: 1.3.2 +// Version: 1.3.3 // -// Copyright (c) 2019-2021 past-due +// Copyright (c) 2019-2024 past-due // // https://github.com/past-due/vulkan-helpers // @@ -47,6 +47,11 @@ class VkhInfo { public: typedef std::function outputHandlerFuncType; +#if VK_HEADER_VERSION >= 301 + using DispatchLoaderDynamic = vk::detail::DispatchLoaderDynamic; +#else + using DispatchLoaderDynamic = vk::DispatchLoaderDynamic; +#endif VkhInfo() {} VkhInfo(const outputHandlerFuncType& outputHandler); @@ -58,10 +63,10 @@ class VkhInfo void Output_GlobalInstanceExtensions(PFN_vkGetInstanceProcAddr _vkGetInstanceProcAddr); void Output_InstanceLayerProperties(PFN_vkGetInstanceProcAddr _vkGetInstanceProcAddr); - void Output_SurfaceInformation(const vk::PhysicalDevice& physicalDevice, const vk::SurfaceKHR& surface, const vk::DispatchLoaderDynamic& vkDynLoader); + void Output_SurfaceInformation(const vk::PhysicalDevice& physicalDevice, const vk::SurfaceKHR& surface, const VkhInfo::DispatchLoaderDynamic& vkDynLoader); // If `getProperties2` is true, the instance `inst` *must* have been created with the "VK_KHR_get_physical_device_properties2" extension enabled - void Output_PhysicalDevices(const vk::Instance& inst, const vk::ApplicationInfo& appInfo, std::vector instanceExtensions, const vk::DispatchLoaderDynamic& vkDynLoader); + void Output_PhysicalDevices(const vk::Instance& inst, const vk::ApplicationInfo& appInfo, std::vector instanceExtensions, const VkhInfo::DispatchLoaderDynamic& vkDynLoader); public: diff --git a/lib/ivis_opengl/gfx_api_vk.cpp b/lib/ivis_opengl/gfx_api_vk.cpp index 3b713d3480a..eac41b56ee7 100644 --- a/lib/ivis_opengl/gfx_api_vk.cpp +++ b/lib/ivis_opengl/gfx_api_vk.cpp @@ -24,7 +24,7 @@ // To maintain compatibility with as many systems as possible: // 1.) Ensure Vulkan 1.0 compatibility // 2.) Avoid *requiring* anything outside of the scope of the "Vulkan Portable Subset" -// 3.) All calls to Vulkan APIs should use dynamic dispatch (see the uses of vk::DispatchLoaderDynamic in this file) +// 3.) All calls to Vulkan APIs should use dynamic dispatch (see the uses of WZ_vk::DispatchLoaderDynamic in this file) // 4.) Test with the Vulkan validation layers enabled (run WZ with --gfxdebug) // // #2 means the following things are currently best avoided: @@ -258,7 +258,7 @@ static uint32_t findProperties(const vk::PhysicalDeviceMemoryProperties& memprop abort(); } -bool checkFormatSupport(const vk::PhysicalDevice& physicalDevice, vk::Format format, vk::ImageTiling tiling, vk::FormatFeatureFlags features, const vk::DispatchLoaderDynamic& vkDynLoader) +bool checkFormatSupport(const vk::PhysicalDevice& physicalDevice, vk::Format format, vk::ImageTiling tiling, vk::FormatFeatureFlags features, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { vk::FormatProperties props; physicalDevice.getFormatProperties(format, &props, vkDynLoader); @@ -274,7 +274,7 @@ bool checkFormatSupport(const vk::PhysicalDevice& physicalDevice, vk::Format for return false; } -vk::Format findSupportedFormat(const vk::PhysicalDevice& physicalDevice, const std::vector& candidates, vk::ImageTiling tiling, vk::FormatFeatureFlags features, const vk::DispatchLoaderDynamic& vkDynLoader) { +vk::Format findSupportedFormat(const vk::PhysicalDevice& physicalDevice, const std::vector& candidates, vk::ImageTiling tiling, vk::FormatFeatureFlags features, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { for (vk::Format format : candidates) { if (checkFormatSupport(physicalDevice, format, tiling, features, vkDynLoader)) @@ -286,7 +286,7 @@ vk::Format findSupportedFormat(const vk::PhysicalDevice& physicalDevice, const s throw std::runtime_error("failed to find supported format!"); } -QueueFamilyIndices findQueueFamilies(const vk::PhysicalDevice &device, const vk::SurfaceKHR &surface, const vk::DispatchLoaderDynamic &vkDynLoader) +QueueFamilyIndices findQueueFamilies(const vk::PhysicalDevice &device, const vk::SurfaceKHR &surface, const WZ_vk::DispatchLoaderDynamic &vkDynLoader) { QueueFamilyIndices indices; @@ -327,7 +327,7 @@ QueueFamilyIndices findQueueFamilies(const vk::PhysicalDevice &device, const vk: return indices; } -SwapChainSupportDetails querySwapChainSupport(const vk::PhysicalDevice &device, const vk::SurfaceKHR &surface, const vk::DispatchLoaderDynamic &vkDynLoader) +SwapChainSupportDetails querySwapChainSupport(const vk::PhysicalDevice &device, const vk::SurfaceKHR &surface, const WZ_vk::DispatchLoaderDynamic &vkDynLoader) { SwapChainSupportDetails details; @@ -338,7 +338,7 @@ SwapChainSupportDetails querySwapChainSupport(const vk::PhysicalDevice &device, return details; } -std::vector findSupportedDeviceExtensions(const vk::PhysicalDevice &device, const std::vector &desiredExtensions, const vk::DispatchLoaderDynamic &vkDynLoader) +std::vector findSupportedDeviceExtensions(const vk::PhysicalDevice &device, const std::vector &desiredExtensions, const WZ_vk::DispatchLoaderDynamic &vkDynLoader) { const auto availableExtensions = device.enumerateDeviceExtensionProperties(nullptr, vkDynLoader); // TODO: handle thrown error? std::unordered_set supportedExtensionNames; @@ -363,7 +363,7 @@ std::vector findSupportedDeviceExtensions(const vk::PhysicalDevice return foundExtensions; } -bool checkDeviceExtensionSupport(const vk::PhysicalDevice &device, const std::vector &desiredExtensions, const vk::DispatchLoaderDynamic &vkDynLoader) +bool checkDeviceExtensionSupport(const vk::PhysicalDevice &device, const std::vector &desiredExtensions, const WZ_vk::DispatchLoaderDynamic &vkDynLoader) { try { const auto availableExtensions = device.enumerateDeviceExtensionProperties(nullptr, vkDynLoader); @@ -449,7 +449,7 @@ vk::SampleCountFlagBits getMaxUsableSampleCount(const vk::PhysicalDeviceProperti return vk::SampleCountFlagBits::e1; } -vk::Format findDepthStencilFormat(const vk::PhysicalDevice& physicalDevice, const vk::DispatchLoaderDynamic& vkDynLoader) +vk::Format findDepthStencilFormat(const vk::PhysicalDevice& physicalDevice, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { return findSupportedFormat( physicalDevice, @@ -460,7 +460,7 @@ vk::Format findDepthStencilFormat(const vk::PhysicalDevice& physicalDevice, cons ); } -vk::Format findDepthBufferFormat(const vk::PhysicalDevice& physicalDevice, const vk::DispatchLoaderDynamic& vkDynLoader) +vk::Format findDepthBufferFormat(const vk::PhysicalDevice& physicalDevice, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { std::vector depthFormats = { vk::Format::eD32SfloatS8Uint, vk::Format::eD32Sfloat, vk::Format::eD24UnormS8Uint }; return findSupportedFormat( @@ -472,7 +472,7 @@ vk::Format findDepthBufferFormat(const vk::PhysicalDevice& physicalDevice, const ); } -vk::Format findSceneColorBufferFormat(const vk::PhysicalDevice& physicalDevice, const vk::DispatchLoaderDynamic& vkDynLoader) +vk::Format findSceneColorBufferFormat(const vk::PhysicalDevice& physicalDevice, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { std::vector sceneColorFormats = { vk::Format::eA2B10G10R10UnormPack32, vk::Format::eR8G8B8A8Unorm }; return findSupportedFormat( @@ -750,7 +750,7 @@ void BlockBufferAllocator::clean() constexpr uint32_t descriptorPoolMaxSetsDefault = 10000; constexpr uint32_t descriptorPoolSizeDescriptorCountDefault = 10000; -perFrameResources_t::perFrameResources_t(vk::Device& _dev, const VmaAllocator& allocator, const uint32_t& graphicsQueueFamilyIndex, const vk::DispatchLoaderDynamic& vkDynLoader) +perFrameResources_t::perFrameResources_t(vk::Device& _dev, const VmaAllocator& allocator, const uint32_t& graphicsQueueFamilyIndex, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) : dev(_dev) , allocator(allocator) , stagingBufferAllocator(allocator, 1024 * 1024, vk::BufferUsageFlagBits::eTransferSrc, VMA_MEMORY_USAGE_CPU_ONLY) @@ -939,7 +939,7 @@ perFrameResources_t::~perFrameResources_t() clean(); } -void perFrameResources_t::DescriptorPoolsContainer::reset(vk::Device dev, const vk::DispatchLoaderDynamic& vkDynLoader) +void perFrameResources_t::DescriptorPoolsContainer::reset(vk::Device dev, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { for (auto& descriptorPool : pools) { @@ -973,7 +973,7 @@ bool buffering_mechanism::isInitialized() return !perFrameResources.empty(); } -perSwapchainImageResources_t::perSwapchainImageResources_t(vk::Device& _dev, const vk::DispatchLoaderDynamic& vkDynLoader) +perSwapchainImageResources_t::perSwapchainImageResources_t(vk::Device& _dev, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) : dev(_dev) , pVkDynLoader(&vkDynLoader) { @@ -989,7 +989,7 @@ perSwapchainImageResources_t::~perSwapchainImageResources_t() // MARK: buffering_mechanism -void buffering_mechanism::init(vk::Device dev, const VmaAllocator& allocator, size_t swapChainImageCount, const uint32_t& graphicsQueueFamilyIndex, const vk::DispatchLoaderDynamic& vkDynLoader) +void buffering_mechanism::init(vk::Device dev, const VmaAllocator& allocator, size_t swapChainImageCount, const uint32_t& graphicsQueueFamilyIndex, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { currentFrame = 0; currentSwapchainImageResourcesFrame = 0; @@ -1014,7 +1014,7 @@ size_t buffering_mechanism::numFrames() return perFrameResources.size(); } -void buffering_mechanism::destroy(vk::Device dev, const vk::DispatchLoaderDynamic& vkDynLoader) +void buffering_mechanism::destroy(vk::Device dev, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { perFrameResources.clear(); perSwapchainImageResources.clear(); @@ -1022,7 +1022,7 @@ void buffering_mechanism::destroy(vk::Device dev, const vk::DispatchLoaderDynami currentSwapchainImageResourcesFrame = 0; } -void buffering_mechanism::swap(vk::Device dev, const vk::DispatchLoaderDynamic& vkDynLoader, bool skipAcquireNewSwapchainImage) +void buffering_mechanism::swap(vk::Device dev, const WZ_vk::DispatchLoaderDynamic& vkDynLoader, bool skipAcquireNewSwapchainImage) { currentFrame = (currentFrame < (perFrameResources.size() - 1)) ? currentFrame + 1 : 0; if (!skipAcquireNewSwapchainImage) @@ -1209,7 +1209,7 @@ std::vector VkPSO::readShaderBuf(const std::string& name) return buffer; } -vk::ShaderModule VkPSO::get_module(const std::string& name, const vk::DispatchLoaderDynamic& vkDynLoader) +vk::ShaderModule VkPSO::get_module(const std::string& name, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { const auto tmp = readShaderBuf(name); ASSERT_OR_RETURN(vk::ShaderModule(), tmp.size() > 0, "Failed to read shader: %s", name.c_str()); @@ -1627,7 +1627,7 @@ VkPSO::VkPSO(vk::Device _dev, vk::RenderPass rp, const std::shared_ptr& renderpass_compat, vk::SampleCountFlagBits rasterizationSamples, - const vk::DispatchLoaderDynamic& _vkDynLoader, + const WZ_vk::DispatchLoaderDynamic& _vkDynLoader, const VkRoot& _root ) : dev(_dev), pVkDynLoader(&_vkDynLoader), renderpass_compat(renderpass_compat), root(&_root) { @@ -2147,7 +2147,7 @@ VkDepthMapImage::~VkDepthMapImage() } } -void VkDepthMapImage::destroy(vk::Device _dev, const VmaAllocator& allocator, const vk::DispatchLoaderDynamic& vkDynLoader) +void VkDepthMapImage::destroy(vk::Device _dev, const VmaAllocator& allocator, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { if (buffering_mechanism::isInitialized()) { @@ -2372,7 +2372,7 @@ VkRenderedImage::~VkRenderedImage() } } -void VkRenderedImage::destroy(vk::Device _dev, const VmaAllocator& allocator, const vk::DispatchLoaderDynamic& vkDynLoader) +void VkRenderedImage::destroy(vk::Device _dev, const VmaAllocator& allocator, const WZ_vk::DispatchLoaderDynamic& vkDynLoader) { if (buffering_mechanism::isInitialized()) { @@ -2664,7 +2664,7 @@ static bool createGPUImageAndViewInternal(const vk::PhysicalDevice& physicalDevi const vk::Extent2D& extent, vk::SampleCountFlagBits msaaSamples, vk::Format imageFormat, const vk::ImageUsageFlags imageUsageFlags, const vk::ImageAspectFlags& subresourceAspectFlags, vk::Image& outputImage, vk::DeviceMemory& outputMemory, vk::ImageView& outputView, - const vk::DispatchLoaderDynamic& vkDynLoader, const char *loggingKey) + const WZ_vk::DispatchLoaderDynamic& vkDynLoader, const char *loggingKey) { if (loggingKey == nullptr) { @@ -2746,7 +2746,7 @@ static bool createGPUImageAndViewInternal(const vk::PhysicalDevice& physicalDevi static bool createColorAttachmentImage(const vk::PhysicalDevice& physicalDevice, const vk::PhysicalDeviceMemoryProperties& memprops, const vk::Device& dev, const vk::Extent2D& swapchainSize, vk::SampleCountFlagBits msaaSamples, vk::Format colorFormat, vk::Image& colorImage, vk::DeviceMemory& colorImageMemory, vk::ImageView& colorImageView, - const vk::DispatchLoaderDynamic& vkDynLoader, const char *loggingKey = "colorImage") + const WZ_vk::DispatchLoaderDynamic& vkDynLoader, const char *loggingKey = "colorImage") { return createGPUImageAndViewInternal(physicalDevice, memprops, dev, swapchainSize, msaaSamples, colorFormat, @@ -2759,7 +2759,7 @@ static bool createColorAttachmentImage(const vk::PhysicalDevice& physicalDevice, static bool createDepthStencilImage(const vk::PhysicalDevice& physicalDevice, const vk::PhysicalDeviceMemoryProperties& memprops, const vk::Device& dev, const vk::Extent2D& swapchainSize, vk::SampleCountFlagBits msaaSamples, vk::Format depthFormat, vk::Image& depthStencilImage, vk::DeviceMemory& depthStencilMemory, vk::ImageView& depthStencilView, - const vk::DispatchLoaderDynamic& vkDynLoader, const char *loggingKey = "depthStencilImage") + const WZ_vk::DispatchLoaderDynamic& vkDynLoader, const char *loggingKey = "depthStencilImage") { return createGPUImageAndViewInternal(physicalDevice, memprops, dev, swapchainSize, msaaSamples, depthFormat, @@ -3510,7 +3510,7 @@ bool VkRoot::createVulkanInstance(uint32_t apiVersion, const std::vector; - using UniqueDeviceMemory = vk::UniqueHandle; - using UniqueImage = vk::UniqueHandle; - using UniqueImageView = vk::UniqueHandle; - using UniqueSemaphore = vk::UniqueHandle; +#if VK_HEADER_VERSION >= 301 + using DispatchLoaderDynamic = vk::detail::DispatchLoaderDynamic; +#else + using DispatchLoaderDynamic = vk::DispatchLoaderDynamic; +#endif + using UniqueBuffer = vk::UniqueHandle; + using UniqueDeviceMemory = vk::UniqueHandle; + using UniqueImage = vk::UniqueHandle; + using UniqueImageView = vk::UniqueHandle; + using UniqueSemaphore = vk::UniqueHandle; } inline void hash_combine(std::size_t& seed) { } @@ -222,7 +227,7 @@ struct perFrameResources_t { pools.push_back(pool); } - void reset(vk::Device dev, const vk::DispatchLoaderDynamic& vkDynLoader); + void reset(vk::Device dev, const WZ_vk::DispatchLoaderDynamic& vkDynLoader); inline DescriptorPoolDetails& current() { return pools.at(currPool); } bool nextPool() { if (!pools.empty() && (currPool < (pools.size() - 1))) { ++currPool; return true; } else { return false; } } public: @@ -252,7 +257,7 @@ struct perFrameResources_t perFrameResources_t( const perFrameResources_t& other ) = delete; // non construction-copyable perFrameResources_t& operator=( const perFrameResources_t& ) = delete; // non copyable - perFrameResources_t(vk::Device& _dev, const VmaAllocator& allocator, const uint32_t& graphicsQueueIndex, const vk::DispatchLoaderDynamic& vkDynLoader); + perFrameResources_t(vk::Device& _dev, const VmaAllocator& allocator, const uint32_t& graphicsQueueIndex, const WZ_vk::DispatchLoaderDynamic& vkDynLoader); ~perFrameResources_t(); public: @@ -295,7 +300,7 @@ struct perFrameResources_t DescriptorPoolDetails createNewDescriptorPool(vk::DescriptorType type, uint32_t maxSets, uint32_t descriptorCount); private: - const vk::DispatchLoaderDynamic *pVkDynLoader; + const WZ_vk::DispatchLoaderDynamic *pVkDynLoader; vk::CommandBuffer *pCurrentDrawCmdBuffer = nullptr; }; @@ -308,7 +313,7 @@ struct perSwapchainImageResources_t perSwapchainImageResources_t( const perSwapchainImageResources_t& other ) = delete; // non construction-copyable perSwapchainImageResources_t& operator=( const perSwapchainImageResources_t& ) = delete; // non copyable - perSwapchainImageResources_t(vk::Device& _dev, const vk::DispatchLoaderDynamic& vkDynLoader); + perSwapchainImageResources_t(vk::Device& _dev, const WZ_vk::DispatchLoaderDynamic& vkDynLoader); ~perSwapchainImageResources_t(); protected: @@ -316,7 +321,7 @@ struct perSwapchainImageResources_t void clean(); private: - const vk::DispatchLoaderDynamic *pVkDynLoader; + const WZ_vk::DispatchLoaderDynamic *pVkDynLoader; }; struct buffering_mechanism @@ -329,9 +334,9 @@ struct buffering_mechanism static perFrameResources_t& get_current_resources(); static perSwapchainImageResources_t& get_current_swapchain_resources(); - static void init(vk::Device dev, const VmaAllocator& allocator, size_t swapchainImageCount, const uint32_t& graphicsQueueFamilyIndex, const vk::DispatchLoaderDynamic& vkDynLoader); - static void destroy(vk::Device dev, const vk::DispatchLoaderDynamic& vkDynLoader); - static void swap(vk::Device dev, const vk::DispatchLoaderDynamic& vkDynLoader, bool skipAcquireNewSwapchainImage); + static void init(vk::Device dev, const VmaAllocator& allocator, size_t swapchainImageCount, const uint32_t& graphicsQueueFamilyIndex, const WZ_vk::DispatchLoaderDynamic& vkDynLoader); + static void destroy(vk::Device dev, const WZ_vk::DispatchLoaderDynamic& vkDynLoader); + static void swap(vk::Device dev, const WZ_vk::DispatchLoaderDynamic& vkDynLoader, bool skipAcquireNewSwapchainImage); static bool isInitialized(); static size_t get_current_frame_num(); static size_t numFrames(); @@ -369,7 +374,7 @@ struct VkPSO final vk::ShaderModule vertexShader; vk::ShaderModule fragmentShader; vk::Device dev; - const vk::DispatchLoaderDynamic* pVkDynLoader; + const WZ_vk::DispatchLoaderDynamic* pVkDynLoader; std::vector samplers; std::shared_ptr renderpass_compat; @@ -380,7 +385,7 @@ struct VkPSO final // Read shader into text buffer static std::vector readShaderBuf(const std::string& name); - vk::ShaderModule get_module(const std::string& name, const vk::DispatchLoaderDynamic& vkDynLoader); + vk::ShaderModule get_module(const std::string& name, const WZ_vk::DispatchLoaderDynamic& vkDynLoader); static std::array get_stages(const vk::ShaderModule& vertexModule, const vk::ShaderModule& fragmentModule); @@ -405,7 +410,7 @@ struct VkPSO final vk::RenderPass rp, const std::shared_ptr& renderpass_compat, vk::SampleCountFlagBits rasterizationSamples, - const vk::DispatchLoaderDynamic& _vkDynLoader, + const WZ_vk::DispatchLoaderDynamic& _vkDynLoader, const VkRoot& root ); @@ -552,7 +557,7 @@ struct VkDepthMapImage final : public gfx_api::abstract_texture virtual bool isArray() const override; virtual size_t backend_internal_value() const override; - void destroy(vk::Device dev, const VmaAllocator& allocator, const vk::DispatchLoaderDynamic& vkDynLoader); + void destroy(vk::Device dev, const VmaAllocator& allocator, const WZ_vk::DispatchLoaderDynamic& vkDynLoader); VkDepthMapImage( const VkDepthMapImage& other ) = delete; // non construction-copyable VkDepthMapImage& operator=( const VkDepthMapImage& ) = delete; // non copyable @@ -579,7 +584,7 @@ struct VkRenderedImage final : public gfx_api::abstract_texture virtual bool isArray() const override; virtual size_t backend_internal_value() const override; - void destroy(vk::Device dev, const VmaAllocator& allocator, const vk::DispatchLoaderDynamic& vkDynLoader); + void destroy(vk::Device dev, const VmaAllocator& allocator, const WZ_vk::DispatchLoaderDynamic& vkDynLoader); VkRenderedImage( const VkRenderedImage& other ) = delete; // non construction-copyable VkRenderedImage& operator=( const VkRenderedImage& ) = delete; // non copyable @@ -617,7 +622,7 @@ struct VkRoot final : gfx_api::context vk::InstanceCreateInfo instanceCreateInfo; vk::Instance inst; std::vector layers; - vk::DispatchLoaderDynamic vkDynLoader; + WZ_vk::DispatchLoaderDynamic vkDynLoader; // physical device (and info) vk::PhysicalDevice physicalDevice;