mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-04-22 09:40:46 +00:00
Move vulkan.hpp include to DeviceManager_VK.cpp and adjust vk:: namespace references
This commit is contained in:
parent
4596a34dfe
commit
02ed35be22
5 changed files with 35 additions and 34 deletions
|
@ -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 = {};
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -41,8 +41,6 @@
|
|||
|
||||
#if USE_VK
|
||||
#include <nvrhi/vulkan.h>
|
||||
#define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
|
||||
#include <vulkan/vulkan.hpp>
|
||||
#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 );
|
||||
|
|
|
@ -35,6 +35,9 @@
|
|||
#include <sys/DeviceManager.h>
|
||||
|
||||
#include <nvrhi/vulkan.h>
|
||||
#define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
|
||||
#include <vulkan/vulkan.hpp>
|
||||
|
||||
// SRS - optionally needed for MoltenVK runtime config visibility
|
||||
#if defined(__APPLE__) && defined( USE_MoltenVK )
|
||||
#include <MoltenVK/vk_mvk_moltenvk.h>
|
||||
|
@ -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 )
|
||||
|
|
|
@ -70,15 +70,15 @@ std::vector<const char*> 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 )
|
||||
|
|
Loading…
Reference in a new issue