Triang3l
a3304d252f
[Base/GPU] Cleanup float comparisons and NaN and -0 in clamping
...
C++ relational operators are supposed to raise FE_INVALID if an argument is
NaN, use std::isless/greater[equal] instead where they were easy to locate
(though there are other places possibly, mostly min/max and clamp usage was
checked).
Also fixes a copy-paste error making the CPU shader interpreter execute
MINs as MAXs instead.
2024-05-12 19:21:37 +03:00
Triang3l
f964290ea8
[Base] Relax the system clock difference allowance in the test
...
Hopefully should reduce the CI failure rate, although this testing
approach is fundamentally flawed as it depends on OS scheduling.
2024-05-12 17:44:52 +03:00
Triang3l
f0ad4f4587
[Base] Add aliasing-safe xe::memory::Reinterpret
...
Accessing the same memory as different types (other than char) using
reinterpret_cast or a union is undefined behavior that has already caused
issues like #1971 .
Also adds a XE_RESTRICT_VAR definition for declaring non-aliasing pointers
in performance-critical areas in the future.
2024-05-12 17:28:16 +03:00
Adriano Martins
1887ea0795
[Base] Add missing #include <cstdint> to utf8.cc
2023-07-27 13:02:54 +03:00
Roy Stewart
07e81fe172
[Base] Filter out relative directories on linux
2023-06-09 19:47:28 -05:00
Roy Stewart
41c423109f
[Base] Set the path for posix file info
2023-06-09 19:43:49 -05:00
Gliniak
e110527bfe
[Base] ListFiles: Prevent leakage of file descriptors
2023-06-09 19:41:27 -05:00
Triang3l
624f2b2d9e
[Base] Android content URI file memory mapping
2022-07-17 16:34:17 +03:00
Triang3l
93a7918025
[Base] Android content URI file descriptor opening
2022-07-17 16:25:58 +03:00
Triang3l
34a952d789
[Base] Wrap strdup and strcasecmp in xe:: functions
2022-07-17 16:14:29 +03:00
Triang3l
500bbe9e0d
[Base] Use to_path for Android path argument loading
2022-07-16 13:42:04 +03:00
Triang3l
373b143049
[Base] Cvars from Android Bundle/Intent
2022-07-16 13:13:08 +03:00
Triang3l
415750252b
[Base] PosixMappedMemory: Close, Flush
2022-07-14 22:51:07 +03:00
Triang3l
65137e58bd
[Base] PosixMappedMemory: fd instead of stdio
...
Android ContentResolver, which is needed for content:// URIs, provides file descriptors rather than stdio files
2022-07-14 22:11:46 +03:00
Triang3l
9fd63519bf
[Base] Make MappedMemory non-copyable
2022-07-14 22:04:06 +03:00
Triang3l
326e718035
[CPU] MMIO: Arm64, load register writes + exception cleanup
2022-07-06 21:05:05 +03:00
Triang3l
d51fafd07c
[Base] Linux Arm64 exception handler
2022-07-05 20:46:49 +03:00
Triang3l
40aa73f7d7
[Linux] Swap read/write in x64 page fault handler + exception code cleanup
2022-07-04 23:51:26 +03:00
Triang3l
a9cbd9cc5f
[Linux] Update RIP after handling an exception
2022-07-04 23:24:26 +03:00
uytvbn
54aac81268
[Linux] Implement exception handler
2022-07-04 23:04:27 +03:00
Triang3l
35d4ea59c6
[Base] Remove exception_handler_linux.cc
2022-07-04 23:02:11 +03:00
Rick Gibbed
a3e5ea8575
[Base] Fix missing include in utf8.cc.
2022-05-27 17:56:14 -05:00
Triang3l
12ff951972
[Base] More flexible Xenos float16 conversion functions
2022-04-26 22:35:37 +03:00
Joel Linn
e3dd873892
[Base] Fix wait for callback return
...
- If wait item has disarmed itself and is then disarmed by another
thread, still wait for the callback to return to meet guaratees
2022-04-26 13:56:11 -05:00
Joel Linn
3b4dc7da3b
[Base] Use disruptorplus spin wait
...
- Attempt to fix deadlocks when using valgrind on CI
2022-04-26 13:56:11 -05:00
Joel Linn
e59a0e1206
[Base] Relax some timing constraints.
...
- Because setting the timer is scheduled by us but the wait on POSIX is
currently scheduled by pthreads, this solves issues on overprovisioned
CIs
2022-04-26 13:56:11 -05:00
Joel Linn
4a36a7962c
[Base] Remove unneeded delay scheduler
2022-04-26 13:56:11 -05:00
Joel Linn
15950eec37
[Base] Use chrono APIs for Timers
2022-04-26 13:56:11 -05:00
Joel Linn
1478be14c7
[Base] Add chrono tests
2022-04-26 13:56:11 -05:00
Joel Linn
23eef94984
[Base] Add chrono support
...
- WinSystemClock is a FILETIME clock without scaling, can convert to
system_time
- XSystemClock is a FILTETIME clock with scaling applied, can only
convert to WinSystemClock
2022-04-26 13:56:11 -05:00
Joel Linn
9b4168cce9
[Base] Make HighResolutionTimer platform agnostic
2022-04-26 13:56:11 -05:00
Joel Linn
75357caeaf
[Base] Add TimerQueue
...
- Cross platform functionality similar to Windows' `CreateTimerQueue`
with `WT_EXECUTEINTIMERTHREAD`
2022-04-26 13:56:11 -05:00
Joel Linn
a85fc25040
[Base] Add more tests for HighResolutionTimer
2022-04-26 13:56:11 -05:00
Joel Linn
b72ab7b4a4
[Base] Refactor POSIX timers, fix user-after-free
...
Since timer_delete does not clean up already queued signals, signal info
data needs to be retained after timer deletion and object destruction in
order to circumvent use-after-free bugs.
2022-03-08 12:17:57 -06:00
Joel Linn
257b904a5e
[Base] Add DelayScheduler class
...
Schedule callbacks whith the only guarantee that they will not be run for
the minimum duration specified. Useful for garbage collecting POSIX
timer_create() signal info data.
2022-03-08 12:17:57 -06:00
Joel Linn
e0f34b97fb
[Base] Check for correct thread in HResTimer tests
2022-03-08 12:17:57 -06:00
Joel Linn
fb741db2fe
[Base] Fix callback threads for POSIX timers
2022-03-08 12:17:57 -06:00
Joel Linn
986dcf4f65
[Base] Check success of sync primitive creation
...
- Mainly use `assert`s, since failure is very rare
- Forward failure of `CreateSemaphore` to guests because it is more easy
to trigger with invalid initial parameters.
2022-03-08 12:17:57 -06:00
Joel Linn
6bd1279fc0
[Base] Forward handle=null as nullptr for win
2022-03-08 12:17:57 -06:00
Joel Linn
4ea6e45e0c
[Base] Remove Sleeps from more test cases
...
Timing dependencies in this tests were causing spurious test failures:
- Create and Run Thread
- Test Thread QueueUserCallback
They have been largely replaced by spin waits.
2022-03-08 12:17:57 -06:00
Joel Linn
e75e0eb39c
[Base] Fix Semaphore::Create invalid parameters
2022-03-08 12:17:57 -06:00
Joel Linn
bb42829308
[Base] Fix WaitMultiple on POSIX
...
- Never use `cond_.notify_one()` because it may wake a thread that is
unrelated to the signalled wait handle, resulting in a lost wake and
possible deadlock. Wait conditions are to be checked by the threads
themselves.
- Refactor and simplify `WaitMultiple`
2022-03-08 12:17:57 -06:00
Joel Linn
ca6296089e
[Base] Remove timing dependency from test
...
- Use atomics and spin waits to synchronize threads for tests
- Improves test stability on CI
2022-03-08 12:17:57 -06:00
Joel Linn
49efbeaca8
[Base] Add spin wait helper to threading test
2022-03-08 12:17:57 -06:00
Radosław Gliński
6b45cf8447
[Base] Match exactly when no pattern in wildcard
2022-02-17 17:38:04 -06:00
Triang3l
ba28ef9717
[Win32] Declare Windows 7-11 support in the manifest
2022-02-17 20:38:52 +03:00
Triang3l
74c109273c
[UI] Add PerMonitor fallback to Windows dpiAwareness
2022-02-14 12:35:08 +03:00
Triang3l
e57db52285
[UI] Enable Windows PMv2 DPI awareness accidentally kept disabled after testing
2022-02-13 23:10:19 +03:00
Gliniak
7977d7ab98
[Base] Changed entry point to wmain for Windows
...
This prevents subapps from crashing when executing wmain specific functions
2022-02-01 15:50:48 -06:00
Triang3l
c6fc8f706a
[Base] GetAndroidThreadJniEnv capitals, move JNI usage tips there
2022-02-01 21:33:20 +03:00