diff options
| -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() {      }  #endif -    // Test min latency +    // Get min latency      cubeb_stream_params params{};      params.rate = TargetSampleRate;      params.channels = 2; @@ -380,11 +380,6 @@ bool IsCubebSuitable() {      }      latency = std::max(latency, TargetSampleCount * 2); -    if (latency > TargetSampleCount * 3) { -        LOG_ERROR(Audio_Sink, "Cubeb latency is too high, it is not suitable."); -        return false; -    } -      // Test opening a device with standard parameters      cubeb_devid output_device{0};      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) {                  break;              }          } -        LOG_ERROR(Service_Audio, "Auto-selecting the {} backend", -                  Settings::CanonicalizeEnum(iter->id)); +        LOG_INFO(Service_Audio, "Auto-selecting the {} backend", +                 Settings::CanonicalizeEnum(iter->id));      } else {          if (iter != std::end(sink_details) && !iter->is_suitable()) {              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          MarkWrittenBuffer(buffer_id, *cpu_addr, size);          break;      case ObtainBufferOperation::DiscardWrite: { -        IntervalType interval{*cpu_addr, size}; +        VAddr cpu_addr_start = Common::AlignDown(*cpu_addr, 64); +        VAddr cpu_addr_end = Common::AlignUp(*cpu_addr + size, 64); +        IntervalType interval{cpu_addr_start, cpu_addr_end};          ClearDownload(interval); +        common_ranges.subtract(interval);          break;      }      default: @@ -1159,6 +1162,11 @@ void BufferCache<P>::UpdateDrawIndirect() {              .size = static_cast<u32>(size),              .buffer_id = FindBuffer(*cpu_addr, static_cast<u32>(size)),          }; +        VAddr cpu_addr_start = Common::AlignDown(*cpu_addr, 64); +        VAddr cpu_addr_end = Common::AlignUp(*cpu_addr + size, 64); +        IntervalType interval{cpu_addr_start, cpu_addr_end}; +        ClearDownload(interval); +        common_ranges.subtract(interval);      };      if (current_draw_indirect->include_count) {          update(current_draw_indirect->count_start_address, sizeof(u32), | 
