Formatting
This commit is contained in:
parent
a7b6244407
commit
c099df0c39
3 changed files with 142 additions and 117 deletions
|
@ -382,7 +382,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
/// <param name="bufferCount">The buffer count.</param>
|
/// <param name="bufferCount">The buffer count.</param>
|
||||||
/// <param name="nodeId">The node id associated to this command.</param>
|
/// <param name="nodeId">The node id associated to this command.</param>
|
||||||
/// <param name="sampleRate">The target sample rate in use.</param>
|
/// <param name="sampleRate">The target sample rate in use.</param>
|
||||||
public void GenerateDepopForMixBuffersCommand(Memory<float> depopBuffer, uint bufferOffset, uint bufferCount, int nodeId, uint sampleRate)
|
public void GenerateDepopForMixBuffers(Memory<float> depopBuffer, uint bufferOffset, uint bufferCount, int nodeId, uint sampleRate)
|
||||||
{
|
{
|
||||||
DepopForMixBuffersCommand command = new(depopBuffer, bufferOffset, bufferCount, nodeId, sampleRate);
|
DepopForMixBuffersCommand command = new(depopBuffer, bufferOffset, bufferCount, nodeId, sampleRate);
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
{
|
{
|
||||||
ref MixState mix = ref _mixContext.GetState(voiceState.MixId);
|
ref MixState mix = ref _mixContext.GetState(voiceState.MixId);
|
||||||
|
|
||||||
_commandBuffer.GenerateDepopPrepare(dspState,
|
_commandBuffer.GenerateDepopPrepare(
|
||||||
|
dspState,
|
||||||
_rendererContext.DepopBuffer,
|
_rendererContext.DepopBuffer,
|
||||||
mix.BufferCount,
|
mix.BufferCount,
|
||||||
mix.BufferOffset,
|
mix.BufferOffset,
|
||||||
|
@ -75,7 +76,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
{
|
{
|
||||||
ref MixState mix = ref _mixContext.GetState(mixId);
|
ref MixState mix = ref _mixContext.GetState(mixId);
|
||||||
|
|
||||||
_commandBuffer.GenerateDepopPrepare(dspState,
|
_commandBuffer.GenerateDepopPrepare(
|
||||||
|
dspState,
|
||||||
_rendererContext.DepopBuffer,
|
_rendererContext.DepopBuffer,
|
||||||
mix.BufferCount,
|
mix.BufferCount,
|
||||||
mix.BufferOffset,
|
mix.BufferOffset,
|
||||||
|
@ -94,7 +96,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
if (_rendererContext.BehaviourContext.IsWaveBufferVersion2Supported())
|
if (_rendererContext.BehaviourContext.IsWaveBufferVersion2Supported())
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateDataSourceVersion2(ref voiceState,
|
_commandBuffer.GenerateDataSourceVersion2(
|
||||||
|
ref voiceState,
|
||||||
dspState,
|
dspState,
|
||||||
(ushort)_rendererContext.MixBufferCount,
|
(ushort)_rendererContext.MixBufferCount,
|
||||||
(ushort)channelIndex,
|
(ushort)channelIndex,
|
||||||
|
@ -105,21 +108,24 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
switch (voiceState.SampleFormat)
|
switch (voiceState.SampleFormat)
|
||||||
{
|
{
|
||||||
case SampleFormat.PcmInt16:
|
case SampleFormat.PcmInt16:
|
||||||
_commandBuffer.GeneratePcmInt16DataSourceVersion1(ref voiceState,
|
_commandBuffer.GeneratePcmInt16DataSourceVersion1(
|
||||||
|
ref voiceState,
|
||||||
dspState,
|
dspState,
|
||||||
(ushort)_rendererContext.MixBufferCount,
|
(ushort)_rendererContext.MixBufferCount,
|
||||||
(ushort)channelIndex,
|
(ushort)channelIndex,
|
||||||
voiceState.NodeId);
|
voiceState.NodeId);
|
||||||
break;
|
break;
|
||||||
case SampleFormat.PcmFloat:
|
case SampleFormat.PcmFloat:
|
||||||
_commandBuffer.GeneratePcmFloatDataSourceVersion1(ref voiceState,
|
_commandBuffer.GeneratePcmFloatDataSourceVersion1(
|
||||||
|
ref voiceState,
|
||||||
dspState,
|
dspState,
|
||||||
(ushort)_rendererContext.MixBufferCount,
|
(ushort)_rendererContext.MixBufferCount,
|
||||||
(ushort)channelIndex,
|
(ushort)channelIndex,
|
||||||
voiceState.NodeId);
|
voiceState.NodeId);
|
||||||
break;
|
break;
|
||||||
case SampleFormat.Adpcm:
|
case SampleFormat.Adpcm:
|
||||||
_commandBuffer.GenerateAdpcmDataSourceVersion1(ref voiceState,
|
_commandBuffer.GenerateAdpcmDataSourceVersion1(
|
||||||
|
ref voiceState,
|
||||||
dspState,
|
dspState,
|
||||||
(ushort)_rendererContext.MixBufferCount,
|
(ushort)_rendererContext.MixBufferCount,
|
||||||
voiceState.NodeId);
|
voiceState.NodeId);
|
||||||
|
@ -154,7 +160,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
Memory<BiquadFilterState> stateMemory = SpanMemoryManager<BiquadFilterState>.Cast(biquadStateRawMemory);
|
Memory<BiquadFilterState> stateMemory = SpanMemoryManager<BiquadFilterState>.Cast(biquadStateRawMemory);
|
||||||
|
|
||||||
_commandBuffer.GenerateBiquadFilter(baseIndex,
|
_commandBuffer.GenerateBiquadFilter(
|
||||||
|
baseIndex,
|
||||||
ref filter,
|
ref filter,
|
||||||
stateMemory.Slice(i, 1),
|
stateMemory.Slice(i, 1),
|
||||||
bufferOffset,
|
bufferOffset,
|
||||||
|
@ -524,7 +531,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
{
|
{
|
||||||
if (effect.Parameter.Volumes[i] != 0.0f)
|
if (effect.Parameter.Volumes[i] != 0.0f)
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateMix((uint)bufferOffset + effect.Parameter.Input[i],
|
_commandBuffer.GenerateMix(
|
||||||
|
(uint)bufferOffset + effect.Parameter.Input[i],
|
||||||
(uint)bufferOffset + effect.Parameter.Output[i],
|
(uint)bufferOffset + effect.Parameter.Output[i],
|
||||||
nodeId,
|
nodeId,
|
||||||
effect.Parameter.Volumes[i]);
|
effect.Parameter.Volumes[i]);
|
||||||
|
@ -562,7 +570,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
updateCount = newUpdateCount;
|
updateCount = newUpdateCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
_commandBuffer.GenerateAuxEffect(bufferOffset,
|
_commandBuffer.GenerateAuxEffect(
|
||||||
|
bufferOffset,
|
||||||
effect.Parameter.Input[i],
|
effect.Parameter.Input[i],
|
||||||
effect.Parameter.Output[i],
|
effect.Parameter.Output[i],
|
||||||
ref effect.State,
|
ref effect.State,
|
||||||
|
@ -627,7 +636,10 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
for (int i = 0; i < effect.Parameter.ChannelCount; i++)
|
for (int i = 0; i < effect.Parameter.ChannelCount; i++)
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateBiquadFilter((int)bufferOffset, ref parameter, effect.State.Slice(i, 1),
|
_commandBuffer.GenerateBiquadFilter(
|
||||||
|
(int)bufferOffset,
|
||||||
|
ref parameter,
|
||||||
|
effect.State.Slice(i, 1),
|
||||||
effect.Parameter.Input[i],
|
effect.Parameter.Input[i],
|
||||||
effect.Parameter.Output[i],
|
effect.Parameter.Output[i],
|
||||||
needInitialization,
|
needInitialization,
|
||||||
|
@ -706,7 +718,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
updateCount = newUpdateCount;
|
updateCount = newUpdateCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
_commandBuffer.GenerateCaptureEffect(bufferOffset,
|
_commandBuffer.GenerateCaptureEffect(
|
||||||
|
bufferOffset,
|
||||||
effect.Parameter.Input[i],
|
effect.Parameter.Input[i],
|
||||||
effect.State.SendBufferInfo,
|
effect.State.SendBufferInfo,
|
||||||
effect.IsEnabled,
|
effect.IsEnabled,
|
||||||
|
@ -727,7 +740,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
{
|
{
|
||||||
Debug.Assert(effect.Type == EffectType.Compressor);
|
Debug.Assert(effect.Type == EffectType.Compressor);
|
||||||
|
|
||||||
_commandBuffer.GenerateCompressorEffect(bufferOffset,
|
_commandBuffer.GenerateCompressorEffect(
|
||||||
|
bufferOffset,
|
||||||
effect.Parameter,
|
effect.Parameter,
|
||||||
effect.State,
|
effect.State,
|
||||||
effect.IsEnabled,
|
effect.IsEnabled,
|
||||||
|
@ -744,8 +758,11 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
bool performanceInitialized = false;
|
bool performanceInitialized = false;
|
||||||
|
|
||||||
if (_performanceManager != null && _performanceManager.GetNextEntry(out performanceEntry, effect.GetPerformanceDetailType(),
|
if (_performanceManager != null && _performanceManager.GetNextEntry(
|
||||||
isFinalMix ? PerformanceEntryType.FinalMix : PerformanceEntryType.SubMix, nodeId))
|
out performanceEntry,
|
||||||
|
effect.GetPerformanceDetailType(),
|
||||||
|
isFinalMix ? PerformanceEntryType.FinalMix : PerformanceEntryType.SubMix,
|
||||||
|
nodeId))
|
||||||
{
|
{
|
||||||
performanceInitialized = true;
|
performanceInitialized = true;
|
||||||
|
|
||||||
|
@ -978,7 +995,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
if (volume != 0.0f)
|
if (volume != 0.0f)
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateMix(mix.BufferOffset + bufferIndex,
|
_commandBuffer.GenerateMix(
|
||||||
|
mix.BufferOffset + bufferIndex,
|
||||||
destinationMix.BufferOffset + bufferDestinationIndex,
|
destinationMix.BufferOffset + bufferDestinationIndex,
|
||||||
mix.NodeId,
|
mix.NodeId,
|
||||||
volume);
|
volume);
|
||||||
|
@ -991,7 +1009,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
private void GenerateSubMix(ref MixState subMix)
|
private void GenerateSubMix(ref MixState subMix)
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateDepopForMixBuffersCommand(_rendererContext.DepopBuffer,
|
_commandBuffer.GenerateDepopForMixBuffers(
|
||||||
|
_rendererContext.DepopBuffer,
|
||||||
subMix.BufferOffset,
|
subMix.BufferOffset,
|
||||||
subMix.BufferCount,
|
subMix.BufferCount,
|
||||||
subMix.NodeId,
|
subMix.NodeId,
|
||||||
|
@ -1055,7 +1074,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
{
|
{
|
||||||
ref MixState finalMix = ref _mixContext.GetFinalState();
|
ref MixState finalMix = ref _mixContext.GetFinalState();
|
||||||
|
|
||||||
_commandBuffer.GenerateDepopForMixBuffersCommand(_rendererContext.DepopBuffer,
|
_commandBuffer.GenerateDepopForMixBuffers(
|
||||||
|
_rendererContext.DepopBuffer,
|
||||||
finalMix.BufferOffset,
|
finalMix.BufferOffset,
|
||||||
finalMix.BufferCount,
|
finalMix.BufferCount,
|
||||||
finalMix.NodeId,
|
finalMix.NodeId,
|
||||||
|
@ -1090,7 +1110,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
GeneratePerformance(ref performanceEntry, PerformanceCommand.Type.Start, nodeId);
|
GeneratePerformance(ref performanceEntry, PerformanceCommand.Type.Start, nodeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
_commandBuffer.GenerateVolume(finalMix.Volume,
|
_commandBuffer.GenerateVolume(
|
||||||
|
finalMix.Volume,
|
||||||
finalMix.BufferOffset + bufferIndex,
|
finalMix.BufferOffset + bufferIndex,
|
||||||
nodeId);
|
nodeId);
|
||||||
|
|
||||||
|
@ -1146,7 +1167,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
if (useCustomDownMixingCommand)
|
if (useCustomDownMixingCommand)
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateDownMixSurroundToStereo(finalMix.BufferOffset,
|
_commandBuffer.GenerateDownMixSurroundToStereo(
|
||||||
|
finalMix.BufferOffset,
|
||||||
sink.Parameter.Input.AsSpan(),
|
sink.Parameter.Input.AsSpan(),
|
||||||
sink.Parameter.Input.AsSpan(),
|
sink.Parameter.Input.AsSpan(),
|
||||||
sink.DownMixCoefficients,
|
sink.DownMixCoefficients,
|
||||||
|
@ -1155,7 +1177,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
// NOTE: We do the downmixing at the DSP level as it's easier that way.
|
// NOTE: We do the downmixing at the DSP level as it's easier that way.
|
||||||
else if (_rendererContext.ChannelCount == 2 && sink.Parameter.InputCount == 6)
|
else if (_rendererContext.ChannelCount == 2 && sink.Parameter.InputCount == 6)
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateDownMixSurroundToStereo(finalMix.BufferOffset,
|
_commandBuffer.GenerateDownMixSurroundToStereo(
|
||||||
|
finalMix.BufferOffset,
|
||||||
sink.Parameter.Input.AsSpan(),
|
sink.Parameter.Input.AsSpan(),
|
||||||
sink.Parameter.Input.AsSpan(),
|
sink.Parameter.Input.AsSpan(),
|
||||||
Constants.DefaultSurroundToStereoCoefficients,
|
Constants.DefaultSurroundToStereoCoefficients,
|
||||||
|
@ -1166,7 +1189,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
if (sink.UpsamplerState != null)
|
if (sink.UpsamplerState != null)
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateUpsample(finalMix.BufferOffset,
|
_commandBuffer.GenerateUpsample(
|
||||||
|
finalMix.BufferOffset,
|
||||||
sink.UpsamplerState,
|
sink.UpsamplerState,
|
||||||
sink.Parameter.InputCount,
|
sink.Parameter.InputCount,
|
||||||
sink.Parameter.Input.AsSpan(),
|
sink.Parameter.Input.AsSpan(),
|
||||||
|
@ -1176,7 +1200,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
Constants.InvalidNodeId);
|
Constants.InvalidNodeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
_commandBuffer.GenerateDeviceSink(finalMix.BufferOffset,
|
_commandBuffer.GenerateDeviceSink(
|
||||||
|
finalMix.BufferOffset,
|
||||||
sink,
|
sink,
|
||||||
_rendererContext.SessionId,
|
_rendererContext.SessionId,
|
||||||
commandList.Buffers,
|
commandList.Buffers,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue