diff --git a/rpcs3/Emu/RSX/GL/GLTextureCache.h b/rpcs3/Emu/RSX/GL/GLTextureCache.h index 61cd803014..b36c76d797 100644 --- a/rpcs3/Emu/RSX/GL/GLTextureCache.h +++ b/rpcs3/Emu/RSX/GL/GLTextureCache.h @@ -588,7 +588,7 @@ namespace gl // Dimensions were given in 'dst' space. Work out the real source coordinates const auto src_bpp = slice.src->pitch() / slice.src->width(); src_x = (src_x * dst_bpp) / src_bpp; - src_w = (src_w * dst_bpp) / src_bpp; + src_w = ::aligned_div(src_w * dst_bpp, src_bpp); } if (auto surface = dynamic_cast(slice.src)) diff --git a/rpcs3/Emu/RSX/VK/VKTextureCache.h b/rpcs3/Emu/RSX/VK/VKTextureCache.h index fb16be36d9..cb8d183b16 100644 --- a/rpcs3/Emu/RSX/VK/VKTextureCache.h +++ b/rpcs3/Emu/RSX/VK/VKTextureCache.h @@ -586,7 +586,7 @@ namespace vk // Dimensions were given in 'dst' space. Work out the real source coordinates const auto src_bpp = vk::get_format_texel_width(section.src->format()); src_x = (src_x * dst_bpp) / src_bpp; - src_w = (src_w * dst_bpp) / src_bpp; + src_w = ::aligned_div(src_w * dst_bpp, src_bpp); transform &= ~(rsx::surface_transform::coordinate_transform); }