summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-03-31 18:23:27 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-03-31 18:23:27 +0000
commitd2b5a9c709d1a1e360aec0efa96d098a5b3569a2 (patch)
treef4d3210d3eca46bc3e953bf001d291b6679c9530 /Graphics/GraphicsEngineVulkan
parentFixed default GL viewport size issue on iOS (diff)
downloadDiligentCore-d2b5a9c709d1a1e360aec0efa96d098a5b3569a2.tar.gz
DiligentCore-d2b5a9c709d1a1e360aec0efa96d098a5b3569a2.zip
Added swap chain usage flags
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp
index befa0db4..7277a744 100644
--- a/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/SwapChainVkImpl.cpp
@@ -271,7 +271,15 @@ void SwapChainVkImpl::CreateVulkanSwapChain()
swapchain_ci.oldSwapchain = oldSwapchain;
swapchain_ci.clipped = VK_TRUE;
swapchain_ci.imageColorSpace = ColorSpace;
- swapchain_ci.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+
+ DEV_CHECK_ERR(m_SwapChainDesc.Usage != 0, "No swap chain usage flags defined");
+ if (m_SwapChainDesc.Usage & SWAP_CHAIN_USAGE_RENDER_TARGET)
+ swapchain_ci.imageUsage |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+ if (m_SwapChainDesc.Usage & SWAP_CHAIN_USAGE_SHADER_INPUT)
+ swapchain_ci.imageUsage |= VK_IMAGE_USAGE_SAMPLED_BIT;
+ if (m_SwapChainDesc.Usage & SWAP_CHAIN_USAGE_COPY_SOURCE)
+ swapchain_ci.imageUsage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+
// vkCmdClearColorImage() command requires the image to use VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL layout
// that requires VK_IMAGE_USAGE_TRANSFER_DST_BIT to be set
swapchain_ci.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE;