diff --git a/src/Ryujinx.Audio/Renderer/Server/Splitter/SplitterContext.cs b/src/Ryujinx.Audio/Renderer/Server/Splitter/SplitterContext.cs index 82eeae90d4..3efa783c37 100644 --- a/src/Ryujinx.Audio/Renderer/Server/Splitter/SplitterContext.cs +++ b/src/Ryujinx.Audio/Renderer/Server/Splitter/SplitterContext.cs @@ -153,9 +153,7 @@ namespace Ryujinx.Audio.Renderer.Server.Splitter { for (int i = 0; i < inputHeader.SplitterCount; i++) { - // NOTE: this Rewind/Advance logic is done here to mimic the behavior of the previous implementation. ref readonly SplitterInParameter parameter = ref input.GetRefOrRefToCopy(out _); - input.Rewind(Unsafe.SizeOf()); Debug.Assert(parameter.IsMagicValid()); @@ -165,15 +163,15 @@ namespace Ryujinx.Audio.Renderer.Server.Splitter { ref SplitterState splitter = ref GetState(parameter.Id); - input.Advance(Unsafe.SizeOf()); splitter.Update(this, in parameter, ref input); } - // NOTE: there are 12 bytes of unused (or unknown?) data after the destination IDs array. + // NOTE: there are 12 bytes of unused/unknown data after the destination IDs array. input.Advance(0xC); } else { + input.Rewind(Unsafe.SizeOf()); break; } } @@ -188,9 +186,7 @@ namespace Ryujinx.Audio.Renderer.Server.Splitter { for (int i = 0; i < inputHeader.SplitterDestinationCount; i++) { - // NOTE: this Rewind/Advance logic is done here to mimic the behavior of the previous implementation. ref readonly SplitterDestinationInParameter parameter = ref input.GetRefOrRefToCopy(out _); - input.Rewind(Unsafe.SizeOf()); Debug.Assert(parameter.IsMagicValid()); @@ -202,11 +198,10 @@ namespace Ryujinx.Audio.Renderer.Server.Splitter destination.Update(parameter); } - - input.Advance(Unsafe.SizeOf()); } else { + input.Rewind(Unsafe.SizeOf()); break; } }