Fix some crashes

This commit is contained in:
Isaac Marovitz 2024-03-19 22:58:42 -04:00
parent 0f41219e5f
commit 3e40dd08ec
No known key found for this signature in database
GPG Key ID: 97250B2B09A132E1
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;
}
}
}