suyu/src/core/hle
Kelebek1 0857d6a3db Decouple audio processing and run at variable rate
Currently, processing of audio samples is called from AudioRenderer's Update method, using a fixed 4 buffers to process the given samples. Games call Update at variable rates, depending on framerate and/or sample count, which causes inconsistency in audio processing. From what I've seen, 60 FPS games update every ~0.004s, but 30 FPS/160 sample games update somewhere between 0.02 and 0.04, 5-10x slower. Not enough samples get fed to the backend, leading to a lot of audio skipping.

This PR seeks to address this by de-coupling the audio consumption and the audio update. Update remains the same without calling for buffer queuing, and the consume now schedules itself to run based on the sample rate and count.
2021-06-27 15:58:07 +01:00
..
kernel common: Replace common_sizes into user-literals 2021-06-24 09:27:40 -07:00
service Decouple audio processing and run at variable rate 2021-06-27 15:58:07 +01:00
api_version.h general: Add missing #pragma once directives 2021-06-24 07:20:57 -04:00
ipc.h hle: ipc: Add declarations for TIPC. 2021-05-10 15:05:10 -07:00
ipc_helpers.h hle: hle_helpers: Skip data payload offset checks on TIPC requests. 2021-06-24 18:39:43 -07:00
lock.cpp Fix build on macOS and linux 2018-01-13 22:38:52 +00:00
lock.h Use recursive_mutex instead of mutex to fix #2902 2017-08-29 20:39:55 +12:00
result.h result: Add [[nodiscard]] specifiers where applicable 2021-06-05 06:09:07 -04:00