aboutsummaryrefslogtreecommitdiff
path: root/src/audio_core/renderer/command/command_buffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio_core/renderer/command/command_buffer.cpp')
-rw-r--r--src/audio_core/renderer/command/command_buffer.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/audio_core/renderer/command/command_buffer.cpp b/src/audio_core/renderer/command/command_buffer.cpp
index d680e0c74b..a0a574fc64 100644
--- a/src/audio_core/renderer/command/command_buffer.cpp
+++ b/src/audio_core/renderer/command/command_buffer.cpp
@@ -237,6 +237,13 @@ void CommandBuffer::GenerateBiquadFilterCommand(const s32 node_id, VoiceInfo& vo
cmd.biquad = voice_info.biquads[biquad_index];
+ if (voice_info.use_float_biquads) {
+ cmd.biquad_float = voice_info.biquads_float[biquad_index];
+ cmd.use_float_coefficients = true;
+ } else {
+ cmd.use_float_coefficients = false;
+ }
+
cmd.state = memory_pool->Translate(CpuAddr(voice_state.biquad_states[biquad_index].data()),
MaxBiquadFilters * sizeof(VoiceState::BiquadFilterState));
@@ -263,6 +270,9 @@ void CommandBuffer::GenerateBiquadFilterCommand(const s32 node_id, EffectInfoBas
cmd.biquad.b = parameter.b;
cmd.biquad.a = parameter.a;
+ // Effects use legacy fixed-point format
+ cmd.use_float_coefficients = false;
+
cmd.state = memory_pool->Translate(CpuAddr(state),
MaxBiquadFilters * sizeof(VoiceState::BiquadFilterState));
@@ -658,6 +668,13 @@ void CommandBuffer::GenerateMultitapBiquadFilterCommand(const s32 node_id, Voice
cmd.output = buffer_count + channel;
cmd.biquads = voice_info.biquads;
+ if (voice_info.use_float_biquads) {
+ cmd.biquads_float = voice_info.biquads_float;
+ cmd.use_float_coefficients = true;
+ } else {
+ cmd.use_float_coefficients = false;
+ }
+
cmd.states[0] =
memory_pool->Translate(CpuAddr(voice_state.biquad_states[0].data()),
MaxBiquadFilters * sizeof(VoiceState::BiquadFilterState));