aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine/MethodDraw.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/MethodDraw.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/MethodDraw.cs21
1 files changed, 18 insertions, 3 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/MethodDraw.cs b/Ryujinx.Graphics.Gpu/Engine/MethodDraw.cs
index 68131f62..d70402e9 100644
--- a/Ryujinx.Graphics.Gpu/Engine/MethodDraw.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/MethodDraw.cs
@@ -35,17 +35,22 @@ namespace Ryujinx.Graphics.Gpu.Engine
/// <param name="argument">Method call argument</param>
private void DrawEnd(GpuState state, int argument)
{
- bool renderEnable = GetRenderEnable(state);
+ ConditionalRenderEnabled renderEnable = GetRenderEnable(state);
- if (!renderEnable || _instancedDrawPending)
+ if (renderEnable == ConditionalRenderEnabled.False || _instancedDrawPending)
{
- if (!renderEnable)
+ if (renderEnable == ConditionalRenderEnabled.False)
{
PerformDeferredDraws();
}
_drawIndexed = false;
+ if (renderEnable == ConditionalRenderEnabled.Host)
+ {
+ _context.Renderer.Pipeline.EndHostConditionalRendering();
+ }
+
return;
}
@@ -72,6 +77,11 @@ namespace Ryujinx.Graphics.Gpu.Engine
_drawIndexed = false;
+ if (renderEnable == ConditionalRenderEnabled.Host)
+ {
+ _context.Renderer.Pipeline.EndHostConditionalRendering();
+ }
+
return;
}
@@ -100,6 +110,11 @@ namespace Ryujinx.Graphics.Gpu.Engine
drawState.First,
firstInstance);
}
+
+ if (renderEnable == ConditionalRenderEnabled.Host)
+ {
+ _context.Renderer.Pipeline.EndHostConditionalRendering();
+ }
}
/// <summary>