aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2022-01-16 20:23:00 -0300
committerGitHub <noreply@github.com>2022-01-16 20:23:00 -0300
commitfb853f13e92be33a2b75984cbb5c3921a9660019 (patch)
tree616e61a8ab356855520ca30d299a217739a8253d /Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs
parent929a97d432d98b4270a78cb668d543c23cc2836a (diff)
Scale scissor used for clears (#3002)
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs9
1 files changed, 9 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs b/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs
index b705d63e..76141215 100644
--- a/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/Threed/DrawManager.cs
@@ -535,6 +535,15 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
scissorH = Math.Min(scissorH, scissorState.Y2 - scissorState.Y1);
}
+ float scale = _channel.TextureManager.RenderTargetScale;
+ if (scale != 1f)
+ {
+ scissorX = (int)(scissorX * scale);
+ scissorY = (int)(scissorY * scale);
+ scissorW = (int)MathF.Ceiling(scissorW * scale);
+ scissorH = (int)MathF.Ceiling(scissorH * scale);
+ }
+
_context.Renderer.Pipeline.SetScissor(0, true, scissorX, scissorY, scissorW, scissorH);
}