diff options
| author | Markus Wick <degasus@users.noreply.github.com> | 2016-10-08 21:41:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-08 21:41:43 +0200 |
| commit | a86b2c15d8a3064228e5b8fabf6cbea09c3837dd (patch) | |
| tree | ea24ab15bce008fed82f21fda86d4e1b97cc8f44 /Source/Core/VideoBackends/Software/EfbCopy.cpp | |
| parent | 8b38d5a1155c9d91036935b2abc388aaa1822e41 (diff) | |
| parent | b427ead0cc46ae6e35568a85228f6261204a197f (diff) | |
Merge pull request #4322 from Helios747/I_hate_features
Remove Frameskip
Diffstat (limited to 'Source/Core/VideoBackends/Software/EfbCopy.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Software/EfbCopy.cpp | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/Source/Core/VideoBackends/Software/EfbCopy.cpp b/Source/Core/VideoBackends/Software/EfbCopy.cpp index c2c63f8a9e..26afc6c779 100644 --- a/Source/Core/VideoBackends/Software/EfbCopy.cpp +++ b/Source/Core/VideoBackends/Software/EfbCopy.cpp @@ -67,34 +67,31 @@ void CopyEfb() rc.right = rc.left + (int)bpmem.copyTexSrcWH.x + 1; rc.bottom = rc.top + (int)bpmem.copyTexSrcWH.y + 1; - if (!Fifo::WillSkipCurrentFrame()) + if (bpmem.triggerEFBCopy.copy_to_xfb) { - if (bpmem.triggerEFBCopy.copy_to_xfb) - { - float yScale; - if (bpmem.triggerEFBCopy.scale_invert) - yScale = 256.0f / (float)bpmem.dispcopyyscale; - else - yScale = (float)bpmem.dispcopyyscale / 256.0f; - - float xfbLines = ((bpmem.copyTexSrcWH.y + 1.0f) * yScale); + float yScale; + if (bpmem.triggerEFBCopy.scale_invert) + yScale = 256.0f / (float)bpmem.dispcopyyscale; + else + yScale = (float)bpmem.dispcopyyscale / 256.0f; - if (yScale != 1.0) - WARN_LOG(VIDEO, "yScale of %f is currently unsupported", yScale); + float xfbLines = ((bpmem.copyTexSrcWH.y + 1.0f) * yScale); - if ((u32)xfbLines > MAX_XFB_HEIGHT) - { - INFO_LOG(VIDEO, "Tried to scale EFB to too many XFB lines (%f)", xfbLines); - xfbLines = MAX_XFB_HEIGHT; - } + if (yScale != 1.0) + WARN_LOG(VIDEO, "yScale of %f is currently unsupported", yScale); - CopyToXfb(bpmem.copyTexDest << 5, bpmem.copyMipMapStrideChannels << 4, (u32)xfbLines, rc, - s_gammaLUT[bpmem.triggerEFBCopy.gamma]); - } - else + if ((u32)xfbLines > MAX_XFB_HEIGHT) { - CopyToRam(); // FIXME: should use the rectangle we have already created above + INFO_LOG(VIDEO, "Tried to scale EFB to too many XFB lines (%f)", xfbLines); + xfbLines = MAX_XFB_HEIGHT; } + + CopyToXfb(bpmem.copyTexDest << 5, bpmem.copyMipMapStrideChannels << 4, (u32)xfbLines, rc, + s_gammaLUT[bpmem.triggerEFBCopy.gamma]); + } + else + { + CopyToRam(); // FIXME: should use the rectangle we have already created above } } } |
