diff --git a/rpcs3/Emu/RSX/VK/VKRenderTargets.cpp b/rpcs3/Emu/RSX/VK/VKRenderTargets.cpp index a3fe493e95..d789e578e7 100644 --- a/rpcs3/Emu/RSX/VK/VKRenderTargets.cpp +++ b/rpcs3/Emu/RSX/VK/VKRenderTargets.cpp @@ -696,7 +696,11 @@ namespace vk #if DEBUG_DMA_TILING auto real_data = vm::get_super_ptr(range.start); ext_data.resize(tiled_region.tile->size); - rsx::tile_texel_data( + auto detile_func = get_bpp() == 4 + ? rsx::detile_texel_data32 + : rsx::detile_texel_data16; + + detile_func( ext_data.data(), real_data, tiled_region.base_address, @@ -706,7 +710,7 @@ namespace vk tiled_region.tile->pitch, subres.width_in_block, subres.height_in_block - ); + ); subres.data = std::span(ext_data); #else const auto [scratch_buf, linear_data_scratch_offset] = vk::detile_memory_block(cmd, tiled_region, range, subres.width_in_block, subres.height_in_block, get_bpp()); diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index fec1c505b5..0fa8410399 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -1790,7 +1790,11 @@ namespace rsx if (tiled_region) { - rsx::tile_texel_data( + const auto tile_func = dst.bpp == 4 + ? rsx::tile_texel_data32 + : rsx::tile_texel_data16; + + tile_func( real_dst, dst.pixels, tiled_region.base_address,