Commit Graph

6523 Commits

Author SHA1 Message Date
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
Joel Linn 00e7de9297 [CPU] Improve vrsqrtefp accuracy 2022-02-16 17:09:28 -06:00
Joel Linn d64848245d [CPU] Improve vrefp accuracy 2022-02-16 17:09:28 -06:00
Triang3l 294c76f7c4 [UI] Remove `virtual` from Window::IsFullscreen (tracked entirely by common code) 2022-02-16 20:37:53 +03:00
Triang3l 9e803ccf25 [D3D12] Pad kBlendOpMap with dummy values for all 3 bits 2022-02-15 23:02:26 +03:00
Triang3l 74c109273c [UI] Add PerMonitor fallback to Windows dpiAwareness 2022-02-14 12:35:08 +03:00
Triang3l 09f6081b16 [Vulkan] Fix shader bytecode path in premake5.lua 2022-02-13 23:29:46 +03:00
Triang3l e57db52285 [UI] Enable Windows PMv2 DPI awareness accidentally kept disabled after testing 2022-02-13 23:10:19 +03:00
Triang3l 7652b321d0 [UI] Fix Windows 10 1607+ DPI function loading 2022-02-13 23:07:27 +03:00
Triang3l 7fc940422c [UI] Windows AdjustWindowRect and GetClientRect usage cleanup 2022-02-13 23:01:25 +03:00
Triang3l be5f7db3ef [D3D12] Fixed-function state cleanup 2022-02-13 21:50:00 +03:00
Triang3l 325ae443da [D3D12] Rename current_cached_pipeline_ to current_guest_pipeline_ 2022-02-13 21:21:49 +03:00
Triang3l 10ec47e1fe [GPU] Move common-face polygon offset to draw_util 2022-02-13 21:18:02 +03:00
Triang3l 8d07c79897 [GPU] Cleanup RB_COLOR_MASK and RB_DEPTHCONTROL normalization 2022-02-13 20:50:31 +03:00
Triang3l 8ca67b8aa7 [Vulkan] Expose relevant portability subset features 2022-02-13 20:19:01 +03:00
Triang3l 0590346084 [Vulkan] Add Vulkan-Headers and VMA submodules 2022-02-13 20:08:08 +03:00
Triang3l 9b1fdac986 [UI] UI common shaders to XeSL 2022-02-06 22:48:38 +03:00
Triang3l e07ed95f53 [Build] Wrap XeSL in GLSL via #include to keep line numbers 2022-02-06 18:25:55 +03:00
Margen67 a160e9bae7 Bug report template changes
Remove title.
Add bug label.
Make id first property.
2022-02-06 14:24:35 +03:00
Margen67 22b0e6ca88 Enable blank issues 2022-02-06 14:24:35 +03:00
Triang3l 4480437a3d [SPIR-V] xb genspirv > buildshaders + opt + remap + .xesl 2022-02-05 17:07:07 +03:00
Wunkolo ea992eda1f [x64] Fix missing BMI2 emit-feature detection
We only tested for BMI1 but not for BMI2, so we've been missing out on
BMI2 performance gains for a little while. Oops.
2022-02-05 12:08:32 +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 52ec0acd0c [App] Add text saying that post-processing is vendor-independent 2022-02-01 22:29:14 +03:00
Triang3l 413d7ded49 [UI] Android surface [skip appveyor] 2022-02-01 22:18:04 +03:00
Triang3l c6fc8f706a [Base] GetAndroidThreadJniEnv capitals, move JNI usage tips there 2022-02-01 21:33:20 +03:00
Triang3l 009f709ad4 [Base] Remove Android jfieldIDs used only once from the file scope 2022-01-31 13:00:28 +03:00
Triang3l d998c13ee8 [Base] Explain why no Android activity in xenia-base [ci skip] 2022-01-31 12:12:57 +03:00
Triang3l 3f817fb241 [Base] Android JNIEnv attachment and LaunchWebBrowser 2022-01-30 23:35:40 +03:00
Triang3l 54b057a46b [Android] Switch to Gradle 7.1.0 2022-01-30 18:36:59 +03:00
Triang3l d2ef8d3300 [Base] Android error reporting via SIGABRT/RuntimeException 2022-01-30 18:36:11 +03:00
Joel Linn c5e3332640 [HID] Update SDL to 2.0.20 2022-01-30 08:30:25 -06:00
Triang3l 2639f2590f [AppVeyor] Skip all non-Windows commits [ci skip] 2022-01-30 13:22:32 +03:00
Triang3l 50cf96ff36 [D3D12] Don't drain PSO preload creation queue if not queueing at all 2022-01-30 12:37:14 +03:00
Rick Gibbed 4b8740d94f Don't recursively init/update submodules.
Don't recursively init/update submodules.

When recursive fetching is desireable, set
fetchRecurseSubmodules = true in .gitmodules for the relevant
submodule.
2022-01-29 22:48:24 -06:00
Rick Gibbed 0dfbb67988
[AppVeyor] Revert to VS2019.
[AppVeyor] Revert to VS2019 due to a possible compiler bug.
2022-01-29 12:15:34 -06:00
gibbed 306ee85514 [App] Add Compatibility help menu item. 2022-01-29 08:02:20 -06:00
gibbed c6b2b1e8eb [App] Replace Website help menu item with FAQ. 2022-01-29 08:02:20 -06:00
gibbed 7019205810 [App] Rename ShowCommitID to ShowBuildCommit. 2022-01-29 08:02:20 -06:00
Triang3l 22eb8747d3 [GPU/Kernel] Fix space-prefixed hexadecimal number printing 2022-01-29 14:02:55 +03:00
Triang3l fe3f0f26e4 [UI] Image post-processing and full presentation/window rework
[GPU] Add FXAA post-processing
[UI] Add FidelityFX FSR and CAS post-processing
[UI] Add blue noise dithering from 10bpc to 8bpc
[GPU] Apply the DC PWL gamma ramp closer to the spec, supporting fully white color
[UI] Allow the GPU CP thread to present on the host directly, bypassing the UI thread OS paint event
[UI] Allow variable refresh rate (or tearing)
[UI] Present the newest frame (restart) on DXGI
[UI] Replace GraphicsContext with a far more advanced Presenter with more coherent surface connection and UI overlay state management
[UI] Connect presentation to windows via the Surface class, not native window handles
[Vulkan] Switch to simpler Vulkan setup with no instance/device separation due to interdependencies and to pass fewer objects around
[Vulkan] Lower the minimum required Vulkan version to 1.0
[UI/GPU] Various cleanup, mainly ComPtr usage
[UI] Support per-monitor DPI awareness v2 on Windows
[UI] DPI-scale Dear ImGui
[UI] Replace the remaining non-detachable window delegates with unified window event and input listeners
[UI] Allow listeners to safely destroy or close the window, and to register/unregister listeners without use-after-free and the ABA problem
[UI] Explicit Z ordering of input listeners and UI overlays, top-down for input, bottom-up for drawing
[UI] Add explicit window lifecycle phases
[UI] Replace Window virtual functions with explicit desired state, its application, actual state, its feedback
[UI] GTK: Apply the initial size to the drawing area
[UI] Limit internal UI frame rate to that of the monitor
[UI] Hide the cursor using a timer instead of polling due to no repeated UI thread paints with GPU CP thread presentation, and only within the window
2022-01-29 13:22:03 +03:00
Pseudo-Kernel 372bdd3ec9
[APU] XMA: Fix audio loop handling.
Handles audio loop if loop_start < loop_end.
Need to handle additional cases like loop_start > loop_end.
2022-01-29 02:49:00 -06:00
TranzRail 1d51b574ec [Kernel] Add PVR opcode (includes cvars support) 2022-01-29 02:44:55 -06:00
Wunkolo 24205ee860 [x64] Fix `VECTOR_SH{L,R,A}_V128(Int8)` masking
[AltiVec](https://www.nxp.com/docs/en/reference-manual/ALTIVECPEM.pdf)
doc says that it just uses the lower `log2(n)` bits of the shift-amount
rather than the whole element-sized value. So there is no need to handle
an overflow. Also adjusts 64-bit literals to utilize the explicit
`UINT64_C` type.
2022-01-29 02:39:34 -06:00
Wunkolo f8350b5536 [x64] Add `VECTOR_SH{R,L}_I8_SAME_CONSTANT` unit test
This is to target the new GFNI-based optimization for the Int8 case.
2022-01-29 02:39:34 -06:00
Wunkolo bd9a290b30 [x64] Add `GFNI`-based optimization for `VECTOR_SH{R,L}_V128(Int8)`
In the `Int8` case of `VECTOR_SH{R,L}_V128`, when all the values are the
same, then a single-instruction `gf2p8affineqb` can be emitted that does
an int8-based arithmetic-shift, utilizing GF(8) arithmetic.

More info here:
https://wunkolo.github.io/post/2020/11/gf2p8affineqb-int8-shifting/

Also fixes the iteration-type for when detecting if all of the simd
lanes are the same value(was iterating `u16` and not `u8`)
2022-01-29 02:39:34 -06:00