Merge pull request #11520 from Kelebek1/estimated_time
Do not consider voice commands in time estimation, fix adpcm estimate
This commit is contained in:
		| @@ -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); | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user