| Age | Commit message (Collapse) | Author |
|
|
|
Many of these aren't necessary and will cause this file to be required
to be recompiled whenever any changes to those files are made, which
lengthens compile times for no reason.
This also removes an unused metadata variable from AppLoader_XCI
|
|
Using LOG_TRACE here isn't a good idea because LOG_TRACE is only enabled
when yuzu is compiled in debug mode. Debug mode is also quite slow, and
so we're potentially throwing away logging messages that can provide
value when trying to boot games.
|
|
The thread field serves to indicate which thread a log is related to and
provides the length of the thread's name, so we can print that out,
ditto for modules.
Now we can know what threads are potentially spawning off logging
messages (for example Lydie & Suelle bounces between MainThread and
LoadingThread when initializing the game).
|
|
emu_window: Ensure WindowConfig members are always initialized
|
|
loader: Remove address mapping remnants from citra
|
|
kernel/svc: Log svcBreak parameters
|
|
mm_u: Move interface class into the cpp file
|
|
These mappings are leftovers from citra and don't apply to the Switch.
|
|
Given if we hit here all is lost, we should probably be logging the
break reason code and associated information to distinguish between the
causes.
|
|
Previously we weren't always initializing all members of the struct.
Prevents potentially wonky behavior from occurring.
|
|
Previously core itself was the library containing the code to gather
common information (build info, CPU info, and OS info), however all of
this isn't core-dependent and can be moved to the common code and use
the common interfaces. We can then just call those functions from the
core instead.
This will allow replacing our CPU detection with Xbyak's which has
better detection facilities than ours. It also keeps more
architecture-dependent code in common instead of core.
|
|
audout_u: Correct IAudioOut initializer list order
|
|
Added missing channel devices
|
|
Ensures both variants go through the same interface, and while we're at
it, add Finalize to provide the inverse of Initialize for consistency.
|
|
Now if changes are ever made to the behavior of the class, it doesn't
involve rebuilding everything that includes the mm_u header.
|
|
Orders elements in the precise order they'll be initialized.
|
|
No longer required. HaltExecution is a no-op if it is not currently executing.
|
|
|
|
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
|
|
card_image: Simplify return statement of GetSubdirectories()
|
|
Despite being covered by a global mutex, we should still ensure that the
class handles its reference counts properly. This avoids potential
shenanigans when it comes to data races.
Given this is the root object that drives quite a bit of the kernel
object hierarchy, ensuring we always have the correct behavior (and no
races) is a good thing.
|
|
|
|
|
|
Use an approximated amortized amount of ticks when advancing timing.
|
|
scheduler: Make HaveReadyThreads() a const member function
|
|
Fixed a bunch of race conditions when running in multicore mode.
|
|
Kernel/Mutex: Don't duplicate threads in the mutex waiter list.
|
|
We divide the number of ticks to add by the number of cores (4) to obtain a more or less rough estimate of the actual number of ticks added. This assumes that all 4 cores are doing similar work. Previously we were adding ~4 times the number of ticks, thus making the games think that time was going way too fast.
This lets us bypass certain hangs in some games like Breath of the Wild.
We should modify our CoreTiming to support multiple cores (both running in a single thread, and in multiple host threads).
|
|
The current core may have nothing to do with the core where the new thread was scheduled to run. In case it's the same core, then the following PrepareReshedule call will take care of that.
|
|
Another thread may write to this variable while the core in question is in the middle of checking for a reschedule request.
|
|
Another thread might be in the middle of an SVC, thus altering the state of the schedulers.
|
|
Another thread might be in the middle of a reschedule, thus altering the state of the schedulers.
|
|
WakeAfterDelay might be called from any host thread, so err on the side of caution and use the thread-safe CoreTiming::ScheduleEventThreadsafe.
Note that CoreTiming is still far from thread-safe, there may be more things we have to work on for it to be up to par with what we want.
|
|
Exit from AddMutexWaiter early if the thread is already waiting for a mutex owned by the owner thread.
This accounts for the possibility of a thread that is waiting on a condition variable being awakened twice in a row.
Also added more validation asserts.
This should fix one of the random crashes in Breath Of The Wild.
|
|
Makes it consistent with the other VFS interfaces and prevents implicit
construction.
|
|
struct should be used when the data type is very simple or otherwise has
no invariants associated with it. Given these are used to form a
hierarchy, class should be used instead.
|
|
Fixed invalid cast in loader
|
|
Fix logic in RealVfsFilesystem Create methods
Remove magic numbers
Fix regex errors
|
|
GetAudioDeviceServiceWithRevisionInfo (Used by Bloodstained: Curse of the Moon)
|
|
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
|
|
This function doesn't modify instance state, so the const qualifier can
be added to it.
|
|
As we're not handling any anything about the revision data for GetAudioDeviceServiceWithRevisionInfo, it's currently marked as stubbed. However for games this shouldn't affect the result. Proper revision info would be more for homebrew.
|
|
Prevents clang-format from butchering them.
|
|
This is required by ARMS.
|
|
Previously these were being unused (or partially unused). While we're at
it, use better naming to make it visibly obvious which variant of the
path is being used.
|
|
We have the aliases, so we may as well use 'em.
|
|
We don't need to write out the construction long-form, we can just let
the language itself work it out off the return type.
|
|
|
|
|