Merge pull request #11465 from Kelebek1/skip_remaining_reset
[Audio] Do not reset the remaining command count each time
This commit is contained in:
		| @@ -88,8 +88,13 @@ MailboxMessage AudioRenderer::Receive(Direction dir, bool block) { | ||||
|     return mailbox.Receive(dir, block); | ||||
| } | ||||
|  | ||||
| void AudioRenderer::SetCommandBuffer(s32 session_id, CommandBuffer& buffer) noexcept { | ||||
|     command_buffers[session_id] = buffer; | ||||
| void AudioRenderer::SetCommandBuffer(s32 session_id, CpuAddr buffer, u64 size, u64 time_limit, | ||||
|                                      u64 applet_resource_user_id, bool reset) noexcept { | ||||
|     command_buffers[session_id].buffer = buffer; | ||||
|     command_buffers[session_id].size = size; | ||||
|     command_buffers[session_id].time_limit = time_limit; | ||||
|     command_buffers[session_id].applet_resource_user_id = applet_resource_user_id; | ||||
|     command_buffers[session_id].reset_buffer = reset; | ||||
| } | ||||
|  | ||||
| u32 AudioRenderer::GetRemainCommandCount(s32 session_id) const noexcept { | ||||
|   | ||||
| @@ -75,7 +75,8 @@ public: | ||||
|     void Send(Direction dir, MailboxMessage message); | ||||
|     MailboxMessage Receive(Direction dir, bool block = true); | ||||
|  | ||||
|     void SetCommandBuffer(s32 session_id, CommandBuffer& buffer) noexcept; | ||||
|     void SetCommandBuffer(s32 session_id, CpuAddr buffer, u64 size, u64 time_limit, | ||||
|                           u64 applet_resource_user_id, bool reset) noexcept; | ||||
|     u32 GetRemainCommandCount(s32 session_id) const noexcept; | ||||
|     void ClearRemainCommandCount(s32 session_id) noexcept; | ||||
|     u64 GetRenderingStartTick(s32 session_id) const noexcept; | ||||
|   | ||||
| @@ -37,11 +37,6 @@ u32 CommandListProcessor::GetRemainingCommandCount() const { | ||||
|     return command_count - processed_command_count; | ||||
| } | ||||
|  | ||||
| void CommandListProcessor::SetBuffer(const CpuAddr buffer, const u64 size) { | ||||
|     commands = reinterpret_cast<u8*>(buffer + sizeof(Renderer::CommandListHeader)); | ||||
|     commands_buffer_size = size; | ||||
| } | ||||
|  | ||||
| Sink::SinkStream* CommandListProcessor::GetOutputSinkStream() const { | ||||
|     return stream; | ||||
| } | ||||
|   | ||||
| @@ -56,14 +56,6 @@ public: | ||||
|      */ | ||||
|     u32 GetRemainingCommandCount() const; | ||||
|  | ||||
|     /** | ||||
|      * Set the command buffer. | ||||
|      * | ||||
|      * @param buffer - The buffer to use. | ||||
|      * @param size   - The size of the buffer. | ||||
|      */ | ||||
|     void SetBuffer(CpuAddr buffer, u64 size); | ||||
|  | ||||
|     /** | ||||
|      * Get the stream for this command list. | ||||
|      * | ||||
|   | ||||
| @@ -609,17 +609,11 @@ void System::SendCommandToDsp() { | ||||
|                 time_limit_percent = 70.0f; | ||||
|             } | ||||
|  | ||||
|             AudioRenderer::CommandBuffer command_buffer{ | ||||
|                 .buffer{translated_addr}, | ||||
|                 .size{command_size}, | ||||
|                 .time_limit{ | ||||
|                     static_cast<u64>((time_limit_percent / 100) * 2'880'000.0 * | ||||
|                                      (static_cast<f32>(render_time_limit_percent) / 100.0f))}, | ||||
|                 .applet_resource_user_id{applet_resource_user_id}, | ||||
|                 .reset_buffer{reset_command_buffers}, | ||||
|             }; | ||||
|  | ||||
|             audio_renderer.SetCommandBuffer(session_id, command_buffer); | ||||
|             auto time_limit{ | ||||
|                 static_cast<u64>((time_limit_percent / 100) * 2'880'000.0 * | ||||
|                                  (static_cast<f32>(render_time_limit_percent) / 100.0f))}; | ||||
|             audio_renderer.SetCommandBuffer(session_id, translated_addr, command_size, time_limit, | ||||
|                                             applet_resource_user_id, reset_command_buffers); | ||||
|             reset_command_buffers = false; | ||||
|             command_buffer_size = command_size; | ||||
|             if (remaining_command_count == 0) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user