yuzu/src/core/hle/service
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
..
acc general: Replace RESULT_UNKNOWN with ResultUnknown 2021-06-02 00:39:27 -04:00
am general: Replace RESULT_UNKNOWN with ResultUnknown 2021-06-02 00:39:27 -04:00
aoc hle: service: aoc: Stub GetAddOnContentListChangedEventWithProcessId. 2021-06-24 18:22:53 -07:00
apm general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
audio Decouple audio processing and run at variable rate 2021-06-27 15:58:07 +01:00
bcat common: fs: Remove [[nodiscard]] attribute on Remove* functions 2021-06-22 13:36:24 -04:00
bpc bpc: Use proper names 2021-04-08 19:40:24 -06:00
btdrv general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
btm general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
caps general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
erpt erpt: Update to 12.x 2021-04-09 00:49:46 -04:00
es general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
eupld service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
fatal general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
fgm general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
filesystem fsp_srv: Fix filesystem access logging 2021-06-16 00:06:02 -04:00
friend general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
glue general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
grc service: Resolve cases of member field shadowing 2021-05-04 04:38:38 -04:00
hid npad: Fix data race when updating devices 2021-06-22 03:16:21 -03:00
lbl general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
ldn general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
ldr general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
lm lm: Demote guest logs to LOG_DEBUG 2021-06-14 22:23:27 -04:00
mig service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
mii Add missing includes (#6521) 2021-06-24 03:24:17 -04:00
mm general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
ncm core: Mark unused fields as [[maybe_unused]] 2020-12-06 18:36:10 -05:00
nfc general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
nfp general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
nifm general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
nim general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
npns npns: Update to 12.x 2021-04-09 00:49:47 -04:00
ns hle: kernel: Refactor to allocate a ServiceThread per service handler. 2021-06-04 19:26:48 -07:00
nvdrv general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
nvflinger nvflinger: Add toggle to disable buffer swap interval limits 2021-06-17 01:41:56 -04:00
olsc general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
pcie pcie: Use proper names 2021-04-08 19:40:25 -06:00
pctl general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
pcv service: Eliminate usages of the global system instance 2020-11-26 20:03:11 -05:00
pm general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
prepo general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
psc general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
ptm general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
set general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
sm hle: service: sm: Remove redundant session reservation, etc. 2021-06-10 11:34:41 -07:00
sockets general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
spl general: Add missing #pragma once directives 2021-06-24 07:20:57 -04:00
ssl general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
time service: time: Use GetFileRelative to get files within subdirectories 2021-06-18 11:25:26 -04:00
usb general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
vi general: Replace RESULT_SUCCESS with ResultSuccess 2021-06-02 00:39:27 -04:00
wlan wlan: Update to 12.x 2021-04-08 19:40:25 -06:00
service.cpp General: Resolve fmt specifiers to adhere to 8.0.0 API where applicable 2021-06-23 13:48:21 -04:00
service.h hle: service: sm: Remove redundant session reservation, etc. 2021-06-10 11:34:41 -07:00