Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
k_server_session: translate special header for non-HLE requests
|
|
android: Visualize disabled home options
|
|
Allow for displaying options in the home options that are disabled with messages that explain why they are disabled.
This includes reasoning for the GPU driver installation button.
|
|
Use spans over guest memory where possible instead of copying data
|
|
input_common: set `SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS` to 0
|
|
android: Don't prompt to save user data on uninstall
|
|
settings: Catch runtime error from STL
|
|
While this can be convenient in some scenarios, this will be a big problem for users trying to sideload different APK versions. If they forget the last one they had installed, they could have problems installing a new copy.
|
|
arm_interface: correct breakpoint rewind condition
|
|
|
|
This function throws a runtime error we can catch on old Windows 10
installs, so we can catch it here rather than disable this path for
everybody.
|
|
settings: Disable C++20 time zone path on MSVC
|
|
|
|
This allows to share the mappings between Nintendo and non-Nintendo controllers.
Breaks the controller configuration for existing users who are using a Nintendo controller.
(Documentation of the hint https://github.com/libsdl-org/SDL/blob/92b3c53c92971e685254fd89f89ce6bde8cea60e/include/SDL_hints.h#L512-L532)
|
|
main: Fix install progress calculation
|
|
input_common: Avoid potential division by zero
|
|
|
|
|
|
The increased buffer size means that that progress bar size has to be adjusted
|
|
|
|
Even though it compiles and runs fine on the latest Windows versions,
older LTSC builds will crash due to lacking support somewhere in the OS.
For now just disable it for MSVC until either Microsoft fixes this or we
no longer support 1809 LTSC.
|
|
vulkan_common: use device local preferred for image memory
|
|
service: nfc: Ensure controller is in the correct mode
|
|
Fix regression by unreal engine fix pr #11009
|
|
|
|
version check.
|
|
video_core: vulkan_device: Fix S8Gen2 dynamic state checks.
|
|
android: Input overlay updates
|
|
|
|
|
|
|
|
|
|
|
|
Now within the Input Overlay file, there is a version that will determine when the overlay will be reset. This is intended for breaking changes like the ones we had with the additions of percentage based layouts or the addition of foldable/portrait layouts. This also includes versions for each individual layout so we don't have to reset every layout if only one is broken.
Additionally, this includes new L3/R3 buttons.
|
|
|
|
core_timing: Remove GetCurrentTimerResolution in CoreTiming loop
|
|
Add support for VK_KHR_image_format_list
|
|
kernel: Synchronize
|
|
Other programs may change this value, but if thousands of syscalls in this loop is undesirable, then we can just set this once.
|
|
android: Rework MemoryUtil
|
|
Memory Tracking: Add mechanism to register small writes when gpu page is contested by GPU
|
|
fsmitm_romfsbuild: avoid full path lookups
|
|
|
|
This reverts commit 1fc47361a12afd91d8ea0b76378e0b3d4feb93a6.
|
|
Minor cleanup in BufferCacheRuntime::ReserveNullBuffer
|
|
vulkan: Improvements to macOS surface creation
|
|
general: Misc changes that did not deserve their own PRs
|
|
sink_stream: Resolve heap buffer corruption due to out of bounds write
|