diff options
| author | degasus <wickmarkus@web.de> | 2015-09-17 18:12:20 +0200 |
|---|---|---|
| committer | degasus <wickmarkus@web.de> | 2015-09-17 18:21:37 +0200 |
| commit | e3e0399af2c7957fb1636689103cae03e2e26db4 (patch) | |
| tree | e1d14542c6a1320c4685b59c87f92ca24ed7d763 /Source/Core/VideoBackends/Software/EfbCopy.cpp | |
| parent | 52de4cc476429d77240434c4c0c6fcaff353f39a (diff) | |
VideoSW: Drop HwRasterizer
I don't remember it being working, and nobody cares about performance of videosw.
Diffstat (limited to 'Source/Core/VideoBackends/Software/EfbCopy.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Software/EfbCopy.cpp | 66 |
1 files changed, 28 insertions, 38 deletions
diff --git a/Source/Core/VideoBackends/Software/EfbCopy.cpp b/Source/Core/VideoBackends/Software/EfbCopy.cpp index 688a5cddb9..42759e20e9 100644 --- a/Source/Core/VideoBackends/Software/EfbCopy.cpp +++ b/Source/Core/VideoBackends/Software/EfbCopy.cpp @@ -9,7 +9,6 @@ #include "VideoBackends/Software/DebugUtil.h" #include "VideoBackends/Software/EfbCopy.h" #include "VideoBackends/Software/EfbInterface.h" -#include "VideoBackends/Software/HwRasterizer.h" #include "VideoBackends/Software/SWCommandProcessor.h" #include "VideoBackends/Software/SWRenderer.h" #include "VideoBackends/Software/SWStatistics.h" @@ -31,47 +30,41 @@ namespace EfbCopy { GLInterface->Update(); // update the render window position and the backbuffer size - if (!g_SWVideoConfig.bHwRasterizer) - { - INFO_LOG(VIDEO, "xfbaddr: %x, fbwidth: %i, fbheight: %i, source: (%i, %i, %i, %i), Gamma %f", - xfbAddr, fbWidth, fbHeight, sourceRc.top, sourceRc.left, sourceRc.bottom, sourceRc.right, Gamma); + INFO_LOG(VIDEO, "xfbaddr: %x, fbwidth: %i, fbheight: %i, source: (%i, %i, %i, %i), Gamma %f", + xfbAddr, fbWidth, fbHeight, sourceRc.top, sourceRc.left, sourceRc.bottom, sourceRc.right, Gamma); - if (!g_SWVideoConfig.bBypassXFB) - { - EfbInterface::yuv422_packed* xfb_in_ram = (EfbInterface::yuv422_packed *) Memory::GetPointer(xfbAddr); + if (!g_SWVideoConfig.bBypassXFB) + { + EfbInterface::yuv422_packed* xfb_in_ram = (EfbInterface::yuv422_packed *) Memory::GetPointer(xfbAddr); - EfbInterface::CopyToXFB(xfb_in_ram, fbWidth, fbHeight, sourceRc, Gamma); - } - else - { - // Ask SWRenderer for the next color texture - u8 *colorTexture = SWRenderer::GetNextColorTexture(); - - EfbInterface::BypassXFB(colorTexture, fbWidth, fbHeight, sourceRc, Gamma); - - // Tell SWRenderer we are now finished with it. - SWRenderer::SwapColorTexture(); - - // FifoPlayer is broken and never calls BeginFrame/EndFrame. - // Hence, we manually force a swap now. This emulates the behavior - // of hardware backends with XFB emulation disabled. - // TODO: Fix FifoPlayer by making proper use of VideoInterface! - // This requires careful synchronization since GPU commands - // are processed on a different thread than VI commands. - SWRenderer::Swap(fbWidth, fbHeight); - DebugUtil::OnFrameEnd(fbWidth, fbHeight); - } + EfbInterface::CopyToXFB(xfb_in_ram, fbWidth, fbHeight, sourceRc, Gamma); + } + else + { + // Ask SWRenderer for the next color texture + u8 *colorTexture = SWRenderer::GetNextColorTexture(); + + EfbInterface::BypassXFB(colorTexture, fbWidth, fbHeight, sourceRc, Gamma); + + // Tell SWRenderer we are now finished with it. + SWRenderer::SwapColorTexture(); + + // FifoPlayer is broken and never calls BeginFrame/EndFrame. + // Hence, we manually force a swap now. This emulates the behavior + // of hardware backends with XFB emulation disabled. + // TODO: Fix FifoPlayer by making proper use of VideoInterface! + // This requires careful synchronization since GPU commands + // are processed on a different thread than VI commands. + SWRenderer::Swap(fbWidth, fbHeight); + DebugUtil::OnFrameEnd(fbWidth, fbHeight); } } static void CopyToRam() { - if (!g_SWVideoConfig.bHwRasterizer) - { - u8 *dest_ptr = Memory::GetPointer(bpmem.copyTexDest << 5); + u8 *dest_ptr = Memory::GetPointer(bpmem.copyTexDest << 5); - TextureEncoder::Encode(dest_ptr); - } + TextureEncoder::Encode(dest_ptr); } static void ClearEfb() @@ -138,10 +131,7 @@ namespace EfbCopy if (bpmem.triggerEFBCopy.clear) { - if (g_SWVideoConfig.bHwRasterizer) - HwRasterizer::Clear(); - else - ClearEfb(); + ClearEfb(); } } } |
