93 Commits

Author SHA1 Message Date
Stenzek
231ba050a2
GPUThread: Switch to borderless if exclusive fullscreen fails
Better than ending up windowed.
2025-01-29 18:20:41 +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
c03b6f3d84
Misc: Replace isspace() usage with StringUtil::IsWhitespace()
Avoids the UB if the character is negative (e.g. reading from a binary
file), as well as locale-specific rubbish.
2025-01-19 21:29:14 +10:00
Stenzek
338d29d271
GPUDevice: Move empty/null texture to base class 2025-01-18 22:59:48 +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
dd9788262e
GPU: Refactor display presentation workflow
Adds the ability to set overlays, and fixes postfx with prerotation.
2025-01-18 22:59:48 +10:00
Stenzek
3130e16438
FullscreenUI: Add user-selectable backgrounds 2025-01-14 18:59:42 +10:00
Stenzek
4c801c3ff3
GPUDevice: Move size-matches check into ResizeTexture() 2025-01-07 23:20:25 +10:00
Stenzek
f51dda3e66
GPUDevice: Allow this-frame pooled textures when not uploading data
It won't break the render pass.
2025-01-01 19:38:48 +10:00
Stenzek
2d659fc3eb
GPU: Move backend work off CPU thread 2024-12-19 23:32:15 +10:00
Stenzek
6e2223b517
OpenGLDevice: Fix surfaceless context switch 2024-12-15 22:09:21 +10:00
Stenzek
f0c456893c
GPUDevice: Support pre-rotating swap chains 2024-12-06 15:38:51 +10:00
Stenzek
acf04ed67a
GPUDevice: Use row-major matrix packing
With column vectors. mul() turns into dot products instead of madds.
2024-12-06 15:10:15 +10:00
Stenzek
9c327af280
GPUDevice: Typedef auto-recycled texture 2024-12-06 15:10:15 +10:00
Stenzek
c9c4307871
FileSystem: Android build fix 2024-12-06 15:10:15 +10:00
Stenzek
aafc029682
Misc: Un-namespace Timer 2024-11-29 20:13:37 +10:00
Stenzek
7eb1d4e092
GPUDevice: Support compressed textures 2024-11-24 23:29:29 +10:00
Stenzek
24dfd30839
Image: Refactor to a more generic class 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
d5e2db0dee
Misc: Fix new clang-cl warnings 2024-11-16 14:06:14 +10:00
Stenzek
eb46142ee7
GPUDevice: Extract swap chain to separate class 2024-10-18 20:48:29 +10:00
Stenzek
08fe20ad76
CMake: Add spirv-cross include path to util 2024-10-01 21:13:12 +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
96ece5de1c
SmallString: MSVC warning fix 2024-09-19 22:25:35 +10:00
Stenzek
350cf7ee32
GPUDevice: Use suffixed shaderc libname
Avoids conflicts with other installations of shaderc, e.g. the Vulkan
SDK, which might be in the user's LD_LIBRARY_PATH.
2024-09-13 23:05:01 +10:00
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
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
c42fb7c16e
GPUDevice: Support ingesting SPIR-V
Will be transpiled to HLSL -> DXBC for DirectX backends.
2024-09-08 22:11:58 +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
4c59513c79
GPUDevice: Fix pipeline cache loading
(again)
2024-09-06 18:00:00 +10:00
Stenzek
a53dc85035
GPUDevice: Fix initial pipeline cache not being created 2024-09-03 22:45:42 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
Stenzek
542ef3a6c0
GPUDevice: Warning fix 2024-08-26 21:37:29 +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
79bb5f079c
GPUDevice: Fix SPIRV-Cross load error on Mac 2024-08-05 01:12:17 +10:00
Stenzek
5b590d434b
D3D11Device: Fix blend state not applying to MRTs 2024-08-03 02:06:20 +10:00
Stenzek
3a83c4265c
Misc: Fix a bunch of code analysis warnings
Some of which were even actual errors.
2024-08-02 23:56:07 +10:00
Stenzek
b6b0997e70
Build: Favor git repositories over in-tree patches
Too messy.
2024-07-28 19:06:18 +10:00
Stenzek
ba6b65401d
GPUDevice: Improve pipeline error reporting 2024-07-22 15:43:06 +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
8c72fd57f1
GPUDevice: Disable SPIR-V optimization on GLSL output
SSO causes SPIRV-Cross to redeclare builtins, which we don't want
(breaks on Mesa).
2024-06-28 13:52:01 +10:00
Stenzek
6bfd862cb3
GPUDevice: Fix transpiled interface linking with OpenGL 2024-06-23 23:39:56 +10:00
Stenzek
e9a47233f7
GPUDevice: Compile warning fix 2024-06-16 20:49:30 +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