D3D: Fix strided XFB copies

This commit is contained in:
Stenzek 2016-11-19 18:54:05 +10:00
parent 6b88a854a7
commit d6d3341183

View File

@ -275,8 +275,10 @@ void FramebufferManager::CopyToRealXFB(u32 xfbAddr, u32 fbStride, u32 fbHeight,
const EFBRectangle& sourceRc, float Gamma)
{
u8* dst = Memory::GetPointer(xfbAddr);
// below div2 due to dx using pixel width
s_xfbEncoder.Encode(dst, fbStride / 2, fbHeight, sourceRc, Gamma);
// The destination stride can differ from the copy region width, in which case the pixels
// outside the copy region should not be written to.
s_xfbEncoder.Encode(dst, static_cast<u32>(sourceRc.GetWidth()), fbHeight, sourceRc, Gamma);
}
std::unique_ptr<XFBSourceBase> FramebufferManager::CreateXFBSource(unsigned int target_width,