Commit Graph

66 Commits

Author SHA1 Message Date
Stenzek
d981dc7471 MetalDevice: Implement pipeline cache 2024-09-13 19:26:44 +10:00
Stenzek
ad67ab7ec3 MetalDevice: Use TranspileAndCreateShaderFromSource() 2024-09-13 17:31:59 +10:00
Stenzek
6f31e562a0 MetalDevice: Implement timed present 2024-09-13 15:19:29 +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
4f16cb61b4 GPUDevice: Expose swap chain clear colour 2024-08-06 17:35:27 +10:00
Stenzek
ba6b65401d GPUDevice: Improve pipeline error reporting 2024-07-22 15:43:06 +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
29533650a8 MetalDevice: Rectangle -> GSVector4i 2024-07-03 15:54:32 +10:00
Stenzek
d8bd35e8d6 GPUDevice: Add D24S8/D32F/D32FS8 types 2024-06-29 13:09:45 +10:00
Stenzek
6bfd862cb3 GPUDevice: Fix transpiled interface linking with OpenGL 2024-06-23 23:39:56 +10:00
Stenzek
ef69c31e9f GPUDevice: Support transpiling shaders at compile time
And use it for GLSL postprocessing shaders.
2024-06-14 21:21:34 +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
d9cc80c7f9 WindowInfo: Get refresh rate from monitor config
DwmGetCompositionTimingInfo() returns a noisy refresh rate, at least on
Win11 22H2.
2024-05-22 22:16:31 +10:00
Stenzek
03f9708911 GPUDevice: Move SPIR-V compilation to base class 2024-05-13 00:06:56 +10:00
Stenzek
ca3cfbaa99 Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
Stenzek
5f915e1cbe MetalDevice: Use shared SPIRV-Cross 2024-04-14 17:25:23 +10:00
Stenzek
f4fef36eba MetalDevice: Use shader to clear current depth target 2024-04-12 21:07:16 +10:00
Stenzek
e5a024ba85 MetalDevice: Add support for framebuffer fetch 2024-04-12 21:07:16 +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
98241cb6ba GPUDevice: Swap out glslang for shaderc 2024-04-05 17:53:24 +10:00
Stenzek
74f3c8d1aa GPU/HW: Enable feedback loops for rendering 2024-04-01 18:12:52 +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
Stenzek
f936a36c85 GPUDevice: Add GPUDownloadTexture
Which can also be based in host/client memory.
Use it for screenshots and VRAM downloads.
2024-02-29 18:56:50 +10:00
Stenzek
6cca468e65 MetalDevice: Add family check for 16-bit formats 2024-02-03 20:44:34 +10:00
Stenzek
06b11590fe MetalDevice: Textures should be private 2024-02-03 19:53:35 +10:00
Stenzek
29b5afecae MetalDevice: Fix creation error on non-RGBA8 layers 2024-02-03 19:41:56 +10:00
Stenzek
150ab8f4af GPU: Add host/hardware stats 2024-01-22 14:41:19 +10:00
Stenzek
f66866ed73 GPUDevice: Use Error class for initialization errors 2024-01-21 00:18:33 +10:00
Stenzek
62d2f12236 Settings: Expose exclusive fullscreen control 2023-12-25 23:44:15 +10:00
Stenzek
dc5e4120cd GPUDevice: Improve texture pooling 2023-12-20 22:42:32 +10:00
Stenzek
717e0665ae GPUDevice: Support R16I/R16U textures 2023-12-19 22:38:36 +10:00
Stenzek
9e82c18559 MetalDevice: Defer release of layer drawables 2023-12-18 20:50:35 +10:00
Stenzek
f4fb069216 MetalDevice: Explicitly bind fragment resources
Fixes adaptive downsampling with Metal renderer.
2023-12-18 20:50:35 +10:00
Stenzek
6fe2177ee7 MetalDevice: Fix incorrect mipmap texture creation 2023-12-18 20:50:35 +10:00
Stenzek
7e1276fbac GPUDevice: Fix binding deferred cleared textures
i.e. briefly flashing previous state after reset.
2023-12-14 20:23:48 +10:00
Stenzek
c90de025bf MetalDevice: Fix depth not storing 2023-12-09 22:08:14 +10:00
Stenzek
a907e1f550 GPUDevice: Pool textures 2023-12-09 22:08:13 +10:00
Stenzek
3b2c70cda5 GPUDevice: Get rid of framebuffer abstraction 2023-12-09 22:08:13 +10:00
Stenzek
b65d2748b4 GPUDevice: Implement MirrorRepeat address mode 2023-12-08 20:12:13 +10:00