summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Present.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2023-01-28 16:23:30 +1300
committerScott Mansell <phiren@gmail.com>2023-01-31 19:41:24 +1300
commitf158ff300b72cff5ca1e2e62bc239111987188af (patch)
tree0ba518f48f8f2e0ac0c0ea2775c69a071cec2056 /Source/Core/VideoCommon/Present.cpp
parent26e00c3bb4957ce9d26415e415d0b137742844bc (diff)
Handle VideoSoftware's present fallback better
Not a good idea to abuse bSupportsPostProcessing
Diffstat (limited to 'Source/Core/VideoCommon/Present.cpp')
-rw-r--r--Source/Core/VideoCommon/Present.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/Source/Core/VideoCommon/Present.cpp b/Source/Core/VideoCommon/Present.cpp
index 8f10707d0d..a89b41b1dd 100644
--- a/Source/Core/VideoCommon/Present.cpp
+++ b/Source/Core/VideoCommon/Present.cpp
@@ -393,12 +393,6 @@ void Presenter::RenderXFBToScreen(const MathUtil::Rectangle<int>& target_rc,
const AbstractTexture* source_texture,
const MathUtil::Rectangle<int>& source_rc)
{
- if (!g_ActiveConfig.backend_info.bSupportsPostProcessing)
- {
- g_gfx->ShowImage(source_texture, source_rc);
- return;
- }
-
if (g_ActiveConfig.stereo_mode == StereoMode::QuadBuffer &&
g_ActiveConfig.backend_info.bUsesExplictQuadBuffering)
{
@@ -463,6 +457,14 @@ void Presenter::Present()
{
m_last_xfb_id = m_xfb_entry->id;
+ if (!g_gfx->SupportsUtilityDrawing())
+ {
+ // Video Software doesn't support Drawing a UI or doing post-processing
+ // So just Show the XFB
+ g_gfx->ShowImage(m_xfb_entry->texture.get(), m_xfb_rect);
+ return;
+ }
+
// Since we use the common pipelines here and draw vertices if a batch is currently being
// built by the vertex loader, we end up trampling over its pointer, as we share the buffer
// with the loader, and it has not been unmapped yet. Force a pipeline flush to avoid this.