From 29311ddcdd79c0de0817cb74c31e4f80565bbc24 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Tue, 26 May 2026 22:58:46 +0200 Subject: [PATCH] [APU] Replaced min-max with clamp for queued frames --- src/xenia/apu/audio_system.cc | 6 +++--- src/xenia/apu/audio_system.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/xenia/apu/audio_system.cc b/src/xenia/apu/audio_system.cc index ba53454b3..390dab84d 100644 --- a/src/xenia/apu/audio_system.cc +++ b/src/xenia/apu/audio_system.cc @@ -50,9 +50,9 @@ AudioSystem::AudioSystem(cpu::Processor* processor) processor_(processor), worker_running_(false) { std::memset(clients_, 0, sizeof(clients_)); - queued_frames_ = std::min( - static_cast(kMaximumQueuedFrames), - std::max(cvars::apu_max_queued_frames, static_cast(4))); + queued_frames_ = std::clamp(cvars::apu_max_queued_frames, + static_cast(kMinimumQueuedFrames), + static_cast(kMaximumQueuedFrames)); for (size_t i = 0; i < kMaximumClientCount; ++i) { client_semaphores_[i] = xe::threading::Semaphore::Create(0, queued_frames_); diff --git a/src/xenia/apu/audio_system.h b/src/xenia/apu/audio_system.h index 86bdca5b0..6aa422205 100644 --- a/src/xenia/apu/audio_system.h +++ b/src/xenia/apu/audio_system.h @@ -32,6 +32,7 @@ class AudioSystem { public: // TODO(gibbed): respect XAUDIO2_MAX_QUEUED_BUFFERS somehow (ie min(64, // XAUDIO2_MAX_QUEUED_BUFFERS)) + static constexpr size_t kMinimumQueuedFrames = 4; static constexpr size_t kMaximumQueuedFrames = 64; virtual ~AudioSystem();