Commit graph

344 commits

Author SHA1 Message Date
liamwhite
0018e53745 Merge pull request #10162 from lat9nq/sdl-remove-old
yuzu-sdl,audio_core: Remove antiquated warning ignore
2023-05-06 23:10:09 -04:00
lat9nq
be5eee647e yuzu-sdl,audio_core: Remove antiquated warning ignore
Issue was fixed a long time ago, both by SDL2 and in yuzu by including
SDL2 as a system library.
2023-05-05 03:48:28 -04:00
Kelebek1
967e5b2873 Wait for the terminate event before destroying a system instance 2023-05-01 00:27:12 +01:00
Billy Laws
6b2510c7c5 Use GetGlobalTimeNs as opposed to clock ticks 2023-04-08 21:54:19 +01:00
Billy Laws
5dbfd7861a Add some explicit latency to sample count reporting
Some games have very tight scheduling requirements for their audio which can't really be matched on the host, adding a constant to the reported value helps to provide some leeway.
2023-04-03 23:11:36 +01:00
bunnei
831a0614ea Merge pull request #9969 from bylaws/master
Audio synchronisation improvements
2023-04-01 14:34:59 -07:00
Billy Laws
1794a33c52 audio_core: No longer stall when sink queue is full
Now the audout and audren update rates are tied to the sink status stalling is no longer necessary.
2023-03-27 22:01:41 +01:00
Billy Laws
91d14c0022 Run clang-format 2023-03-27 22:01:41 +01:00
Billy Laws
d3f0149af2 audio: Wait for samples on the emulated DSP side to avoid desyncs
Waiting on the host side is inaccurate and leads to desyncs in the event of the sink missing a deadline that require stalls to fix. By waiting for the sink to have space before even starting rendering such desyncs can be avoided.
2023-03-27 21:34:28 +01:00
Billy Laws
7e7ad78aaf audio: Interpolate system manager sample count using host sink sample info
This avoids the need to stall if the host sink sporadically misses the deadline, in such a case the previous implementation would report them samples as being played on-time, causing the guest to send more samples and leading to a gradual buildup.
2023-03-26 22:48:57 +01:00
Liam
6eaef51cf2 memory: rename global memory references to application memory 2023-03-23 20:28:47 -04:00
Liam
5be8a74b0c general: fix spelling mistakes 2023-03-12 11:33:01 -04:00
liamwhite
2b8955aaa4 Merge pull request #9917 from Morph1984/the-real-time
native_clock: Re-adjust the RDTSC frequency to its real frequency
2023-03-10 13:55:11 -05:00
Morph
ddb330121a core: Promote CPU/GPU threads to time critical
And also demote Audren and CoreTiming to High thread priority.
2023-03-07 21:17:46 -05:00
Liam
ea36f70e02 hle: rename legacy errors to Results 2023-03-06 20:58:42 -05:00
Kelebek1
ed68646fa7 Fix a bug with the Reverb command in reading from the pre_delay line. 2023-03-02 06:00:55 +00:00
bunnei
bba16a8016 Merge pull request #9769 from Kelebek1/audio_oob
[audio_core] Fix depop prepare
2023-02-16 12:26:23 -08:00
liamwhite
207fdfe57d Merge pull request #9796 from liamwhite/current
general: rename CurrentProcess to ApplicationProcess
2023-02-15 17:42:45 -05:00
arades79
60a68839ee remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14 12:35:39 -05:00
arades79
adcef452e0 add static lifetime to constexpr values to force compile time evaluation where possible
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14 12:33:11 -05:00
Liam
c68577384a general: rename CurrentProcess to ApplicationProcess 2023-02-13 19:03:12 -05:00
Kelebek1
4aee835d49 Fix biquad filter command's state buffer offset 2023-02-13 16:21:29 +00:00
Kelebek1
b5421d05cd Add fallback for memory read/write in case the address goes over a 4K page 2023-02-11 16:27:43 +00:00
Kelebek1
5c8140092f Fix depop prepare receiving bad mix infos and writing out of bounds, and update aux a bit, may help 2023-02-11 10:21:25 +00:00
Merry
46ce21d3e2 biquad_filter: Clamp f64 in ApplyBiquadFilterFloat 2023-02-10 20:43:34 +00:00
Merry
f35302d4bf biquad_filter: Fix rounding in ApplyBiquadFilterInt 2023-02-10 20:34:52 +00:00
Narr the Reg
326d8c0905 audio: cubeb: Fix yuzu crashing when it test for latency 2023-02-09 19:38:03 -06:00
Merry
258af9443a upsample: Fix coefficient format 2023-01-14 17:09:03 +00:00
Merry
fb1b6948c1 audio_core: Fix off-by-one error in upsampler 2023-01-14 15:19:11 +00:00
Liam
0e00bb1111 cmake: make cubeb and SDL2 optional 2022-12-28 17:29:32 -05:00
Kelebek1
501ea58598 Signal buffer event on audio in/out system stop, and force remove all registered audio buffers 2022-12-16 16:07:24 +00:00
Liam
6f23b5f495 audio_core: remove explicitly defaulted and implicitly deleted constructors 2022-12-10 13:05:15 -05:00
Alexandre Bouvier
75f9183846 cmake: use sdl2 imported target 2022-12-06 01:26:30 +01:00
Alexandre Bouvier
325a016cd2 cmake: prefer system libraries 2022-12-04 17:09:25 +01:00
liamwhite
c53a3d3f37 Merge pull request #9300 from ameerj/pch
CMake: Use precompiled headers to improve compile times
2022-12-03 14:10:06 -05:00
liamwhite
e20c5a0b7f Merge pull request #9289 from liamwhite/fruit-company
general: fix compile for Apple Clang
2022-12-03 12:09:21 -05:00
ameerj
fb155dbffc CMake: Consolidate common PCH headers 2022-11-30 18:30:30 -05:00
Fernando S
c04a159cd9 Merge pull request #9320 from yuzu-emu/fix-audio-suspend
AudioCore: Take suspend lock when stalling the running process.
2022-11-30 16:41:32 +01:00
bunnei
9ac846fece audio_core: sink_stream: Hold the suspend lock when process is stalled.
- Prevents us from clashing with other callers trying to un/stall.
2022-11-29 20:32:06 -08:00
ameerj
bbf3e7f313 CMake: Use precompiled headers 2022-11-29 18:50:49 -05:00
lat9nq
868c5ca1cb CMake: Directly link to SDL2-static when appropriate
Trying to be lazy and alias SDL2 to SDL2-static causes issues in later
versions of CMake. Just use the same condition to tell which one to use.
2022-11-28 23:21:14 -05:00
Liam
5a712bb51a general: fix compile for Apple Clang 2022-11-22 22:22:28 -05:00
Kelebek1
59c4dc2f32 Use the maximum input index for samples buffer span size, not just the input count 2022-11-22 15:32:11 +00:00
Kyle Kienapfel
d886438754 Add break for default cases
Visual Studio has an option to search all files in a solution, so I
did a search in there for "default:" looking for any missing break
statements.

I've left out default statements that return something, and that throw
something, even if via ThrowInvalidType. UNREACHABLE leads towards throw

R_THROW macro leads towards a return
2022-11-13 16:30:55 -08:00
Liam
9509fb30a4 Initial ARM64 support 2022-11-09 16:58:49 -05:00
Lioncash
a8b7993c88 audio_in/out_system: Pass Initialize members by value where applicable
applet_resource_user_id isn't actually modified and is just assigned to
a member variable, so this doesn't need to be a mutable reference.

Similarly, the device name itself isn't modified and is only moved. We
pass by value here, since we can still perform the move, but eliminate a
sneaky set of calls that can unintentionally destroy the original
string. Given how nested the calls are, it's good to get rid of this
potential vector for a use-after-move bug.
2022-10-26 11:21:48 -04:00
Morph
3dd414f844 general: Resolve -Wclass-memaccess 2022-10-22 15:02:04 -04:00
Morph
9fba74d245 general: Enforce C4800 everywhere except in video_core 2022-10-22 15:02:04 -04:00
Morph
4bad20dc5f CMakeLists: Remove all redundant warnings
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-22 15:02:04 -04:00
Kelebek1
2da6a39c19 Update audio_core for firmware 15.0.0 2022-10-19 06:16:15 +01:00