Stenzek
18e2aa1615
Deps: Update to 20261010
2026-10-10 21:47:39 +10:00
Stenzek
187ad8f008
GPUDevice: Remove multiple sources of truth for shader dump directory
2026-09-21 14:25:49 +10:00
Stenzek
7951eba8a0
GPUDevice: Support looking up cached shaders and opaque keys
2026-09-15 12:54:31 +10:00
Stenzek
5420d699e2
GPUDevice: Use ObjectArchive for shader cache
2026-09-15 12:54:31 +10:00
Stenzek
3ccc0c45f4
Util: Centralize dynlib loading
2026-09-06 20:57:25 +10:00
Stenzek
fa77cd4853
CMake: Don't unnecessarily bundle
...
Use RPATH when not creating a bundle.
2026-09-06 20:57:24 +10:00
Stenzek
31948bcb52
Misc: Use static operator()
2026-09-05 18:11:30 +10:00
Stenzek
b25e2358b8
GPUDevice: Don't immediately trim textures queued in same frame
...
They might be used for ImGui rendering.
2026-08-19 00:38:57 +10:00
Stenzek
2225d366b2
GPUDevice: Pack shaderc/spirv-cross function pointers together
2026-05-16 18:52:57 +10:00
Stenzek
16d1dcb84d
GPUDevice: Use ResolveSymbols()
2026-05-16 14:23:01 +10:00
Stenzek
a2a12da4be
GPUDevice: Pack local state in struct
2026-05-16 13:50:55 +10:00
Stenzek
29ca1cbc83
GPUDevice: Fix incorrect log message
2026-04-29 22:04:28 +10:00
Stenzek
06708e0b54
GPUDevice: Fix false error logged with OpenGL
2026-03-14 02:07:06 +10:00
Stenzek
98e9db7fbb
GPUDevice: Drop SDL window type
...
Never worked properly anyway. Couldn't change modes, since releasing the
window destroyed the context, didn't support multi-window, etc.
2026-03-13 18:06:03 +10:00
Stenzek
401a0ba4c1
GPUTexture: Don't assemble vector in GetSizeVec()
...
Use a load/extend instead. Turns into movd+pmovzxwd.
2026-03-03 19:19:05 +10:00
Stenzek
cdf6d5bd29
CI: Use prebuilt dependencies
...
Decouple from the repository. Less CI time, and faster building of older
commits.
2026-02-25 13:07:02 +10:00
Stenzek
d5eb3e10ea
GPUDevice: Enumerate fullscreen modes if using SDL
2026-02-16 22:43:21 +10:00
Stenzek
df757371e6
WindowInfo: Move prerotation enum to global scope
...
Enable forward declarations.
2026-01-27 13:56:38 +10:00
Stenzek
d9e442e5c8
GPUDevice: Don't duplicate fullscreen modes
...
Also sort the list while we're at it.
2026-01-23 21:22:41 +10:00
Stenzek
525dba5c52
GPUDevice: Use sorted array for storing shader cache entries
...
Saves hundreds of heap allocations for something that is more often read
rather than write.
2026-01-18 19:50:16 +10:00
Stenzek
ff0ad1b176
System: Rewrite present skipping
...
Now can operate in "only if vsync blocks" mode.
Significantly improves frame pacing for fast forward speeds.
2026-01-18 18:24:48 +10:00
Stenzek
71f46cf8c1
GPUThread: Update core thread window size on core thread
...
Avoid the barrier when reading it.
2026-01-18 16:51:07 +10:00
Stenzek
abed81d53e
GPUDevice: Use present instead of current time for skip logic
...
Fixes erratic frame times when fast forwarding and below the
screen refresh rate.
2026-01-18 13:29:00 +10:00
Stenzek
2a8256673a
GPUDevice: Use separate variables for last/next present time
...
Fixes erratic frame rates in Big Picture mode.
Regression from 09926a3769 .
2026-01-17 23:07:24 +10:00
Stenzek
09926a3769
GPUDevice: Update last presented time after present
...
Instead of before.
Makes present skipping much more effective against NVIDIA's global
framerate cap if enabled, on my system with the cap at 60fps it
went from 120fps to 1400fps. Still about half of the true uncapped
speed, but when the present call blocks for a few milliseconds this
is all you can do. Can't stop presenting frames entirely.
2026-01-14 22:03:15 +10:00
Stenzek
213d3efdf7
GPUDevice: Unload persistent libraries on shutdown
2025-12-27 23:02:55 +10:00
Stenzek
69458bd90b
VulkanDevice: Persist instance throughout launches
...
Testing with AMD on Windows and LLVMPipe on Linux, creating and
destroying a Vulkan instance appears to leak around 20-30MB of memory.
Just keep the thing around for the whole time. Reduces startup time too,
so everyone wins. Unless you're switching renderers all the time, then
you lose a bit of memory.
2025-12-23 16:22:33 +10:00
Stenzek
5b789be901
GPUDevice: Extract texture format to global namespace
...
Avoid pulling in gpu_texture.h and indirect includes just for this.
2025-12-23 16:10:45 +10:00
Stenzek
7a539ba693
GPUDevice: Reduce GraphicsConfig struct size
2025-12-17 01:36:09 +10:00
Stenzek
1cc5fe081c
ImGuiManager: Remove duration parameter from OSD messages
...
Use a type instead.
2025-11-24 21:02:04 +10:00
Stenzek
08317d9478
GPUDevice: Set fixed names for UBO/push constants in SPV transpiling
...
Ensures that name-based binding in GL succeeds.
2025-11-01 16:30:07 +10:00
Stenzek
4729e22573
GPUDevice: Handle non-contiguous texture bindings in SPV transpiling
2025-11-01 16:30:07 +10:00
Stenzek
b43111f36e
GPUDevice: Remap input attributes when transpiling to HLSL
2025-11-01 16:30:06 +10:00
Stenzek
916b23f85c
GPUDevice: Use separate buffer for push constants
2025-11-01 16:30:06 +10:00
Stenzek
6848f07c57
GPUDevice: Combine draw and push constant functions
...
Prevents us from being in a situation where the push constants haven't
been uploaded because we couldn't allocate a descriptor or something
else which forced a flush.
2025-11-01 16:30:06 +10:00
Stenzek
529da22ef5
System: Use new OSD message variants
2025-11-01 01:44:25 +10:00
Stenzek
05701fef41
GPUDevice: Make dyn libs public
2025-10-29 21:21:32 +10:00
Stenzek
b858fe5e94
GPUDevice: Display OSD message if debug settings are enabled
2025-10-29 21:21:32 +10:00
Stenzek
6e926041e5
GPUDevice: Move options to create flags
...
And add prefer-GLES-context as a config setting, instead of
environment variable.
2025-08-20 23:07:56 +10:00
Stenzek
f21ab0b70a
GPUDevice: Fix ARM GPU detection
2025-07-10 19:36:14 +10:00
Stenzek
ef26d5cb74
GPUDevice: Backport driver type detection
2025-07-09 22:17:14 +10:00
Stenzek
9112e38f4e
GPUDevice: Fix incorrect close call during symbol lookup
...
Not actually hit since all symbols should be present, but just in
case...
2025-06-13 16:29:06 +10:00
Stenzek
df2a5a5e67
ImGuiManager: Move drawing out of GPUDevice
2025-04-19 16:21:29 +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
b798d8f1aa
Settings: Add option for enabling GPU-based validation
2025-03-30 23:20:39 +10:00
Stenzek
e6e6313219
FullscreenUI: Add offscreen-based screen fade
2025-03-30 15:22:46 +10:00
Stenzek
6eddc0b982
GPUDevice: Don't allow copy-resize between different formats
...
That's a spec violation.
2025-03-22 01:11:23 +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
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