forked from suyu/suyu
Do not consider voice commands in time estimation, fix adpcm estimate
This commit is contained in:
parent
9912704234
commit
5d7571114e
2 changed files with 8 additions and 6 deletions
|
@ -27,12 +27,12 @@ u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
|||
|
||||
u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
||||
const AdpcmDataSourceVersion1Command& command) const {
|
||||
return static_cast<u32>(command.pitch * 0.25f * 1.2f);
|
||||
return static_cast<u32>(command.pitch * 0.46f * 1.2f);
|
||||
}
|
||||
|
||||
u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
||||
const AdpcmDataSourceVersion2Command& command) const {
|
||||
return static_cast<u32>(command.pitch * 0.25f * 1.2f);
|
||||
return static_cast<u32>(command.pitch * 0.46f * 1.2f);
|
||||
}
|
||||
|
||||
u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue