| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The parameter is used in this function, so this suppression isn't
necessary.
|
|
Resolves numerous deprecation warnings throughout the codebase due to
inclusion of this header. Now building core should be significantly less
noisy (and also relying on less global state).
This also uncovered quite a few modules that were relying on indirect
includes, which have also been fixed.
|
|
Unicorn long-since lost most of its use, due to dynarmic gaining support
for handling most instructions. At this point any further issues
encountered should be used to make dynarmic better.
This also allows us to remove our dependency on Python.
|
|
Fixes compilation on MSVC
|
|
kernel: Use the current time as the default RNG seed
|
|
This member was only used on asserts and it triggered data races.
Remove it to fix them.
|
|
Use the current time, not zero, as the default RNG seed.
|
|
|
|
This slipped through the cracks due to another change being merged
before the compiler flag changes.
|
|
core: Fix clang build
|
|
kernel: Implement host thread register methods without locking
|
|
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
|
|
Locks on GetCurrentHostThreadID were causing performance issues
according to Visual Studio's profiler. It was consuming twice the time
as arm_interface.Run(). The cost was not in the function itself but in
the lockinig it required.
Reimplement these functions using atomics and static storage instead of
an unordered_map. This is a side effect to avoid locking and using linked
lists for reads.
Replace unordered_map with a linear search.
|
|
Makes our error coverage a little more consistent across the board by
applying it to Linux side of things as well. This also makes it more
consistent with the warning settings in other libraries in the project.
This also updates httplib to 0.7.9, as there are several warning
cleanups made that allow us to enable several warnings as errors.
|
|
With this, the kernel finally doesn't depend directly on the global
system instance anymore.
|
|
kernel/scheduler: Use std::mutex instead of spin lock
|
|
hle/scheduler: Fix data race in is_context_switch_pending
|
|
As reported by tsan, SelectThreads could write to
is_context_switch_pending holding a mutex while SwitchToCurrent reads it
without holding any.
It is assumed that the author didn't want an atomic here, so the code is
reordered so that whenever is_context_switch_pending is read inside
SwitchToContext, the mutex is locked.
|
|
As reported by tsan, host_thread_ids could be read while
any of the RegisterHostThread variants were called.
To fix this, lock the register mutex when yuzu is running in multicore
mode and GetCurrentHostThreadID is called.
|
|
system_control: Make functions internally linked where applicable
|
|
Allows the compiler to warn about cases where the constructor is used
but then immediately discarded, which is a potential cause of
locking/unlocking bugs.
|
|
|
|
kernel: Remove unused variables
|
|
These functions are only ever used internally as implementation details
for GenerateRandomRange(), so these can be given internal linkage.
|
|
Resolves a few compiler warnings.
|
|
|
|
Makes our type conversion explicit.
|
|
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
|
|
Makes the interface future-proofed for supporting other platforms in the event we ever support platforms with differing pointer sizes. This way, we have a type in place that is always guaranteed to be able to represent a pointer exactly.
|
|
core_timing: Make usage of nanoseconds more consistent in the interface
|
|
kernel: Remove unused variables
|
|
kernel/thread: Remove unimplemented function prototype
|
|
address_space_info: Make use of designated initializers
|
|
This isn't used, so it can be removed.
|
|
Resolves some compiler warnings in the Linux build.
|
|
|
|
All these do are return std::function instances of static functions, so
these can be used without an instance of the CPU manager.
|
|
kernel/handle_table: Remove usages of the global system instance
|
|
Enforces our desired time units directly with a concrete type.
|
|
|
|
These aren't directly important or commonly used within the process, so
we can move these to the bottom to allow everything else to be more
likely to be within a cache line.
|