From 666c3176f81de3b376a9c24a05c7caefed52d21d Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 24 Nov 2015 22:14:58 +0100 Subject: [PATCH] Use the right aspect for creating texture-display image views * Even if depth display isn't right, this is at least not as wrong. --- renderdoc/driver/vulkan/vk_replay.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 3e3552ec0..d58e89574 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -958,10 +958,17 @@ bool VulkanReplay::RenderTextureInternal(TextureDisplay cfg, VkRenderPassBeginIn Unwrap(liveIm), VK_IMAGE_VIEW_TYPE_2D, iminfo.format, { VK_CHANNEL_SWIZZLE_R, VK_CHANNEL_SWIZZLE_G, VK_CHANNEL_SWIZZLE_B, VK_CHANNEL_SWIZZLE_A }, - { VK_IMAGE_ASPECT_COLOR_BIT, 0, RDCMAX(1U, (uint32_t)iminfo.mipLevels), 0, 1, }, + { layouts.subresourceStates[0].subresourceRange.aspectMask, 0, RDCMAX(1U, (uint32_t)iminfo.mipLevels), 0, 1, }, 0 }; + if(layouts.subresourceStates[0].subresourceRange.aspectMask & VK_IMAGE_ASPECT_DEPTH_BIT) + { + viewInfo.channels.g = VK_CHANNEL_SWIZZLE_ZERO; + viewInfo.channels.b = VK_CHANNEL_SWIZZLE_ZERO; + viewInfo.channels.a = VK_CHANNEL_SWIZZLE_ZERO; + } + // Only needed on AMD - does the wrong thing on nvidia - so commented for now while AMD // drivers aren't on 0.9.2 //if(iminfo.format == VK_FORMAT_B8G8R8A8_UNORM || iminfo.format == VK_FORMAT_B8G8R8A8_SRGB)