Fix some crashes

This commit is contained in:
Isaac Marovitz 2024-03-19 22:58:42 -04:00 committed by Isaac Marovitz
parent 54c8dabadc
commit c0bb55cf5e
2 changed files with 15 additions and 10 deletions

View file

@ -14,7 +14,8 @@ namespace Ryujinx.Graphics.Metal
{
Blit,
Compute,
Render
Render,
None
}
[SupportedOSPlatform("macos")]
@ -26,7 +27,7 @@ namespace Ryujinx.Graphics.Metal
private MTLCommandBuffer _commandBuffer;
private MTLCommandEncoder? _currentEncoder;
private EncoderType _currentEncoderType;
private EncoderType _currentEncoderType = EncoderType.None;
private MTLTexture[] _renderTargets = [];
private RenderEncoderState _renderEncoderState;
@ -112,6 +113,8 @@ namespace Ryujinx.Graphics.Metal
default:
throw new ArgumentOutOfRangeException();
}
_currentEncoderType = EncoderType.None;
}
}

View file

@ -18,8 +18,8 @@ namespace Ryujinx.Graphics.Metal
private MTLCompareFunction _depthCompareFunction = MTLCompareFunction.Always;
private bool _depthWriteEnabled = false;
private MTLStencilDescriptor? _backFaceStencil = null;
private MTLStencilDescriptor? _frontFaceStencil = null;
private MTLStencilDescriptor _backFaceStencil = new MTLStencilDescriptor();
private MTLStencilDescriptor _frontFaceStencil = new MTLStencilDescriptor();
public PrimitiveTopology Topology = PrimitiveTopology.Triangles;
public MTLCullMode CullMode = MTLCullMode.None;
@ -83,8 +83,8 @@ namespace Ryujinx.Graphics.Metal
{
DepthCompareFunction = _depthCompareFunction,
DepthWriteEnabled = _depthWriteEnabled,
BackFaceStencil = _backFaceStencil.Value,
FrontFaceStencil = _frontFaceStencil.Value
BackFaceStencil = _backFaceStencil,
FrontFaceStencil = _frontFaceStencil
});
return _depthStencilState.Value;
@ -95,15 +95,17 @@ namespace Ryujinx.Graphics.Metal
_depthCompareFunction = depthCompareFunction;
_depthWriteEnabled = depthWriteEnabled;
_depthStencilState = _device.NewDepthStencilState(new MTLDepthStencilDescriptor
var state = _device.NewDepthStencilState(new MTLDepthStencilDescriptor
{
DepthCompareFunction = _depthCompareFunction,
DepthWriteEnabled = _depthWriteEnabled,
BackFaceStencil = _backFaceStencil.Value,
FrontFaceStencil = _frontFaceStencil.Value
BackFaceStencil = _backFaceStencil,
FrontFaceStencil = _frontFaceStencil
});
return _depthStencilState.Value;
_depthStencilState = state;
return state;
}
}
}