Permalink
Browse files

Merge pull request #7406 from AdmiralCurtiss/xfb_rect_scale_from_ram

Correctly adjust the rendered XFB region at non-native internal resolutions when XFB was loaded from console RAM.
  • Loading branch information...
stenzek committed Sep 14, 2018
2 parents 0fbe1a2 + d97bc0d commit ce9e9186f715408af8d9abb60b73ccb1e4d3c474
Showing with 10 additions and 1 deletion.
  1. +10 −1 Source/Core/VideoCommon/RenderBase.cpp
@@ -676,7 +676,16 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const
m_last_xfb_ticks = ticks;
auto xfb_rect = texture_config.GetRect();
xfb_rect.right -= EFBToScaledX(fbStride - fbWidth);
// It's possible that the returned XFB texture is native resolution
// even when we're rendering at higher than native resolution
// if the XFB was was loaded entirely from console memory.
// If so, adjust the rectangle by native resolution instead of scaled resolution.
const u32 native_stride_width_difference = fbStride - fbWidth;
if (texture_config.width == xfb_entry->native_width)
xfb_rect.right -= native_stride_width_difference;
else
xfb_rect.right -= EFBToScaledX(native_stride_width_difference);
m_last_xfb_region = xfb_rect;

0 comments on commit ce9e918

Please sign in to comment.