From 7a63e824ccfde24d1d6e662fd8ecc386d01435b6 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 15 Oct 2015 19:47:19 +0200 Subject: [PATCH] Make sure images always have SAMPLED and TRANSFER_SOURCE usage bits --- .../driver/vulkan/wrappers/vk_resource_funcs.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp index 9a59bbe0b..807715575 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp @@ -745,6 +745,11 @@ bool WrappedVulkan::Serialise_vkCreateImage( device = GetResourceManager()->GetLiveHandle(devId); VkImage img = VK_NULL_HANDLE; + VkImageUsageFlags origFlags = info.usage; + + // ensure we can always display and copy from textures + info.usage |= VK_IMAGE_USAGE_SAMPLED_BIT|VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT; + VkResult ret = ObjDisp(device)->CreateImage(Unwrap(device), &info, &img); if(ret != VK_SUCCESS) @@ -763,13 +768,13 @@ bool WrappedVulkan::Serialise_vkCreateImage( m_ImageInfo[live].arraySize = info.arraySize; m_ImageInfo[live].samples = info.samples; - if(info.usage & VK_IMAGE_USAGE_SAMPLED_BIT) + if(origFlags & VK_IMAGE_USAGE_SAMPLED_BIT) m_ImageInfo[live].creationFlags |= eTextureCreate_SRV; - if(info.usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT|VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT)) + if(origFlags & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT|VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT)) m_ImageInfo[live].creationFlags |= eTextureCreate_RTV; - if(info.usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) + if(origFlags & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) m_ImageInfo[live].creationFlags |= eTextureCreate_DSV; - if(info.usage & VK_IMAGE_USAGE_STORAGE_BIT) + if(origFlags & VK_IMAGE_USAGE_STORAGE_BIT) m_ImageInfo[live].creationFlags |= eTextureCreate_UAV; if(info.flags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT)