yuzu/src/core
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
..
arm common: Replace common_sizes into user-literals 2021-06-24 09:27:40 -07:00
crypto General: Resolve fmt specifiers to adhere to 8.0.0 API where applicable 2021-06-23 13:48:21 -04:00
file_sys General: Resolve fmt specifiers to adhere to 8.0.0 API where applicable 2021-06-23 13:48:21 -04:00
frontend General: Resolve fmt specifiers to adhere to 8.0.0 API where applicable 2021-06-23 13:48:21 -04:00
hle Decouple audio processing and run at variable rate 2021-06-27 15:58:07 +01:00
loader common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270) 2021-05-25 19:32:56 -04:00
memory core: Make variable shadowing a compile-time error 2021-05-16 03:43:16 -04:00
network [network] Error handling reform 2021-02-28 17:25:31 -05:00
tools core: Resolve misc cases of variable shadowing 2021-05-03 01:19:13 -04:00
CMakeLists.txt hle: api_version: Add HLE API version constants 2021-06-16 01:46:45 -04:00
constants.cpp constants: Extract backup JPEG used by account services 2019-06-07 17:46:57 -04:00
constants.h constants: Add missing <array> include 2020-07-16 21:43:20 -04:00
core_timing_util.h core: core_timing_util: Optimize core timing math. 2021-02-15 14:54:06 -08:00
core_timing.cpp core: Resolve misc cases of variable shadowing 2021-05-03 01:19:13 -04:00
core_timing.h core: Resolve misc cases of variable shadowing 2021-05-03 01:19:13 -04:00
core.cpp core: Make is_powered_on atomic 2021-06-22 04:33:07 -03:00
core.h hle: kernel: Rename Process to KProcess. 2021-05-05 16:40:52 -07:00
cpu_manager.cpp core: Make variable shadowing a compile-time error 2021-05-16 03:43:16 -04:00
cpu_manager.h core: Make variable shadowing a compile-time error 2021-05-16 03:43:16 -04:00
device_memory.cpp core: Make use of fastmem 2021-06-11 17:27:06 +02:00
device_memory.h core: Make use of fastmem 2021-06-11 17:27:06 +02:00
hardware_interrupt_manager.cpp core_timing: Make use of uintptr_t to represent user_data 2020-07-27 21:21:01 -04:00
hardware_interrupt_manager.h core_timing: Use better reference tracking for EventType. (#3159) 2019-11-26 21:48:56 -05:00
hardware_properties.h kernel: k_light_lock: Simplify EmuThreadHandle implementation. 2021-01-28 21:42:26 -08:00
memory.cpp General: Add settings for fastmem and disabling adress space check. 2021-06-11 17:27:17 +02:00
memory.h hle: kernel: Use host memory allocations for KSlabMemory. 2021-05-20 21:41:52 -07:00
perf_stats.cpp common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270) 2021-05-25 19:32:56 -04:00
perf_stats.h Merge pull request #6317 from ameerj/fps-fix 2021-05-18 19:56:29 -07:00
reporter.cpp fsp_srv: Fix filesystem access logging 2021-06-16 00:06:02 -04:00
reporter.h fsp_srv: Fix filesystem access logging 2021-06-16 00:06:02 -04:00
telemetry_session.cpp configure_graphics: Add Accelerate ASTC decoding setting 2021-06-15 20:19:00 -04:00
telemetry_session.h patch_manager: Remove usages of the global system instance 2020-11-18 09:36:48 -05:00