| Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
|
|
OpenHardwareOpusDecoderEx.
- This is used by the latest update of Doom Eternal.
|
|
Used in Ninja Gaiden games.
|
|
Transition to PascalCase for result names.
|
|
Transition to PascalCase for result names.
|
|
Now that we have most of core free of shadowing, we can enable the
warning as an error to catch anything that may be remaining and also
eliminate this class of logic bug entirely.
|
|
|
|
|
|
|
|
|
|
Now all that remains is for kernel code to be 'shadow-free' and then
-Wshadow can be turned into an error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes Devil May Cry
|
|
This requires making several types trivial and properly initialize
them whenever they are called.
|
|
- This makes it such that we can safely access service members from CoreTiming thread.
|
|
Completely removes all usages of the global system instance within the
services code by passing in the using system instance to the services.
|
|
|
|
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
|
|
audio_core: Apollo Part 1, AudioRenderer refactor
|
|
|
|
C++20 deprecates capturing the this pointer via the '=' capture.
Instead, we replace it or extend the capture specification.
|
|
WriteBuffer (#4465)
* ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer
With the support of C++20, we can use concepts to deduce if a type is an STL container or not.
* More agressive concept for stl containers
* Add -fconcepts
* Move to common namespace
* Add Common::IsBaseOf
|
|
|
|
|
|
ListAudioInsAutoFiltered, OpenAudioInProtocolSpecified
Closes #2874
|
|
service: Update function tables
|
|
* audio_renderer: Preliminary BehaviorInfo
* clang format
* Fixed IsRevisionSupported
* fixed IsValidRevision
* Fixed logic error & spelling errors & crash
* Addressed issues
|
|
Keeps the service function tables up to date.
Updated based off information on SwitchBrew.
|
|
|
|
These aren't used, so they should be removed to reduce compilation
warnings.
|
|
- helpful to disambiguate Kernel::Memory namespace.
|
|
Allows reporting more cases where logic errors may exist, such as
implicit fallthrough cases, etc.
We currently ignore unused parameters, since we currently have many
cases where this is intentional (virtual interfaces).
While we're at it, we can also tidy up any existing code that causes
warnings. This also uncovered a few bugs as well.
|
|
trivial change,
see https://switchbrew.org/wiki/Audio_services#IHardwareOpusDecoder
|
|
With all of the trivial parts of the memory interface moved over, we can
get right into moving over the bits that are used.
Note that this does require the use of GetInstance from the global
system instance to be used within hle_ipc.cpp and the gdbstub. This is
fine for the time being, as they both already rely on the global system
instance in other functions. These will be removed in a change directed
at both of these respectively.
For now, it's sufficient, as it still accomplishes the goal of
de-globalizing the memory code.
|
|
Amends a few interfaces to be able to handle the migration over to the
new Memory class by passing the class by reference as a function
parameter where necessary.
Notably, within the filesystem services, this eliminates two ReadBlock()
calls by using the helper functions of HLERequestContext to do that for
us.
|