aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs')
-rw-r--r--Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs19
1 files changed, 12 insertions, 7 deletions
diff --git a/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs b/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs
index 904b56f6..af163ae0 100644
--- a/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs
+++ b/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs
@@ -55,7 +55,6 @@ namespace Ryujinx.Audio.Renderer.Server
private uint _processHandle;
private ulong _appletResourceId;
- private WritableRegion _workBufferRegion;
private MemoryHandle _workBufferMemoryPin;
private Memory<float> _mixBuffer;
@@ -98,7 +97,15 @@ namespace Ryujinx.Audio.Renderer.Server
_sessionId = 0;
}
- public ResultCode Initialize(ref AudioRendererConfiguration parameter, uint processHandle, CpuAddress workBuffer, ulong workBufferSize, int sessionId, ulong appletResourceId, IVirtualMemoryManager memoryManager)
+ public ResultCode Initialize(
+ ref AudioRendererConfiguration parameter,
+ uint processHandle,
+ Memory<byte> workBufferMemory,
+ CpuAddress workBuffer,
+ ulong workBufferSize,
+ int sessionId,
+ ulong appletResourceId,
+ IVirtualMemoryManager memoryManager)
{
if (!BehaviourContext.CheckValidRevision(parameter.Revision))
{
@@ -134,11 +141,10 @@ namespace Ryujinx.Audio.Renderer.Server
WorkBufferAllocator workBufferAllocator;
- _workBufferRegion = MemoryManager.GetWritableRegion(workBuffer, (int)workBufferSize);
- _workBufferRegion.Memory.Span.Fill(0);
- _workBufferMemoryPin = _workBufferRegion.Memory.Pin();
+ workBufferMemory.Span.Fill(0);
+ _workBufferMemoryPin = workBufferMemory.Pin();
- workBufferAllocator = new WorkBufferAllocator(_workBufferRegion.Memory);
+ workBufferAllocator = new WorkBufferAllocator(workBufferMemory);
PoolMapper poolMapper = new PoolMapper(processHandle, false);
poolMapper.InitializeSystemPool(ref _dspMemoryPoolState, workBuffer, workBufferSize);
@@ -841,7 +847,6 @@ namespace Ryujinx.Audio.Renderer.Server
_manager.Unregister(this);
_terminationEvent.Dispose();
_workBufferMemoryPin.Dispose();
- _workBufferRegion.Dispose();
if (MemoryManager is IRefCounted rc)
{