summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-04-10 16:02:07 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-04-10 16:02:07 +0000
commita297b91c01b4288647b8a9824e43cd26848da6e3 (patch)
treea85e0ac51608d915d359204e3d157cb6d9054485 /Graphics/GraphicsEngineVulkan
parentVulkan: updated swap chain initialization; added depth buffer creation (diff)
downloadDiligentCore-a297b91c01b4288647b8a9824e43cd26848da6e3.tar.gz
DiligentCore-a297b91c01b4288647b8a9824e43cd26848da6e3.zip
Minor changes
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp9
-rw-r--r--Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp28
-rw-r--r--Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp1
-rw-r--r--Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp1
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"