WIP V2: Experimental: Metal backend #441

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

View File

@ -35,7 +35,12 @@ namespace Ryujinx.Graphics.Metal
public void Use(MTLCommandQueue queue, IEncoderFactory stateManager) public void Use(MTLCommandQueue queue, IEncoderFactory stateManager)
{ {
CommandBuffer = queue.CommandBuffer(); MTLCommandBufferDescriptor descriptor = new();
#if DEBUG
descriptor.ErrorOptions = MTLCommandBufferErrorOption.EncoderExecutionStatus;
#endif
CommandBuffer = queue.CommandBuffer(descriptor);
Fence = new FenceHolder(CommandBuffer); Fence = new FenceHolder(CommandBuffer);
Encoders.Initialize(CommandBuffer, stateManager); Encoders.Initialize(CommandBuffer, stateManager);

View File

@ -137,7 +137,6 @@ namespace Ryujinx.Graphics.Metal
}; };
} }
// TODO: Metal does not have native support for Triangle Fans but it is possible to emulate with TriangleStrip and moving around the indices
public static MTLPrimitiveType Convert(this PrimitiveTopology topology) public static MTLPrimitiveType Convert(this PrimitiveTopology topology)
{ {
return topology switch return topology switch

View File

@ -59,6 +59,9 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
public static void Declare(CodeGenContext context, StructuredProgramInfo info) public static void Declare(CodeGenContext context, StructuredProgramInfo info)
{ {
// TODO: Re-enable this warning
context.AppendLine("#pragma clang diagnostic ignored \"-Wunused-variable\"");
context.AppendLine();
context.AppendLine("#include <metal_stdlib>"); context.AppendLine("#include <metal_stdlib>");
context.AppendLine("#include <simd/simd.h>"); context.AppendLine("#include <simd/simd.h>");
context.AppendLine(); context.AppendLine();