summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software/EfbCopy.cpp
diff options
context:
space:
mode:
authordegasus <wickmarkus@web.de>2015-09-17 18:12:20 +0200
committerdegasus <wickmarkus@web.de>2015-09-17 18:21:37 +0200
commite3e0399af2c7957fb1636689103cae03e2e26db4 (patch)
treee1d14542c6a1320c4685b59c87f92ca24ed7d763 /Source/Core/VideoBackends/Software/EfbCopy.cpp
parent52de4cc476429d77240434c4c0c6fcaff353f39a (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.cpp66
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();
}
}
}