From 3d2bc2cdc99a586ce393bae35a5ef032b4f19ec6 Mon Sep 17 00:00:00 2001 From: michaelrgb Date: Thu, 1 Feb 2018 13:39:40 +0000 Subject: [PATCH] Remove VK_IMAGE_USAGE_TRANSIENT to fix preparing initial state. On some drivers vkCmdCopyImageToBuffer will crash if we sample from transient images. The spec also forbids using it with USAGE_SAMPLED_BIT. --- renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp index 701625bfc..a0b4ca879 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp @@ -1338,6 +1338,7 @@ bool WrappedVulkan::Serialise_vkCreateImage(SerialiserType &ser, VkDevice device // ensure we can always display and copy from/to textures CreateInfo.usage |= VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; + CreateInfo.usage &= ~VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; // ensure we can cast multisampled images, for copying to arrays if((int)CreateInfo.samples > 1) @@ -1459,6 +1460,7 @@ VkResult WrappedVulkan::vkCreateImage(VkDevice device, const VkImageCreateInfo * if(IsCaptureMode(m_State)) { createInfo_adjusted.usage |= VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; + createInfo_adjusted.usage &= ~VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; } if(createInfo_adjusted.samples != VK_SAMPLE_COUNT_1_BIT)