From 8d7be4fe259cf714dcaafa030677ad8ba70c339f Mon Sep 17 00:00:00 2001
From: Samuliak <samuliak77@gmail.com>
Date: Sat, 25 May 2024 09:51:56 +0200
Subject: [PATCH] reset certain state before doing blit or clear

---
 src/Ryujinx.Graphics.Metal/HelperShader.cs | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/Ryujinx.Graphics.Metal/HelperShader.cs b/src/Ryujinx.Graphics.Metal/HelperShader.cs
index 99ef00b2c..35c02a90d 100644
--- a/src/Ryujinx.Graphics.Metal/HelperShader.cs
+++ b/src/Ryujinx.Graphics.Metal/HelperShader.cs
@@ -73,6 +73,8 @@ namespace Ryujinx.Graphics.Metal
             _pipeline.SaveState();
 
             _pipeline.SetProgram(_programColorBlit);
+            _pipeline.SetFaceCulling(false, Face.Front);
+            _pipeline.SetDepthTest(new DepthTestDescriptor(false, false, CompareOp.Always));
             // Viewport and scissor needs to be set before render pass begin so as not to bind the old ones
             _pipeline.SetViewports([]);
             _pipeline.SetScissors([]);
@@ -110,6 +112,8 @@ namespace Ryujinx.Graphics.Metal
             _pipeline.SetUniformBuffers([new BufferAssignment(0, range)]);
 
             _pipeline.SetProgram(_programsColorClear[index]);
+            _pipeline.SetFaceCulling(false, Face.Front);
+            _pipeline.SetDepthTest(new DepthTestDescriptor(false, false, CompareOp.Always));
             // _pipeline.SetRenderTargetColorMasks([componentMask]);
             _pipeline.SetPrimitiveTopology(PrimitiveTopology.TriangleStrip);
             _pipeline.Draw(4, 1, 0, 0);
@@ -145,6 +149,8 @@ namespace Ryujinx.Graphics.Metal
             _pipeline.SetUniformBuffers([new BufferAssignment(0, range)]);
 
             _pipeline.SetProgram(_programDepthStencilClear);
+            _pipeline.SetFaceCulling(false, Face.Front);
+            _pipeline.SetDepthTest(new DepthTestDescriptor(false, false, CompareOp.Always));
             _pipeline.SetPrimitiveTopology(PrimitiveTopology.TriangleStrip);
             _pipeline.SetDepthTest(new DepthTestDescriptor(true, depthMask, CompareOp.Always));
             // _pipeline.SetStencilTest(CreateStencilTestDescriptor(stencilMask != 0, stencilValue, 0xFF, stencilMask));