mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
VideoSW: Drop HwRasterizer
I don't remember it being working, and nobody cares about performance of videosw.
This commit is contained in:
@ -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);
|
||||
|
||||
if (!g_SWVideoConfig.bBypassXFB)
|
||||
{
|
||||
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);
|
||||
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::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);
|
||||
|
||||
EfbInterface::BypassXFB(colorTexture, fbWidth, fbHeight, sourceRc, Gamma);
|
||||
// Tell SWRenderer we are now finished with it.
|
||||
SWRenderer::SwapColorTexture();
|
||||
|
||||
// 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);
|
||||
}
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user