mirror of
https://git.ryujinx.app/kenji-nx/ryujinx.git
synced 2025-12-12 19:37:06 +00:00
audio effects fix and audio object pooling
Revert and reimplement Float BiquadFilterEffect support, fixes infinite load issues in a few games like Splatoon 3. Fix incorrect string check with the new thread naming system. Implement object pooling for all Audio Commands and a few other audio related objects and use a growing error list for updating wave buffers instead of always allocating space for 8 errors.
This commit is contained in:
parent
86f47b8333
commit
cdbe568620
43 changed files with 763 additions and 602 deletions
|
|
@ -338,7 +338,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
|||
|
||||
bool performanceInitialized = false;
|
||||
|
||||
PerformanceEntryAddresses performanceEntry = new();
|
||||
PerformanceEntryAddresses performanceEntry = null;
|
||||
|
||||
if (_performanceManager != null && _performanceManager.IsTargetNodeId(nodeId) && _performanceManager.GetNextEntry(out performanceEntry, dataSourceDetailType, PerformanceEntryType.Voice, nodeId))
|
||||
{
|
||||
|
|
@ -499,7 +499,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
|||
{
|
||||
int nodeId = sortedInfo.NodeId;
|
||||
|
||||
PerformanceEntryAddresses performanceEntry = new();
|
||||
PerformanceEntryAddresses performanceEntry = null;
|
||||
|
||||
bool performanceInitialized = false;
|
||||
|
||||
|
|
@ -785,7 +785,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
|||
|
||||
bool isFinalMix = mix.MixId == Constants.FinalMixId;
|
||||
|
||||
PerformanceEntryAddresses performanceEntry = new();
|
||||
PerformanceEntryAddresses performanceEntry = null;
|
||||
|
||||
bool performanceInitialized = false;
|
||||
|
||||
|
|
@ -1049,7 +1049,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
|||
|
||||
GenerateEffects(ref subMix);
|
||||
|
||||
PerformanceEntryAddresses performanceEntry = new();
|
||||
PerformanceEntryAddresses performanceEntry = null;
|
||||
|
||||
int nodeId = subMix.NodeId;
|
||||
|
||||
|
|
@ -1080,7 +1080,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
|||
{
|
||||
int nodeId = sortedInfo.NodeId;
|
||||
|
||||
PerformanceEntryAddresses performanceEntry = new();
|
||||
PerformanceEntryAddresses performanceEntry = null;
|
||||
|
||||
bool performanceInitialized = false;
|
||||
|
||||
|
|
@ -1114,7 +1114,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
|||
|
||||
GenerateEffects(ref finalMix);
|
||||
|
||||
PerformanceEntryAddresses performanceEntry = new();
|
||||
PerformanceEntryAddresses performanceEntry = null;
|
||||
|
||||
int nodeId = finalMix.NodeId;
|
||||
|
||||
|
|
@ -1163,7 +1163,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
|||
{
|
||||
int nodeId = _mixContext.GetFinalState().NodeId;
|
||||
|
||||
PerformanceEntryAddresses performanceEntry = new();
|
||||
PerformanceEntryAddresses performanceEntry = null;
|
||||
|
||||
bool performanceInitialized = false;
|
||||
|
||||
|
|
@ -1243,7 +1243,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
|||
{
|
||||
bool performanceInitialized = false;
|
||||
|
||||
PerformanceEntryAddresses performanceEntry = new();
|
||||
PerformanceEntryAddresses performanceEntry = null;
|
||||
|
||||
if (_performanceManager != null && _performanceManager.GetNextEntry(out performanceEntry, PerformanceEntryType.Sink, sink.NodeId))
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue