diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/audio_core/sink/cubeb_sink.cpp | 7 | ||||
| -rw-r--r-- | src/audio_core/sink/sink_details.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 10 |
3 files changed, 12 insertions, 9 deletions
diff --git a/src/audio_core/sink/cubeb_sink.cpp b/src/audio_core/sink/cubeb_sink.cpp index 04d98a865..bbb598bc5 100644 --- a/src/audio_core/sink/cubeb_sink.cpp +++ b/src/audio_core/sink/cubeb_sink.cpp | |||
| @@ -364,7 +364,7 @@ bool IsCubebSuitable() { | |||
| 364 | } | 364 | } |
| 365 | #endif | 365 | #endif |
| 366 | 366 | ||
| 367 | // Test min latency | 367 | // Get min latency |
| 368 | cubeb_stream_params params{}; | 368 | cubeb_stream_params params{}; |
| 369 | params.rate = TargetSampleRate; | 369 | params.rate = TargetSampleRate; |
| 370 | params.channels = 2; | 370 | params.channels = 2; |
| @@ -380,11 +380,6 @@ bool IsCubebSuitable() { | |||
| 380 | } | 380 | } |
| 381 | latency = std::max(latency, TargetSampleCount * 2); | 381 | latency = std::max(latency, TargetSampleCount * 2); |
| 382 | 382 | ||
| 383 | if (latency > TargetSampleCount * 3) { | ||
| 384 | LOG_ERROR(Audio_Sink, "Cubeb latency is too high, it is not suitable."); | ||
| 385 | return false; | ||
| 386 | } | ||
| 387 | |||
| 388 | // Test opening a device with standard parameters | 383 | // Test opening a device with standard parameters |
| 389 | cubeb_devid output_device{0}; | 384 | cubeb_devid output_device{0}; |
| 390 | cubeb_devid input_device{0}; | 385 | cubeb_devid input_device{0}; |
diff --git a/src/audio_core/sink/sink_details.cpp b/src/audio_core/sink/sink_details.cpp index 6bec8ee7c..7c9a4e3ac 100644 --- a/src/audio_core/sink/sink_details.cpp +++ b/src/audio_core/sink/sink_details.cpp | |||
| @@ -83,8 +83,8 @@ const SinkDetails& GetOutputSinkDetails(Settings::AudioEngine sink_id) { | |||
| 83 | break; | 83 | break; |
| 84 | } | 84 | } |
| 85 | } | 85 | } |
| 86 | LOG_ERROR(Service_Audio, "Auto-selecting the {} backend", | 86 | LOG_INFO(Service_Audio, "Auto-selecting the {} backend", |
| 87 | Settings::CanonicalizeEnum(iter->id)); | 87 | Settings::CanonicalizeEnum(iter->id)); |
| 88 | } else { | 88 | } else { |
| 89 | if (iter != std::end(sink_details) && !iter->is_suitable()) { | 89 | if (iter != std::end(sink_details) && !iter->is_suitable()) { |
| 90 | LOG_ERROR(Service_Audio, "Selected backend {} is not suitable, falling back to null", | 90 | LOG_ERROR(Service_Audio, "Selected backend {} is not suitable, falling back to null", |
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index f0f450edb..8be7bd594 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h | |||
| @@ -289,8 +289,11 @@ std::pair<typename P::Buffer*, u32> BufferCache<P>::ObtainBuffer(GPUVAddr gpu_ad | |||
| 289 | MarkWrittenBuffer(buffer_id, *cpu_addr, size); | 289 | MarkWrittenBuffer(buffer_id, *cpu_addr, size); |
| 290 | break; | 290 | break; |
| 291 | case ObtainBufferOperation::DiscardWrite: { | 291 | case ObtainBufferOperation::DiscardWrite: { |
| 292 | IntervalType interval{*cpu_addr, size}; | 292 | VAddr cpu_addr_start = Common::AlignDown(*cpu_addr, 64); |
| 293 | VAddr cpu_addr_end = Common::AlignUp(*cpu_addr + size, 64); | ||
| 294 | IntervalType interval{cpu_addr_start, cpu_addr_end}; | ||
| 293 | ClearDownload(interval); | 295 | ClearDownload(interval); |
| 296 | common_ranges.subtract(interval); | ||
| 294 | break; | 297 | break; |
| 295 | } | 298 | } |
| 296 | default: | 299 | default: |
| @@ -1159,6 +1162,11 @@ void BufferCache<P>::UpdateDrawIndirect() { | |||
| 1159 | .size = static_cast<u32>(size), | 1162 | .size = static_cast<u32>(size), |
| 1160 | .buffer_id = FindBuffer(*cpu_addr, static_cast<u32>(size)), | 1163 | .buffer_id = FindBuffer(*cpu_addr, static_cast<u32>(size)), |
| 1161 | }; | 1164 | }; |
| 1165 | VAddr cpu_addr_start = Common::AlignDown(*cpu_addr, 64); | ||
| 1166 | VAddr cpu_addr_end = Common::AlignUp(*cpu_addr + size, 64); | ||
| 1167 | IntervalType interval{cpu_addr_start, cpu_addr_end}; | ||
| 1168 | ClearDownload(interval); | ||
| 1169 | common_ranges.subtract(interval); | ||
| 1162 | }; | 1170 | }; |
| 1163 | if (current_draw_indirect->include_count) { | 1171 | if (current_draw_indirect->include_count) { |
| 1164 | update(current_draw_indirect->count_start_address, sizeof(u32), | 1172 | update(current_draw_indirect->count_start_address, sizeof(u32), |