From 02ed35be2282cec931bd210d8cb4c708ec330129 Mon Sep 17 00:00:00 2001 From: Stephen Saunders Date: Sun, 4 Feb 2024 01:41:33 -0500 Subject: [PATCH] Move vulkan.hpp include to DeviceManager_VK.cpp and adjust vk:: namespace references --- neo/renderer/NVRHI/BufferObject_NVRHI.cpp | 32 +++++++++++------------ neo/renderer/NVRHI/Image_NVRHI.cpp | 18 ++++++------- neo/sys/DeviceManager.h | 4 +-- neo/sys/DeviceManager_VK.cpp | 7 +++-- neo/sys/sdl/sdl_vkimp.cpp | 8 +++--- 5 files changed, 35 insertions(+), 34 deletions(-) diff --git a/neo/renderer/NVRHI/BufferObject_NVRHI.cpp b/neo/renderer/NVRHI/BufferObject_NVRHI.cpp index 2b13f2f8..d2354ef1 100644 --- a/neo/renderer/NVRHI/BufferObject_NVRHI.cpp +++ b/neo/renderer/NVRHI/BufferObject_NVRHI.cpp @@ -73,59 +73,59 @@ pickBufferUsage - copied from nvrhi vulkan-buffer.cpp * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ -vk::BufferUsageFlags pickBufferUsage( const nvrhi::BufferDesc& desc ) +VkBufferUsageFlags pickBufferUsage( const nvrhi::BufferDesc& desc ) { - vk::BufferUsageFlags usageFlags = vk::BufferUsageFlagBits::eTransferSrc | - vk::BufferUsageFlagBits::eTransferDst; + VkBufferUsageFlags usageFlags = VkBufferUsageFlagBits::VK_BUFFER_USAGE_TRANSFER_SRC_BIT | + VkBufferUsageFlagBits::VK_BUFFER_USAGE_TRANSFER_DST_BIT; if( desc.isVertexBuffer ) { - usageFlags |= vk::BufferUsageFlagBits::eVertexBuffer; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; } if( desc.isIndexBuffer ) { - usageFlags |= vk::BufferUsageFlagBits::eIndexBuffer; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_INDEX_BUFFER_BIT; } if( desc.isDrawIndirectArgs ) { - usageFlags |= vk::BufferUsageFlagBits::eIndirectBuffer; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT; } if( desc.isConstantBuffer ) { - usageFlags |= vk::BufferUsageFlagBits::eUniformBuffer; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT; } if( desc.structStride != 0 || desc.canHaveUAVs || desc.canHaveRawViews ) { - usageFlags |= vk::BufferUsageFlagBits::eStorageBuffer; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; } if( desc.canHaveTypedViews ) { - usageFlags |= vk::BufferUsageFlagBits::eUniformTexelBuffer; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT; } if( desc.canHaveTypedViews && desc.canHaveUAVs ) { - usageFlags |= vk::BufferUsageFlagBits::eStorageTexelBuffer; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT; } if( desc.isAccelStructBuildInput ) { - usageFlags |= vk::BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR; } if( desc.isAccelStructStorage ) { - usageFlags |= vk::BufferUsageFlagBits::eAccelerationStructureStorageKHR; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR; } if( deviceManager->IsVulkanDeviceExtensionEnabled( VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME ) ) { - usageFlags |= vk::BufferUsageFlagBits::eShaderDeviceAddress; + usageFlags |= VkBufferUsageFlagBits::VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT; } return usageFlags; @@ -214,7 +214,7 @@ bool idVertexBuffer::AllocBufferObject( const void* data, int allocSize, bufferU { VkBufferCreateInfo bufferCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; bufferCreateInfo.size = numBytes; - bufferCreateInfo.usage = static_cast< VkBufferUsageFlags >( pickBufferUsage( vertexBufferDesc ) ); + bufferCreateInfo.usage = pickBufferUsage( vertexBufferDesc ); bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; VmaAllocationCreateInfo allocCreateInfo = {}; @@ -482,7 +482,7 @@ bool idIndexBuffer::AllocBufferObject( const void* data, int allocSize, bufferUs { VkBufferCreateInfo bufferCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; bufferCreateInfo.size = numBytes; - bufferCreateInfo.usage = static_cast< VkBufferUsageFlags >( pickBufferUsage( indexBufferDesc ) ); + bufferCreateInfo.usage = pickBufferUsage( indexBufferDesc ); bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; VmaAllocationCreateInfo allocCreateInfo = {}; @@ -749,7 +749,7 @@ bool idUniformBuffer::AllocBufferObject( const void* data, int allocSize, buffer { VkBufferCreateInfo bufferCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; bufferCreateInfo.size = numBytes; - bufferCreateInfo.usage = static_cast< VkBufferUsageFlags >( pickBufferUsage( bufferDesc ) ); + bufferCreateInfo.usage = pickBufferUsage( bufferDesc ); bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; VmaAllocationCreateInfo allocCreateInfo = {}; diff --git a/neo/renderer/NVRHI/Image_NVRHI.cpp b/neo/renderer/NVRHI/Image_NVRHI.cpp index be615b60..c6b25ec6 100644 --- a/neo/renderer/NVRHI/Image_NVRHI.cpp +++ b/neo/renderer/NVRHI/Image_NVRHI.cpp @@ -75,34 +75,34 @@ pickImageUsage - copied from nvrhi vulkan-texture.cpp * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ -vk::ImageUsageFlags pickImageUsage( const nvrhi::TextureDesc& desc ) +VkImageUsageFlags pickImageUsage( const nvrhi::TextureDesc& desc ) { const nvrhi::FormatInfo& formatInfo = nvrhi::getFormatInfo( desc.format ); - vk::ImageUsageFlags usageFlags = vk::ImageUsageFlagBits::eTransferSrc | - vk::ImageUsageFlagBits::eTransferDst | - vk::ImageUsageFlagBits::eSampled; + VkImageUsageFlags usageFlags = VkImageUsageFlagBits::VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + VkImageUsageFlagBits::VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VkImageUsageFlagBits::VK_IMAGE_USAGE_SAMPLED_BIT; if( desc.isRenderTarget ) { if( formatInfo.hasDepth || formatInfo.hasStencil ) { - usageFlags |= vk::ImageUsageFlagBits::eDepthStencilAttachment; + usageFlags |= VkImageUsageFlagBits::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; } else { - usageFlags |= vk::ImageUsageFlagBits::eColorAttachment; + usageFlags |= VkImageUsageFlagBits::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; } } if( desc.isUAV ) { - usageFlags |= vk::ImageUsageFlagBits::eStorage; + usageFlags |= VkImageUsageFlagBits::VK_IMAGE_USAGE_STORAGE_BIT; } if( desc.isShadingRateSurface ) { - usageFlags |= vk::ImageUsageFlagBits::eFragmentShadingRateAttachmentKHR; + usageFlags |= VkImageUsageFlagBits::VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR; } return usageFlags; @@ -572,7 +572,7 @@ void idImage::AllocImage() imageCreateInfo.arrayLayers = textureDesc.arraySize; imageCreateInfo.samples = static_cast< VkSampleCountFlagBits >( opts.samples ); imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL; - imageCreateInfo.usage = static_cast< VkImageUsageFlags >( pickImageUsage( textureDesc ) ); + imageCreateInfo.usage = pickImageUsage( textureDesc ); imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; diff --git a/neo/sys/DeviceManager.h b/neo/sys/DeviceManager.h index 0875e1cc..21fac5d5 100644 --- a/neo/sys/DeviceManager.h +++ b/neo/sys/DeviceManager.h @@ -41,8 +41,6 @@ #if USE_VK #include - #define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 - #include #endif struct DeviceCreationParameters @@ -131,7 +129,7 @@ public: #if USE_VK && defined( VULKAN_USE_PLATFORM_SDL ) // SRS - Helper method for creating SDL Vulkan surface within DeviceManager_VK() - vk::Result CreateSDLWindowSurface( vk::Instance instance, vk::SurfaceKHR* surface ); + VkResult CreateSDLWindowSurface( VkInstance instance, VkSurfaceKHR* surface ); #endif bool CreateWindowDeviceAndSwapChain( const glimpParms_t& params, const char* windowTitle ); diff --git a/neo/sys/DeviceManager_VK.cpp b/neo/sys/DeviceManager_VK.cpp index e4a9670c..4a62bdc1 100644 --- a/neo/sys/DeviceManager_VK.cpp +++ b/neo/sys/DeviceManager_VK.cpp @@ -35,6 +35,9 @@ #include #include +#define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 +#include + // SRS - optionally needed for MoltenVK runtime config visibility #if defined(__APPLE__) && defined( USE_MoltenVK ) #include @@ -962,14 +965,14 @@ bool DeviceManager_VK::createWindowSurface() // Create the platform-specific surface #if defined( VULKAN_USE_PLATFORM_SDL ) // SRS - Support generic SDL platform for linux and macOS - const vk::Result res = CreateSDLWindowSurface( m_VulkanInstance, &m_WindowSurface ); + auto res = vk::Result( CreateSDLWindowSurface( ( VkInstance )m_VulkanInstance, ( VkSurfaceKHR* )&m_WindowSurface ) ); #elif defined( VK_USE_PLATFORM_WIN32_KHR ) auto surfaceCreateInfo = vk::Win32SurfaceCreateInfoKHR() .setHinstance( ( HINSTANCE )windowInstance ) .setHwnd( ( HWND )windowHandle ); - const vk::Result res = m_VulkanInstance.createWin32SurfaceKHR( &surfaceCreateInfo, nullptr, &m_WindowSurface ); + auto res = m_VulkanInstance.createWin32SurfaceKHR( &surfaceCreateInfo, nullptr, &m_WindowSurface ); #endif if( res != vk::Result::eSuccess ) diff --git a/neo/sys/sdl/sdl_vkimp.cpp b/neo/sys/sdl/sdl_vkimp.cpp index ef17b8d4..2fb28d3b 100755 --- a/neo/sys/sdl/sdl_vkimp.cpp +++ b/neo/sys/sdl/sdl_vkimp.cpp @@ -70,15 +70,15 @@ std::vector get_required_extensions() } // SRS - Helper method for creating SDL Vulkan surface within DeviceManager_VK() when NVRHI enabled -vk::Result DeviceManager::CreateSDLWindowSurface( vk::Instance instance, vk::SurfaceKHR* surface ) +VkResult DeviceManager::CreateSDLWindowSurface( VkInstance instance, VkSurfaceKHR* surface ) { - if( !SDL_Vulkan_CreateSurface( window, ( VkInstance )instance, ( VkSurfaceKHR* )surface ) ) + if( !SDL_Vulkan_CreateSurface( window, instance, surface ) ) { common->Warning( "Error while creating SDL Vulkan surface: %s", SDL_GetError() ); - return vk::Result::eErrorSurfaceLostKHR; + return VkResult::VK_ERROR_SURFACE_LOST_KHR; } - return vk::Result::eSuccess; + return VkResult::VK_SUCCESS; } bool DeviceManager::CreateWindowDeviceAndSwapChain( const glimpParms_t& parms, const char* windowTitle )