diff --git a/src/Ryujinx.Graphics.Metal/Pipeline.cs b/src/Ryujinx.Graphics.Metal/Pipeline.cs index f1dcd19c0..91afb33bf 100644 --- a/src/Ryujinx.Graphics.Metal/Pipeline.cs +++ b/src/Ryujinx.Graphics.Metal/Pipeline.cs @@ -48,12 +48,16 @@ namespace Ryujinx.Graphics.Metal public MTLRenderCommandEncoder GetOrCreateRenderEncoder() { + MTLRenderCommandEncoder renderCommandEncoder; + if (_currentEncoder == null || _currentEncoderType != EncoderType.Render) { - BeginRenderPass(); + renderCommandEncoder = BeginRenderPass(); + } + else + { + renderCommandEncoder = new MTLRenderCommandEncoder(_currentEncoder.Value); } - - var renderCommandEncoder = new MTLRenderCommandEncoder(_currentEncoder.Value); _encoderStateManager.RebindState(renderCommandEncoder);