Merge pull request #11735 from Kelebek1/clear_command_buffer_post_dsp
Clear DSP buffer after each execution
This commit is contained in:
		| @@ -77,6 +77,7 @@ void AudioRenderer::Wait() { | |||||||
|                   "{}, got {}", |                   "{}, got {}", | ||||||
|                   Message::RenderResponse, msg); |                   Message::RenderResponse, msg); | ||||||
|     } |     } | ||||||
|  |     PostDSPClearCommandBuffer(); | ||||||
| } | } | ||||||
|  |  | ||||||
| void AudioRenderer::Send(Direction dir, u32 message) { | void AudioRenderer::Send(Direction dir, u32 message) { | ||||||
| @@ -96,6 +97,14 @@ void AudioRenderer::SetCommandBuffer(s32 session_id, CpuAddr buffer, u64 size, u | |||||||
|     command_buffers[session_id].reset_buffer = reset; |     command_buffers[session_id].reset_buffer = reset; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void AudioRenderer::PostDSPClearCommandBuffer() noexcept { | ||||||
|  |     for (auto& buffer : command_buffers) { | ||||||
|  |         buffer.buffer = 0; | ||||||
|  |         buffer.size = 0; | ||||||
|  |         buffer.reset_buffer = false; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| u32 AudioRenderer::GetRemainCommandCount(s32 session_id) const noexcept { | u32 AudioRenderer::GetRemainCommandCount(s32 session_id) const noexcept { | ||||||
|     return command_buffers[session_id].remaining_command_count; |     return command_buffers[session_id].remaining_command_count; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -85,6 +85,8 @@ private: | |||||||
|      */ |      */ | ||||||
|     void CreateSinkStreams(); |     void CreateSinkStreams(); | ||||||
|  |  | ||||||
|  |     void PostDSPClearCommandBuffer() noexcept; | ||||||
|  |  | ||||||
|     /// Core system |     /// Core system | ||||||
|     Core::System& system; |     Core::System& system; | ||||||
|     /// The output sink the AudioRenderer will send samples to |     /// The output sink the AudioRenderer will send samples to | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user