aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Audio/Renderer/Dsp/Command/CircularBufferSinkCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Audio/Renderer/Dsp/Command/CircularBufferSinkCommand.cs')
-rw-r--r--Ryujinx.Audio/Renderer/Dsp/Command/CircularBufferSinkCommand.cs23
1 files changed, 13 insertions, 10 deletions
diff --git a/Ryujinx.Audio/Renderer/Dsp/Command/CircularBufferSinkCommand.cs b/Ryujinx.Audio/Renderer/Dsp/Command/CircularBufferSinkCommand.cs
index e4c635d5..f82ea070 100644
--- a/Ryujinx.Audio/Renderer/Dsp/Command/CircularBufferSinkCommand.cs
+++ b/Ryujinx.Audio/Renderer/Dsp/Command/CircularBufferSinkCommand.cs
@@ -69,20 +69,23 @@ namespace Ryujinx.Audio.Renderer.Dsp.Command
{
for (int i = 0; i < InputCount; i++)
{
- ReadOnlySpan<float> inputBuffer = context.GetBuffer(Input[i]);
+ unsafe
+ {
+ float* inputBuffer = (float*)context.GetBufferPointer(Input[i]);
- ulong targetOffset = CircularBuffer + currentOffset;
+ ulong targetOffset = CircularBuffer + currentOffset;
- for (int y = 0; y < context.SampleCount; y++)
- {
- context.MemoryManager.Write(targetOffset + (ulong)y * targetChannelCount, PcmHelper.Saturate(inputBuffer[y]));
- }
+ for (int y = 0; y < context.SampleCount; y++)
+ {
+ context.MemoryManager.Write(targetOffset + (ulong)y * targetChannelCount, PcmHelper.Saturate(inputBuffer[y]));
+ }
- currentOffset += context.SampleCount * targetChannelCount;
+ currentOffset += context.SampleCount * targetChannelCount;
- if (currentOffset >= CircularBufferSize)
- {
- currentOffset = 0;
+ if (currentOffset >= CircularBufferSize)
+ {
+ currentOffset = 0;
+ }
}
}
}