WIP V2: Experimental: Metal backend #441

Merged
GreemDev merged 369 commits from new-metal into master 2024-12-24 06:55:16 +00:00
2 changed files with 8 additions and 4 deletions
Showing only changes of commit 327c1576f7 - Show all commits

View File

@ -66,7 +66,8 @@ namespace Ryujinx.Graphics.Metal
SetBuffers(renderCommandEncoder, _currentState.StorageBuffers, true);
SetCullMode(renderCommandEncoder);
SetFrontFace(renderCommandEncoder);
} else
}
else
{
Logger.Error?.Print(LogClass.Gpu, "No state to restore");
}
@ -302,7 +303,8 @@ namespace Ryujinx.Graphics.Metal
if (depthStencil is Texture depthTexture)
{
_currentState.DepthStencil = depthTexture;
} else if (depthStencil == null)
}
else if (depthStencil == null)
{
_currentState.DepthStencil = null;
}

View File

@ -202,14 +202,16 @@ namespace Ryujinx.Graphics.Metal
var scope = MTLBarrierScope.Buffers | MTLBarrierScope.Textures | MTLBarrierScope.RenderTargets;
MTLRenderStages stages = MTLRenderStages.RenderStageVertex | MTLRenderStages.RenderStageFragment;
renderCommandEncoder.MemoryBarrier(scope, stages, stages);
} else if (_currentEncoderType == EncoderType.Compute)
}
else if (_currentEncoderType == EncoderType.Compute)
{
var computeCommandEncoder = GetOrCreateComputeEncoder();
// TODO: Should there be a barrier on render targets?
var scope = MTLBarrierScope.Buffers | MTLBarrierScope.Textures;
computeCommandEncoder.MemoryBarrier(scope);
} else
}
else
{
Logger.Warning?.Print(LogClass.Gpu, "Barrier called outside of a render or compute pass");
}