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
This commit is contained in:
Ac_K 2019-09-20 01:49:05 +02:00 committed by Thomas Guillemard
parent a0720b5681
commit f17b772c56
15 changed files with 244 additions and 110 deletions

View file

@ -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;
}
}
}