diff --git a/Directory.Packages.props b/Directory.Packages.props
index 7f25b7b791..cfb884d01a 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -38,7 +38,7 @@
     <PackageVersion Include="Ryujinx.SDL2-CS" Version="2.30.0-build32" />
     <PackageVersion Include="securifybv.ShellLink" Version="0.1.0" />
     <PackageVersion Include="shaderc.net" Version="0.1.0" />
-    <PackageVersion Include="SharpMetal" Version="1.0.0-preview11" />
+    <PackageVersion Include="SharpMetal" Version="1.0.0-preview12" />
     <PackageVersion Include="SharpZipLib" Version="1.4.2" />
     <PackageVersion Include="Silk.NET.Vulkan" Version="2.21.0" />
     <PackageVersion Include="Silk.NET.Vulkan.Extensions.EXT" Version="2.21.0" />
diff --git a/src/Ryujinx.Graphics.Metal/Pipeline.cs b/src/Ryujinx.Graphics.Metal/Pipeline.cs
index 3699b8f611..a3856a016d 100644
--- a/src/Ryujinx.Graphics.Metal/Pipeline.cs
+++ b/src/Ryujinx.Graphics.Metal/Pipeline.cs
@@ -521,11 +521,8 @@ namespace Ryujinx.Graphics.Metal
 
             fixed (MTLScissorRect* pMtlScissorRects = mtlScissorRects)
             {
-                // TODO: Fix this function which currently wont accept pointer as intended
-                if (_currentEncoderType == EncoderType.Render)
-                {
-                    // new MTLRenderCommandEncoder(_currentEncoder.Value).SetScissorRects(pMtlScissorRects, (ulong)regions.Length);
-                }
+                var renderCommandEncoder = GetOrCreateRenderEncoder();
+                renderCommandEncoder.SetScissorRects((IntPtr)pMtlScissorRects, (ulong)regions.Length);
             }
         }
 
@@ -670,11 +667,8 @@ namespace Ryujinx.Graphics.Metal
 
             fixed (MTLViewport* pMtlViewports = mtlViewports)
             {
-                // TODO: Fix this function which currently wont accept pointer as intended
-                if (_currentEncoderType == EncoderType.Render)
-                {
-                    // new MTLRenderCommandEncoder(_currentEncoder.Value).SetViewports(pMtlViewports, (ulong)regions.Length);
-                }
+                var renderCommandEncoder = GetOrCreateRenderEncoder();
+                renderCommandEncoder.SetViewports((IntPtr)pMtlViewports, (ulong)viewports.Length);
             }
         }