This commit is contained in:
Isaac Marovitz 2024-05-18 20:40:37 -04:00
parent 07e329a37c
commit 0a7cec1a29
No known key found for this signature in database
GPG Key ID: 97250B2B09A132E1
3 changed files with 11 additions and 10 deletions

View File

@ -14,16 +14,15 @@ namespace Ryujinx.Graphics.Metal
struct EncoderStateManager
{
private readonly MTLDevice _device;
private Pipeline _pipeline;
private readonly Pipeline _pipeline;
private EncoderState _currentState = new();
private EncoderState _backState = new();
// Public accessors
public MTLBuffer IndexBuffer => _currentState.IndexBuffer;
public MTLIndexType IndexType => _currentState.IndexType;
public ulong IndexBufferOffset => _currentState.IndexBufferOffset;
public PrimitiveTopology Topology => _currentState.Topology;
public readonly MTLBuffer IndexBuffer => _currentState.IndexBuffer;
public readonly MTLIndexType IndexType => _currentState.IndexType;
public readonly ulong IndexBufferOffset => _currentState.IndexBufferOffset;
public readonly PrimitiveTopology Topology => _currentState.Topology;
public EncoderStateManager(MTLDevice device, Pipeline pipeline)
{
@ -495,7 +494,7 @@ namespace Ryujinx.Graphics.Metal
}
// Inlineable
public void UpdateTextureAndSampler(ShaderStage stage, ulong binding, MTLTexture texture, MTLSamplerState sampler)
public readonly void UpdateTextureAndSampler(ShaderStage stage, ulong binding, MTLTexture texture, MTLSamplerState sampler)
{
switch (stage)
{

View File

@ -186,8 +186,10 @@ namespace Ryujinx.Graphics.Metal
{
switch (format)
{
case MTLPixelFormat.Depth24UnormStencil8: return MTLPixelFormat.X24Stencil8;
case MTLPixelFormat.Depth32FloatStencil8: return MTLPixelFormat.X32Stencil8;
case MTLPixelFormat.Depth24UnormStencil8:
return MTLPixelFormat.X24Stencil8;
case MTLPixelFormat.Depth32FloatStencil8:
return MTLPixelFormat.X32Stencil8;
default:
Logger.Warning?.PrintMsg(LogClass.Gpu, $"Attempted to get stencil format for non packed format {format}!");
return MTLPixelFormat.Invalid;

View File

@ -19,8 +19,8 @@ namespace Ryujinx.Graphics.Metal
class HelperShader : IDisposable
{
private const string ShadersSourcePath = "/Ryujinx.Graphics.Metal/Shaders";
private readonly Pipeline _pipeline;
private MTLDevice _device;
private Pipeline _pipeline;
private readonly IProgram _programColorBlit;
private readonly IProgram _programColorClearF;