From b439a52ac7651435fcbee56e971dce071b17f6ae Mon Sep 17 00:00:00 2001
From: Isaac Marovitz <isaacryu@icloud.com>
Date: Sun, 14 Jan 2024 12:33:59 -0500
Subject: [PATCH] Get it building again

---
 src/Ryujinx.Graphics.Metal/MetalRenderer.cs          | 12 ++++++++++++
 .../Ryujinx.Graphics.Metal.csproj                    |  6 +++---
 src/Ryujinx/AppHost.cs                               |  2 +-
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/Ryujinx.Graphics.Metal/MetalRenderer.cs b/src/Ryujinx.Graphics.Metal/MetalRenderer.cs
index 5ecaf7575..9b9d297cc 100644
--- a/src/Ryujinx.Graphics.Metal/MetalRenderer.cs
+++ b/src/Ryujinx.Graphics.Metal/MetalRenderer.cs
@@ -52,6 +52,11 @@ namespace Ryujinx.Graphics.Metal
             return CreateBuffer(size, BufferAccess.Default);
         }
 
+        public BufferHandle CreateBuffer(int size, BufferAccess access, BufferHandle storageHint)
+        {
+            throw new NotImplementedException();
+        }
+
         public BufferHandle CreateBuffer(IntPtr pointer, int size)
         {
             var buffer = _device.NewBuffer(pointer, (ulong)size, MTLResourceOptions.ResourceStorageModeShared);
@@ -59,6 +64,11 @@ namespace Ryujinx.Graphics.Metal
             return Unsafe.As<IntPtr, BufferHandle>(ref bufferPtr);
         }
 
+        public BufferHandle CreateBufferSparse(ReadOnlySpan<BufferRange> storageBuffers)
+        {
+            throw new NotImplementedException();
+        }
+
         public BufferHandle CreateBuffer(int size, BufferAccess access)
         {
             var buffer = _device.NewBuffer((ulong)size, MTLResourceOptions.ResourceStorageModeShared);
@@ -150,6 +160,7 @@ namespace Ryujinx.Graphics.Metal
                 supportsR4G4Format: false,
                 supportsR4G4B4A4Format: true,
                 supportsSnormBufferTextureFormat: true,
+                supportsSparseBuffer: false,
                 supports5BitComponentFormat: true,
                 supportsBlendEquationAdvanced: false,
                 supportsFragmentShaderInterlock: true,
@@ -166,6 +177,7 @@ namespace Ryujinx.Graphics.Metal
                 supportsShaderBallot: false,
                 supportsShaderBarrierDivergence: false,
                 supportsShaderFloat64: false,
+                supportsTextureGatherOffsets: false,
                 supportsTextureShadowLod: false,
                 supportsVertexStoreAndAtomics: false,
                 supportsViewportIndexVertexTessellation: false,
diff --git a/src/Ryujinx.Graphics.Metal/Ryujinx.Graphics.Metal.csproj b/src/Ryujinx.Graphics.Metal/Ryujinx.Graphics.Metal.csproj
index 529666b9d..46f2d070d 100644
--- a/src/Ryujinx.Graphics.Metal/Ryujinx.Graphics.Metal.csproj
+++ b/src/Ryujinx.Graphics.Metal/Ryujinx.Graphics.Metal.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
     <PropertyGroup>
-        <TargetFramework>net7.0</TargetFramework>
+        <TargetFramework>net8.0</TargetFramework>
         <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     </PropertyGroup>
 
@@ -9,7 +9,7 @@
         <ProjectReference Include="..\Ryujinx.Common\Ryujinx.Common.csproj" />
         <ProjectReference Include="..\Ryujinx.Graphics.GAL\Ryujinx.Graphics.GAL.csproj" />
     </ItemGroup>
-    
+
     <ItemGroup>
       <PackageReference Include="SharpMetal" />
     </ItemGroup>
@@ -18,4 +18,4 @@
       <EmbeddedResource Include="HelperShadersSource.metal" />
     </ItemGroup>
 
-</Project>
\ No newline at end of file
+</Project>
diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs
index 8566afb20..eee17d206 100644
--- a/src/Ryujinx/AppHost.cs
+++ b/src/Ryujinx/AppHost.cs
@@ -1072,7 +1072,7 @@ namespace Ryujinx.Ava
             StatusUpdatedEvent?.Invoke(this, new StatusUpdatedEventArgs(
                 Device.EnableDeviceVsync,
                 LocaleManager.Instance[LocaleKeys.VolumeShort] + $": {(int)(Device.GetVolume() * 100)}%",
-                ConfigurationState.Instance.Graphics.GraphicsBackend.Value.ToText(),
+                ConfigurationState.Instance.Graphics.GraphicsBackend.Value.ToString(),
                 dockedMode,
                 ConfigurationState.Instance.Graphics.AspectRatio.Value.ToText(),
                 LocaleManager.Instance[LocaleKeys.Game] + $": {Device.Statistics.GetGameFrameRate():00.00} FPS ({Device.Statistics.GetGameFrameTime():00.00} ms)",