소스 검색

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 년 전
부모
커밋
0afb9631b5
1개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  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 +
     auto exp_played_sample_count{min_played_sample_count +
                                  (TargetSampleRate * time_delta) / std::chrono::seconds{1}};
                                  (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() {
 void SinkStream::WaitFreeSpace() {