diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-09-18 15:30:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-18 15:30:56 +0200 |
commit | d6cf54dd2f182a2621038047f10f29e5b8a7a7c1 (patch) | |
tree | a8a68150d0128d6872ba6701b1dbcd321cd7e010 /src/audio_core | |
parent | Merge pull request #11529 from lat9nq/no-oob-names-pls (diff) | |
parent | Do not consider voice commands in time estimation, fix adpcm estimate (diff) | |
download | yuzu-d6cf54dd2f182a2621038047f10f29e5b8a7a7c1.tar yuzu-d6cf54dd2f182a2621038047f10f29e5b8a7a7c1.tar.gz yuzu-d6cf54dd2f182a2621038047f10f29e5b8a7a7c1.tar.bz2 yuzu-d6cf54dd2f182a2621038047f10f29e5b8a7a7c1.tar.lz yuzu-d6cf54dd2f182a2621038047f10f29e5b8a7a7c1.tar.xz yuzu-d6cf54dd2f182a2621038047f10f29e5b8a7a7c1.tar.zst yuzu-d6cf54dd2f182a2621038047f10f29e5b8a7a7c1.zip |
Diffstat (limited to 'src/audio_core')
-rw-r--r-- | src/audio_core/renderer/command/command_processing_time_estimator.cpp | 4 | ||||
-rw-r--r-- | src/audio_core/renderer/system.cpp | 10 |
2 files changed, 8 insertions, 6 deletions
diff --git a/src/audio_core/renderer/command/command_processing_time_estimator.cpp b/src/audio_core/renderer/command/command_processing_time_estimator.cpp index a48a016b1..0f7aff1b4 100644 --- a/src/audio_core/renderer/command/command_processing_time_estimator.cpp +++ b/src/audio_core/renderer/command/command_processing_time_estimator.cpp @@ -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( diff --git a/src/audio_core/renderer/system.cpp b/src/audio_core/renderer/system.cpp index d29754634..31f92087c 100644 --- a/src/audio_core/renderer/system.cpp +++ b/src/audio_core/renderer/system.cpp @@ -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); } |