mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-07-04 23:31:19 +01:00
Merge pull request #11520 from Kelebek1/estimated_time
Do not consider voice commands in time estimation, fix adpcm estimate
This commit is contained in:
commit
d6cf54dd2f
2 changed files with 8 additions and 6 deletions
|
@ -27,12 +27,12 @@ u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
||||||
|
|
||||||
u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
||||||
const AdpcmDataSourceVersion1Command& command) const {
|
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(
|
u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
||||||
const AdpcmDataSourceVersion2Command& command) const {
|
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(
|
u32 CommandProcessingTimeEstimatorVersion1::Estimate(
|
||||||
|
|
|
@ -684,11 +684,11 @@ u64 System::GenerateCommand(std::span<u8> in_command_buffer,
|
||||||
sink_context, splitter_context, perf_manager};
|
sink_context, splitter_context, perf_manager};
|
||||||
|
|
||||||
voice_context.SortInfo();
|
voice_context.SortInfo();
|
||||||
|
command_generator.GenerateVoiceCommands();
|
||||||
|
|
||||||
const auto start_estimated_time{drop_voice_param *
|
const auto start_estimated_time{drop_voice_param *
|
||||||
static_cast<f32>(command_buffer.estimated_process_time)};
|
static_cast<f32>(command_buffer.estimated_process_time)};
|
||||||
|
|
||||||
command_generator.GenerateVoiceCommands();
|
|
||||||
command_generator.GenerateSubMixCommands();
|
command_generator.GenerateSubMixCommands();
|
||||||
command_generator.GenerateFinalMixCommands();
|
command_generator.GenerateFinalMixCommands();
|
||||||
command_generator.GenerateSinkCommands();
|
command_generator.GenerateSinkCommands();
|
||||||
|
@ -708,11 +708,13 @@ u64 System::GenerateCommand(std::span<u8> in_command_buffer,
|
||||||
|
|
||||||
const auto end_estimated_time{drop_voice_param *
|
const auto end_estimated_time{drop_voice_param *
|
||||||
static_cast<f32>(command_buffer.estimated_process_time)};
|
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 estimated_time{start_estimated_time - end_estimated_time};
|
||||||
|
|
||||||
const auto time_limit{static_cast<u32>(
|
const auto time_limit{static_cast<u32>(std::max(dsp_time_limit + estimated_time, 0.0f))};
|
||||||
estimated_time + (((time_limit_percent / 100.0f) * 2'880'000.0) *
|
|
||||||
(static_cast<f32>(render_time_limit_percent) / 100.0f)))};
|
|
||||||
num_voices_dropped =
|
num_voices_dropped =
|
||||||
DropVoices(command_buffer, static_cast<u32>(start_estimated_time), time_limit);
|
DropVoices(command_buffer, static_cast<u32>(start_estimated_time), time_limit);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue