|
|
|
@ -684,11 +684,11 @@ u64 System::GenerateCommand(std::span<u8> in_command_buffer, |
|
|
|
sink_context, splitter_context, perf_manager}; |
|
|
|
|
|
|
|
voice_context.SortInfo(); |
|
|
|
command_generator.GenerateVoiceCommands(); |
|
|
|
|
|
|
|
const auto start_estimated_time{drop_voice_param * |
|
|
|
static_cast<f32>(command_buffer.estimated_process_time)}; |
|
|
|
|
|
|
|
command_generator.GenerateVoiceCommands(); |
|
|
|
command_generator.GenerateSubMixCommands(); |
|
|
|
command_generator.GenerateFinalMixCommands(); |
|
|
|
command_generator.GenerateSinkCommands(); |
|
|
|
@ -708,11 +708,13 @@ u64 System::GenerateCommand(std::span<u8> in_command_buffer, |
|
|
|
|
|
|
|
const auto end_estimated_time{drop_voice_param * |
|
|
|
static_cast<f32>(command_buffer.estimated_process_time)}; |
|
|
|
|
|
|
|
const auto dsp_time_limit{((time_limit_percent / 100.0f) * 2'880'000.0f) * |
|
|
|
(static_cast<f32>(render_time_limit_percent) / 100.0f)}; |
|
|
|
|
|
|
|
const auto estimated_time{start_estimated_time - end_estimated_time}; |
|
|
|
|
|
|
|
const auto time_limit{static_cast<u32>( |
|
|
|
estimated_time + (((time_limit_percent / 100.0f) * 2'880'000.0) * |
|
|
|
(static_cast<f32>(render_time_limit_percent) / 100.0f)))}; |
|
|
|
const auto time_limit{static_cast<u32>(std::max(dsp_time_limit + estimated_time, 0.0f))}; |
|
|
|
num_voices_dropped = |
|
|
|
DropVoices(command_buffer, static_cast<u32>(start_estimated_time), time_limit); |
|
|
|
} |
|
|
|
|