aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/SplitterContext.cs
diff options
context:
space:
mode:
authorAc_K <Acoustik666@gmail.com>2019-09-20 01:49:05 +0200
committerThomas Guillemard <me@thog.eu>2019-09-20 01:49:05 +0200
commitf17b772c56cf73ac539b4c8c47e0a7c8f29dae5a (patch)
treedbc043dbea8502a2978f1ac7809f14884bd8d3ff /Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/SplitterContext.cs
parenta0720b5681852f3d786d77bd3793b0359dea321c (diff)
audren: Fix AudioRenderer implementation (#773)
* Fix AudioRenderer implementation According to RE: - `GetAudioRendererWorkBufferSize` is updated and improved to support `REV7` - `RequestUpdateAudioRenderer` is updated to `REV7` too Should improve results on recent game and close #718 and #707 * Fix NodeStates.GetWorkBufferSize * Use BitUtils instead of IntUtils * Nits
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/SplitterContext.cs')
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/SplitterContext.cs25
1 files changed, 25 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/SplitterContext.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/SplitterContext.cs
new file mode 100644
index 00000000..e46af443
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/SplitterContext.cs
@@ -0,0 +1,25 @@
+using Ryujinx.Common;
+
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
+{
+ class SplitterContext
+ {
+ public static long CalcWorkBufferSize(BehaviorInfo behaviorInfo, AudioRendererParameter parameters)
+ {
+ if (!behaviorInfo.IsSplitterSupported())
+ {
+ return 0;
+ }
+
+ long size = parameters.SplitterDestinationDataCount * 0xE0 +
+ parameters.SplitterCount * 0x20;
+
+ if (!behaviorInfo.IsSplitterBugFixed())
+ {
+ size += BitUtils.AlignUp(4 * parameters.SplitterDestinationDataCount, 16);
+ }
+
+ return size;
+ }
+ }
+} \ No newline at end of file