Sfoglia il codice sorgente

Add some explicit latency to sample count reporting

Some games have very tight scheduling requirements for their audio which can't really be matched on the host, adding a constant to the reported value helps to provide some leeway.
Billy Laws 3 anni fa
parent
commit
0afb9631b5
1 ha cambiato i file con 2 aggiunte e 1 eliminazioni
  1. 2 1
      src/audio_core/sink/sink_stream.cpp

+ 2 - 1
src/audio_core/sink/sink_stream.cpp

@@ -266,7 +266,8 @@ u64 SinkStream::GetExpectedPlayedSampleCount() {
     auto exp_played_sample_count{min_played_sample_count +
                                  (TargetSampleRate * time_delta) / std::chrono::seconds{1}};
 
-    return std::min<u64>(exp_played_sample_count, max_played_sample_count);
+    // Add 15ms of latency in sample reporting to allow for some leeway in scheduler timings
+    return std::min<u64>(exp_played_sample_count, max_played_sample_count) + TargetSampleCount * 3;
 }
 
 void SinkStream::WaitFreeSpace() {