diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2018-04-10 16:02:07 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2018-04-10 16:02:07 +0000 |
| commit | a297b91c01b4288647b8a9824e43cd26848da6e3 (patch) | |
| tree | a85e0ac51608d915d359204e3d157cb6d9054485 /Graphics/GraphicsEngineVulkan | |
| parent | Vulkan: updated swap chain initialization; added depth buffer creation (diff) | |
| download | DiligentCore-a297b91c01b4288647b8a9824e43cd26848da6e3.tar.gz DiligentCore-a297b91c01b4288647b8a9824e43cd26848da6e3.zip | |
Minor changes
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
4 files changed, 31 insertions, 8 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp index d00bc661..e7e59daa 100644 --- a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp @@ -86,10 +86,10 @@ PipelineStateVkImpl :: PipelineStateVkImpl(IReferenceCounters *pRefCounters, Ren m_pDefaultShaderResBinding(nullptr, STDDeleter<ShaderResourceBindingVkImpl, FixedBlockMemoryAllocator>(pDeviceVk->GetSRBAllocator()) ) */ { -#if 0 - auto pVkDevice = pDeviceVk->GetVkDevice(); + //auto pVkDevice = pDeviceVk->GetVkDevice(); if (PipelineDesc.IsComputePipeline) { +#if 0 auto &ComputePipeline = PipelineDesc.ComputePipeline; if( ComputePipeline.pCS == nullptr ) @@ -120,10 +120,12 @@ PipelineStateVkImpl :: PipelineStateVkImpl(IReferenceCounters *pRefCounters, Ren HRESULT hr = pVkDevice->CreateComputePipelineState(&VkPSODesc, __uuidof(IVkPipelineState), reinterpret_cast<void**>( static_cast<IVkPipelineState**>(&m_pVkPSO)) ); if(FAILED(hr)) LOG_ERROR_AND_THROW("Failed to create pipeline state"); +#endif } else { const auto& GraphicsPipeline = PipelineDesc.GraphicsPipeline; +#if 0 Vk_GRAPHICS_PIPELINE_STATE_DESC VkPSODesc = {}; m_RootSig.AllocateStaticSamplers( GetShaders(), GetNumShaders() ); @@ -204,8 +206,9 @@ PipelineStateVkImpl :: PipelineStateVkImpl(IReferenceCounters *pRefCounters, Ren HRESULT hr = pVkDevice->CreateGraphicsPipelineState(&VkPSODesc, __uuidof(IVkPipelineState), reinterpret_cast<void**>( static_cast<IVkPipelineState**>(&m_pVkPSO)) ); if(FAILED(hr)) LOG_ERROR_AND_THROW("Failed to create pipeline state"); +#endif } - +#if 0 if (*m_Desc.Name != 0) { m_pVkPSO->SetName(WidenString(m_Desc.Name).c_str()); diff --git a/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp index c7d77418..57709a4c 100644 --- a/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp @@ -104,6 +104,7 @@ SwapChainVkImpl::SwapChainVkImpl(IReferenceCounters *pRefCounters, CHECK_VK_ERROR_AND_THROW(err, "Failed to query supported format properties"); VERIFY_EXPR(formatCount == SupportedFormats.size()); m_VkColorFormat = TexFormatToVkFormat(m_SwapChainDesc.ColorBufferFormat); + VkColorSpaceKHR ColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR; if (formatCount == 1 && SupportedFormats[0].format == VK_FORMAT_UNDEFINED) { // If the format list includes just one entry of VK_FORMAT_UNDEFINED, @@ -114,8 +115,16 @@ SwapChainVkImpl::SwapChainVkImpl(IReferenceCounters *pRefCounters, } else { - bool FmtFound = std::find_if(SupportedFormats.begin(), SupportedFormats.end(), - [&](const VkSurfaceFormatKHR &SrfFmt){return SrfFmt.format == m_VkColorFormat;}) != SupportedFormats.end(); + bool FmtFound = false; + for(const auto& SrfFmt : SupportedFormats) + { + if(SrfFmt.format == m_VkColorFormat) + { + FmtFound = true; + ColorSpace = SrfFmt.colorSpace; + break; + } + } if(!FmtFound) { VkFormat VkReplacementColorFormat = VK_FORMAT_UNDEFINED; @@ -128,8 +137,17 @@ SwapChainVkImpl::SwapChainVkImpl(IReferenceCounters *pRefCounters, default: VkReplacementColorFormat = VK_FORMAT_UNDEFINED; } - bool ReplacementFmtFound = std::find_if(SupportedFormats.begin(), SupportedFormats.end(), - [&](const VkSurfaceFormatKHR &SrfFmt) {return SrfFmt.format == VkReplacementColorFormat; }) != SupportedFormats.end(); + bool ReplacementFmtFound = false; + for (const auto& SrfFmt : SupportedFormats) + { + if (SrfFmt.format == VkReplacementColorFormat) + { + ReplacementFmtFound = true; + ColorSpace = SrfFmt.colorSpace; + break; + } + } + if(ReplacementFmtFound) { m_VkColorFormat = VkReplacementColorFormat; @@ -234,7 +252,7 @@ SwapChainVkImpl::SwapChainVkImpl(IReferenceCounters *pRefCounters, swapchain_ci.presentMode = swapchainPresentMode; swapchain_ci.oldSwapchain = VK_NULL_HANDLE; swapchain_ci.clipped = VK_TRUE; - swapchain_ci.imageColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR; + swapchain_ci.imageColorSpace = ColorSpace; swapchain_ci.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; swapchain_ci.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE; swapchain_ci.queueFamilyIndexCount = 0; diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp index 08a568c7..a47c0ec0 100644 --- a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp +++ b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp @@ -22,6 +22,7 @@ */ #include <vector> +#include <cstring> #include "VulkanErrors.h" #include "VulkanUtilities/VulkanInstance.h" #include "VulkanUtilities/VulkanDebug.h" diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp index 35b53c86..b5dcee74 100644 --- a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp +++ b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp @@ -22,6 +22,7 @@ */ #include <limits> +#include <cstring> #include "VulkanErrors.h" #include "VulkanUtilities/VulkanPhysicalDevice.h" |
