Commit Graph

23621 Commits

Author SHA1 Message Date
4347dd26c6 buffer_cache: Increase number of texture buffers 2023-07-15 23:09:58 +03:00
d7c532d889 Fixes and workarounds to make UBSan happier on macOS
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.
2023-07-15 12:00:28 -07:00
474db2d8da kernel: reduce page table region checking 2023-07-14 22:33:10 -04:00
a85ce8ea56 k_process: PageTable -> GetPageTable 2023-07-14 21:43:15 -04:00
04868ab9da file_sys/content_archive: Detect compressed NCAs (#11047) 2023-07-12 23:17:18 +02:00
63a0a1f826 time_zone: Clean up includes 2023-07-12 03:03:03 -04:00
9e0d6f7d54 time_zone: Swap subtraction order 2023-07-12 03:02:45 -04:00
13755c0903 time_zone: Account for leap years
Protects against invalid hour offsets during transitions to years
following leap years.
2023-07-12 02:34:02 -04:00
c3050c1b48 cmake: allow using system VMA library 2023-07-12 04:51:45 +02:00
28598c9090 Merge pull request #10985 from liamwhite/handle-translate
k_server_session: translate special header for non-HLE requests
2023-07-11 16:49:24 -07:00
11cb4d88f0 Merge pull request #11070 from t895/home-setting-warning
android: Visualize disabled home options
2023-07-11 16:48:57 -07:00
4b870b28e8 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.
2023-07-10 22:17:19 -04:00
ce7c418e0c Merge pull request #10996 from Kelebek1/readblock_optimisation
Use spans over guest memory where possible instead of copying data
2023-07-10 18:54:19 -07:00
169b198d08 Merge pull request #11050 from SuperSamus/sdl-button-labels
input_common: set `SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS` to 0
2023-07-10 18:53:16 -07:00
833306bf5e settings: Disable C++20 tzdb path on MinGW
This path always results in Etc/UTC on MinGW, which often is not
close to the local time zone.
2023-07-10 17:52:35 -04:00
90d76333da time_zone: Remove string ops for determing 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.
2023-07-10 17:51:34 -04:00
e32ce6cc69 Merge pull request #11067 from t895/fragile-data
android: Don't prompt to save user data on uninstall
2023-07-09 17:20:14 -07:00
79e289404b Merge pull request #11055 from lat9nq/tzdb-catch-
settings: Catch runtime error from STL
2023-07-09 19:27:41 -04:00
a6e467cd55 android: Don't prompt to save user data on uninstall
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.
2023-07-09 19:02:42 -04:00
8a87a41f2d Merge pull request #11063 from liamwhite/oops
arm_interface: correct breakpoint rewind condition
2023-07-09 16:24:49 -04:00
82568412f6 arm_interface: correct breakpoint rewind condition 2023-07-09 12:03:25 -04:00
1255196731 settings: Catch runtime error from STL
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.
2023-07-09 02:26:58 -04:00
9ce5d39829 Merge pull request #11030 from lat9nq/tz-restrict-msvc
settings: Disable C++20 time zone path on MSVC
2023-07-09 01:45:00 -04:00
4540bcfaf7 k_server_session: translate special header for non-HLE requests 2023-07-08 01:01:49 -04:00
aa882cdaa8 input_common: set SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS to 0
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 92b3c53c92/include/SDL_hints.h (L512-L532))
2023-07-07 21:59:47 +02:00
45ea712d39 Merge pull request #10999 from Morph1984/fix-install-progress
main: Fix install progress calculation
2023-07-06 18:57:25 -04:00
95c5b715b1 Merge pull request #11031 from german77/zero
input_common: Avoid potential division by zero
2023-07-06 18:57:07 -04:00
8bf46f48f8 vfs_real: use open file size for getting size (#11016) 2023-07-06 23:43:53 +02:00
9d7671ec3b main: Use 1_MiB as a constant for copy buffer size 2023-07-06 13:04:27 -04:00
5d0a051abb main: Fix install progress calculation
The increased buffer size means that that progress bar size has to be adjusted
2023-07-06 00:22:38 -04:00
4c84bce171 input_common: Avoid potential division by zero 2023-07-05 17:42:16 -06:00
302a735135 settings: Disable C++20 path on MSVC
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.
2023-07-05 15:58:12 -04:00
d8eb37fbec Merge pull request #10994 from liamwhite/ue4-preferred
vulkan_common: use device local preferred for image memory
2023-07-05 09:23:56 -04:00
ef7d44e243 Merge pull request #11006 from german77/nfc_nfc
service: nfc: Ensure controller is in the correct mode
2023-07-05 09:23:47 -04:00
f71140fbd9 Merge pull request #11012 from gidoly/metroid-fix
Fix regression by unreal engine fix pr #11009
2023-07-05 09:23:34 -04:00
f1cfd9c219 Fix ScratchBuffer moves 2023-07-04 16:02:58 +01:00
1462db4694 video_core: vulkan_device: Disable timeline semaphore on Turnip, fix qcom version check. 2023-07-03 19:25:06 -07:00
44af2e32a4 Merge pull request #10964 from bunnei/gpu-remove-qcom-check
video_core: vulkan_device: Fix S8Gen2 dynamic state checks.
2023-07-03 16:59:29 -07:00
3c88547c74 Merge pull request #10943 from t895/stick-modifiers
android: Input overlay updates
2023-07-03 14:44:15 -07:00
cef7aaa8ec video_core: vulkan_device: Change to driver version check. 2023-07-03 14:25:06 -07:00
b41006004b android: Reintroduce launch mode as single top 2023-07-03 09:31:02 -06:00
408a9cd50d oops re open 2023-07-03 20:25:23 +09:00
d2b62ae401 Use toUtf8() for string passed to DBus 2023-07-03 14:46:17 +07:00
9cd698e8ad service: nfc: Ensure controller is in the correct mode 2023-07-02 19:21:16 -06:00
68f6f2671b android: Version the input overlay
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.
2023-07-02 20:19:01 -04:00
6f7cb69c94 Use spans over guest memory where possible instead of copying data. 2023-07-02 23:09:48 +01:00
95ceae40e6 Merge pull request #10998 from Morph1984/qt-stop-messing-with-me
core_timing: Remove GetCurrentTimerResolution in CoreTiming loop
2023-07-02 17:38:28 -04:00
5e3695ecaa Merge pull request #10479 from GPUCode/format-list
Add support for VK_KHR_image_format_list
2023-07-02 17:38:21 -04:00
daaf03942f Merge pull request #10969 from Morph1984/k-synchronize
kernel: Synchronize
2023-07-02 17:38:14 -04:00
c3fbc8d2fe core_timing: Remove GetCurrentTimerResolution in CoreTiming loop
Other programs may change this value, but if thousands of syscalls in this loop is undesirable, then we can just set this once.
2023-07-02 15:08:04 -04:00