From 1c8cec45f30f851f998821f4fb8379f7b29fcc8f Mon Sep 17 00:00:00 2001 From: gibbed Date: Sat, 12 May 2018 19:39:35 -0500 Subject: [PATCH] [Vulkan] Properly copy untiled texture data. --- src/xenia/gpu/vulkan/texture_cache.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/xenia/gpu/vulkan/texture_cache.cc b/src/xenia/gpu/vulkan/texture_cache.cc index 34c80c5d7..12ffca8cb 100644 --- a/src/xenia/gpu/vulkan/texture_cache.cc +++ b/src/xenia/gpu/vulkan/texture_cache.cc @@ -924,13 +924,13 @@ bool TextureCache::ConvertTexture2D(uint8_t* dest, src.format_info()->block_height * src.format_info()->bits_per_pixel / 8; uint32_t src_pitch = xe::round_up(block_width * bytes_per_block, 256); - uint32_t dst_pitch = input_width * src.format_info()->block_width * - src.format_info()->bits_per_pixel / 8; - + uint32_t dst_pitch = (input_width / src.format_info()->block_width) * + bytes_per_block; + assert_true(dst_pitch <= src_pitch); const uint8_t* src_mem = reinterpret_cast(host_address); src_mem += offset_y * src_pitch; src_mem += offset_x * bytes_per_block; - for (uint32_t y = 0; y < src.size.logical_height; y++) { + for (uint32_t y = 0; y < src.size.block_height; y++) { TextureSwap(src.endianness, dest + y * dst_pitch, src_mem + y * src_pitch, dst_pitch); }