From 9ca6546dec64f7118ad710d581b63598368f89c6 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Mon, 8 Jul 2019 20:48:31 +0300 Subject: [PATCH] vk: When reusing resources, make sure to reinitialize the component layout --- rpcs3/Emu/RSX/VK/VKTextureCache.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rpcs3/Emu/RSX/VK/VKTextureCache.h b/rpcs3/Emu/RSX/VK/VKTextureCache.h index 49319f65bf..9bea91d9e1 100644 --- a/rpcs3/Emu/RSX/VK/VKTextureCache.h +++ b/rpcs3/Emu/RSX/VK/VKTextureCache.h @@ -809,6 +809,14 @@ namespace vk size, size, 1, 1, 6, VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT); } + else if (auto src = sections_to_copy[0].src; src && src->format() == dst_format) + { + image->set_native_component_layout(src->native_component_map); + } + else + { + image->set_native_component_layout({ VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A }); + } auto view = image->get_view(0xAAE4, rsx::default_remap_vector); @@ -853,6 +861,14 @@ namespace vk width, height, depth, 1, 1, VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, 0); } + else if (auto src = sections_to_copy[0].src; src && src->format() == dst_format) + { + image->set_native_component_layout(src->native_component_map); + } + else + { + image->set_native_component_layout({ VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A }); + } auto view = image->get_view(0xAAE4, rsx::default_remap_vector);