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();