Age | Commit message (Collapse) | Author |
|
The new enum macros don't support setting values directly.
For LastAA and LastFilter, this means we need a simpler approach to loop
around the toggle in the frontend...
|
|
This lets us define an enum and all the textual representations
of its values in one swing. All for the price of some ugly macros.
|
|
|
|
|
|
Clang versions < 15 have compile issues with explicit instantiation.
Disable it for these versions.
|
|
|
|
Fixes -Wshadow, -Wdeprecated, and catch by copy rather than by ref.
|
|
Almost a 2 year old migration setting now
|
|
|
|
|
|
Reduces the need for the compiler to duplicate this code, by about
100KB executable size.
|
|
ToString didn't have a constexpr if statement where needed.
Canonicalize missed an else, causing unreachable code error on MSVC.
|
|
Reduces compile times a tad on clang.
|
|
|
|
Using typeid without including typeinfo first produces an ill-formed program.
|
|
|
|
|
|
Groups graphics audio and system settings together in a way that
reflects the frontend. This also just conceptually groups them more
nicely than they were.
|
|
Also adds a couple characters that denotes the state of the setting.
M for modified, or not default.
C for custom, in context of per-game settings.
|
|
Gives every option of the enums a string literal via a macro.
|
|
|
|
|
|
Needs a considerable amount of management specific to some of
the comoboboxes due to the audio engine configuration.
general: Partial audio config implmentation
configure_audio: Implement ui generation
Needs a considerable amount of management specific to some of
the comoboboxes due to the audio engine configuration.
general: Partial audio config implmentation
settings: Make audio settings as enums
|
|
|
|
|
|
|
|
These don't need to be whole new types.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Will help with generating config UI later.
|
|
We can iterate through the AdvancedGraphics settings and generate the UI
during runtime. This doesn't help runtime efficiency, but it helps a ton
in reducing the amount of work a developer needs in order to add a new
setting.
|
|
LoadString: Sanitize input
settings: Handle empty string, remove redundant category
settings: Rename Input to Controls, FS to DataStorage
settings: Fix Controls groups information
settings: Move use_docked_mode to System (again)
settings: Document
settings: Add type identification function
settings: Move registry into values
settings: Move global_reset_registry into values
settings: Separate AdvGraphics from Renderer
settings: More document
squash
settings: Use linkage object
uisettings: Move registry into settings
Probably wont build without
uisettings: Use settings linkage object
config: Load settings with a map
Uses the new all_settings vector to load settings.
qt-config: Rename settings category
qt config: Rename to read category
config: Read/write contols category with for_each
This is extremely limited due to the complexity of the Controls group,
but this handles the the settings that use the interface.
qt-config: Use new settings registry
qt-config: Read/write advgrphics
qt-config: Use settings linkage object
yuzu_cmd: Load setting off of vector
cmd-config: Finish settings rename
config: Read controls settings group with for_each
cmd/config: Move registry into values
cmd: Read adv graphics
cmd-config: Use settings linkage object
|
|
core: Fix MSVC errors
|
|
|
|
Just puts them all neatly into one place.
|
|
These occur in the latest commits in LLVM Clang.
|
|
|
|
Implement SSL service
|
|
There are still some other issues not addressed here, but it's a start.
Workarounds for false-positive reports:
- `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`,
because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp)
of how big it thinks objects can be, specifically when dealing with
offset-to-top values used with multiple inheritance. Hopefully this
doesn't have a performance impact.
- `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks
is UB even though it at least arguably isn't. See the link in the
comment for more information.
Fixes for correct reports:
- `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to
avoid UB from pointer overflow (when pointer arithmetic wraps around
the address space).
- `KScheduler::Reload`: `thread->GetOwnerProcess()` can be `nullptr`;
avoid calling methods on it in this case. (The existing code returns
a garbage reference to a field, which is then passed into
`LoadWatchpointArray`, and apparently it's never used, so it's
harmless in practice but still triggers UBSan.)
- `KAutoObject::Close`: This function calls `this->Destroy()`, which
overwrites the beginning of the object with junk (specifically a free
list pointer). Then it calls `this->UnregisterWithKernel()`. UBSan
complains about a type mismatch because the vtable has been
overwritten, and I believe this is indeed UB. `UnregisterWithKernel`
also loads `m_kernel` from the 'freed' object, which seems to be
technically safe (the overwriting doesn't extend as far as that
field), but seems dubious. Switch to a `static` method and load
`m_kernel` in advance.
|
|
|
|
|
|
Protects against invalid hour offsets during transitions to years
following leap years.
|
|
Use spans over guest memory where possible instead of copying data
|
|
This path always results in Etc/UTC on MinGW, which often is not
close to the local time zone.
|
|
MinGW's strftime implementation does not work and cannot be used to
determine the time zone. Besides that, the string operations are
actually unnecessary since we can get the offset from
std::localtime.
Compare localtime to gmtime to find the zone offset on all platforms.
|