71 Commits

Author SHA1 Message Date
Stenzek
a9f1dd20c3
D3D12Device: Fix GPU-based validation being unconditionally enabled 2025-04-06 23:16:03 +10:00
Stenzek
eca113cd76
GPUDevice: Fix/improve compute shader support
Add multiple texture layout with/without UBO.
2025-04-06 23:16:02 +10:00
Stenzek
bbdc6ab4e0
Misc: Fix a bunch of code analysis warnings
Quite a few of these were legitimate.
2025-04-03 19:29:03 +10:00
Stenzek
acd684bca2
D3D12Device: Fix a couple of errors in ROV handling 2025-03-30 23:41:51 +10:00
Stenzek
b798d8f1aa
Settings: Add option for enabling GPU-based validation 2025-03-30 23:20:39 +10:00
Stenzek
231ba050a2
GPUThread: Switch to borderless if exclusive fullscreen fails
Better than ending up windowed.
2025-01-29 18:20:41 +10:00
Stenzek
be75a97efe
GPUDevice: Fix swap chain clear colour normalization 2025-01-22 18:23:11 +10:00
Stenzek
fb3e290133
GPUDevice: Move exclusive fullscreen to features
Also fixes it not enabling in D3D12 renderer.
2025-01-21 19:12:44 +10:00
Stenzek
389276bb03
GPUDevice: Normalize supports_texture_buffers => texture_buffers 2025-01-21 19:06:59 +10:00
Stenzek
609fa5c7d7
GPUDevice: Add sampler cache to base class
Removes per-backend bookkeeping in D3D12 and Vulkan.
2025-01-18 22:59:48 +10:00
Stenzek
9df59713da
GPUDevice: Put debug messages/scopes behind conditions
And completely compile them out in Release builds.

Gets Devel close to Release in terms of performance.
2024-12-01 23:21:33 +10:00
Stenzek
0faa9cf650
Build: Add Devel configuration
Gets you debug assertions and logging, while still producing an
optimized executable.
2024-12-01 23:21:33 +10:00
Stenzek
982dccb990
D3D12Device: Clang warning fixes 2024-11-25 16:30:23 +10:00
Stenzek
7eb1d4e092
GPUDevice: Support compressed textures 2024-11-24 23:29:29 +10:00
Stenzek
3ff1b04576
GPUDevice: Support generating mipmaps 2024-11-24 23:29:28 +10:00
Stenzek
e647192437
GPUDevice: Add compute shader support 2024-11-24 23:29:28 +10:00
Stenzek
eb46142ee7
GPUDevice: Extract swap chain to separate class 2024-10-18 20:48:29 +10:00
Stenzek
3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2024-09-21 22:26:06 +10:00
Stenzek
d981dc7471
MetalDevice: Implement pipeline cache 2024-09-13 19:26:44 +10:00
Stenzek
6f31e562a0
MetalDevice: Implement timed present 2024-09-13 15:19:29 +10:00
Stenzek
de551c1836
D3D12Device: Fix crash when using media capture 2024-09-09 17:27:10 +10:00
Stenzek
559aff0ad5
D3D12Device: Use DXC and 12.0 feature level 2024-09-09 00:23:30 +10:00
Stenzek
4c31218d2b
GPUDevice: Add API version field
Also tie shader caches to API version and device LUID. That way we don't
have tons of cache files, and they're regenerated if the GPU/driver
changes.
2024-09-08 23:33:05 +10:00
Stenzek
ac5a2a153a
GPUDevice: Remove BeginPresent() skip parameter
It wasn't used - System does its own present skipping.
2024-09-07 12:53:55 +10:00
Stenzek
4b0c1fdbf2
GPUDevice: Add recovery from lost device 2024-09-07 12:48:44 +10:00
Stenzek
1c1b82ed66
GPUDevice: Purge threaded presentation
Worse frame pacing, and GPU thread (when I finish it) will give
significantly faster performance on mobile anyway.
2024-09-07 12:15:42 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
Stenzek
667d1bf7c8
GPUDevice: Use CompressHelpers
And compress the pipeline cache. Saves a fair bit of disk space.
2024-08-26 21:33:28 +10:00
Stenzek
707453b596
FileSystem: Swap vector for DynamicHeapArray
No point zeroing it out.
2024-08-25 22:13:18 +10:00
Stenzek
4f16cb61b4
GPUDevice: Expose swap chain clear colour 2024-08-06 17:35:27 +10:00
Stenzek
30c5ebae72
GPUDevice: Fix instances of RWTexture not clearing 2024-08-03 02:05:21 +10:00
Stenzek
5e8870ec69
D3D12: Avoid redundant render pass restarts 2024-07-23 21:11:01 +10:00
Stenzek
1006fa00da
GPUDevice: Add support for Raster Ordered Views 2024-07-23 14:46:06 +10:00
Stenzek
ba6b65401d
GPUDevice: Improve pipeline error reporting 2024-07-22 15:43:06 +10:00
Stenzek
00ccea84b8
GPUDevice: Replace remaining StdStringFromFromFormat() with fmt 2024-07-19 13:44:09 +10:00
Stenzek
3749b812a3
GPUDevice: Add ExecuteAndWaitForGPUIdle() 2024-07-04 21:54:19 +10:00
Stenzek
4b61a3cbf3
Qt: Unrestrict resolution scale up to device limits 2024-07-04 13:25:27 +10:00
Stenzek
9ef7e8c5d0
GPU/HW: Use GSVector instead of Rectangle 2024-07-03 15:44:12 +10:00
Stenzek
e6d8f0d4a0
GPUDevice: Use FIFO for D3D exclusive fullscreen 2024-05-25 13:15:40 +10:00
Stenzek
0f9a255093
System: Fallback to FIFO on AMD (no mailbox support) 2024-05-24 22:48:26 +10:00
Stenzek
42a5fe0a6e
GPU: Further improve vsync handling 2024-05-24 02:33:33 +10:00
Stenzek
4e922a34a7
Log: Simplify macros 2024-05-24 02:08:14 +10:00
Stenzek
b6d019db66
Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
Stenzek
6cad97b404
GPUDevice: Make vsync actually tear-free
Apparently users prefer stutter over tearing...
2024-05-23 13:52:26 +10:00
Stenzek
7bb8cbcbaa
D3D12Device: Fix pipeline cache load error after device change 2024-05-12 15:24:01 +10:00
Stenzek
ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
Stenzek
7344661801
GPUDevice: Split submission and presentation 2024-04-11 22:53:02 +10:00
Stenzek
88270771da
System: Combine VRR and Optimal Frame Pacing
GSync/FreeSync display users should:
 - DISABLE VSync.
 - ENABLE Optimal Frame Pacing.
2024-04-11 21:33:40 +10:00
Stenzek
72ab669e70
GPUDevice: Add support for feedback loops 2024-04-01 13:55:19 +10:00
Stenzek
a1d7d214cf
GPUDevice: Add support for VRR and relaxed vsync 2024-03-03 14:03:07 +10:00