diff options
| author | 2022-08-01 02:58:13 +0100 | |
|---|---|---|
| committer | 2022-09-02 04:43:04 +0100 | |
| commit | ea9ff71725113b8dbb159917c57aa536bba0cb53 (patch) | |
| tree | 512cce0fea5eb511aa7803bc67f741815885bfcb /src/audio_core/out | |
| parent | Merge pull request #8752 from vonchenplus/rectangle_texture (diff) | |
| download | yuzu-ea9ff71725113b8dbb159917c57aa536bba0cb53.tar.gz yuzu-ea9ff71725113b8dbb159917c57aa536bba0cb53.tar.xz yuzu-ea9ff71725113b8dbb159917c57aa536bba0cb53.zip | |
Rework audio output, connecting AudioOut into coretiming to fix desync during heavy loads.
Diffstat (limited to 'src/audio_core/out')
| -rw-r--r-- | src/audio_core/out/audio_out_system.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/audio_core/out/audio_out_system.cpp b/src/audio_core/out/audio_out_system.cpp index 35afddf06..8941b09a0 100644 --- a/src/audio_core/out/audio_out_system.cpp +++ b/src/audio_core/out/audio_out_system.cpp | |||
| @@ -92,6 +92,7 @@ Result System::Start() { | |||
| 92 | std::vector<AudioBuffer> buffers_to_flush{}; | 92 | std::vector<AudioBuffer> buffers_to_flush{}; |
| 93 | buffers.RegisterBuffers(buffers_to_flush); | 93 | buffers.RegisterBuffers(buffers_to_flush); |
| 94 | session->AppendBuffers(buffers_to_flush); | 94 | session->AppendBuffers(buffers_to_flush); |
| 95 | session->SetRingSize(static_cast<u32>(buffers_to_flush.size())); | ||
| 95 | 96 | ||
| 96 | return ResultSuccess; | 97 | return ResultSuccess; |
| 97 | } | 98 | } |
| @@ -111,8 +112,13 @@ bool System::AppendBuffer(const AudioOutBuffer& buffer, u64 tag) { | |||
| 111 | return false; | 112 | return false; |
| 112 | } | 113 | } |
| 113 | 114 | ||
| 114 | AudioBuffer new_buffer{ | 115 | const auto timestamp{buffers.GetNextTimestamp()}; |
| 115 | .played_timestamp = 0, .samples = buffer.samples, .tag = tag, .size = buffer.size}; | 116 | AudioBuffer new_buffer{.start_timestamp = timestamp, |
| 117 | .end_timestamp = timestamp + buffer.size / (channel_count * sizeof(s16)), | ||
| 118 | .played_timestamp = 0, | ||
| 119 | .samples = buffer.samples, | ||
| 120 | .tag = tag, | ||
| 121 | .size = buffer.size}; | ||
| 116 | 122 | ||
| 117 | buffers.AppendBuffer(new_buffer); | 123 | buffers.AppendBuffer(new_buffer); |
| 118 | RegisterBuffers(); | 124 | RegisterBuffers(); |