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,16 @@
namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
{
static class CommandGenerator
{
public static long CalculateCommandBufferSize(AudioRendererParameter parameters)
{
return parameters.EffectCount * 0x840 +
parameters.SubMixCount * 0x5A38 +
parameters.SinkCount * 0x148 +
parameters.SplitterDestinationDataCount * 0x540 +
(parameters.SplitterCount * 0x68 + 0x2E0) * parameters.VoiceCount +
((parameters.VoiceCount + parameters.SubMixCount + parameters.EffectCount + parameters.SinkCount + 0x65) << 6) +
0x3F8;
}
}
}