Start Proper Dispose

This commit is contained in:
Isaac Marovitz
2024-05-23 13:15:23 -04:00
committed by Evan Husted
parent 94e077ca27
commit 58fb8564a8
5 changed files with 17 additions and 11 deletions

View File

@@ -215,17 +215,19 @@ namespace Ryujinx.Graphics.Metal
{
var blitEncoder = _pipeline.GetOrCreateBlitEncoder();
MTLBuffer src = _device.NewBuffer((ulong)data.Length, MTLResourceOptions.ResourceStorageModeManaged);
var span = new Span<byte>(src.Contents.ToPointer(), data.Length);
data.CopyTo(span);
src.DidModifyRange(new NSRange
using MTLBuffer src = _device.NewBuffer((ulong)data.Length, MTLResourceOptions.ResourceStorageModeManaged);
{
location = 0,
length = (ulong)data.Length
});
var span = new Span<byte>(src.Contents.ToPointer(), data.Length);
data.CopyTo(span);
src.DidModifyRange(new NSRange
{
location = 0,
length = (ulong)data.Length
});
MTLBuffer dst = new(Unsafe.As<BufferHandle, IntPtr>(ref buffer));
blitEncoder.CopyFromBuffer(src, 0, dst, (ulong)offset, (ulong)data.Length);
MTLBuffer dst = new(Unsafe.As<BufferHandle, IntPtr>(ref buffer));
blitEncoder.CopyFromBuffer(src, 0, dst, (ulong)offset, (ulong)data.Length);
}
}
public void UpdateCounters()

View File

@@ -63,7 +63,9 @@ namespace Ryujinx.Graphics.Metal
public void Dispose()
{
return;
VertexFunction.Dispose();
FragmentFunction.Dispose();
ComputeFunction.Dispose();
}
}
}

View File

@@ -45,6 +45,7 @@ namespace Ryujinx.Graphics.Metal
public void Dispose()
{
_mtlSamplerState.Dispose();
}
}
}

View File

@@ -329,6 +329,7 @@ namespace Ryujinx.Graphics.Metal
public void Dispose()
{
MTLTexture.SetPurgeableState(MTLPurgeableState.Volatile);
MTLTexture.Dispose();
}
}
}