Stenzek
5420d699e2
GPUDevice: Use ObjectArchive for shader cache
1 week ago
Stenzek
3ccc0c45f4
Util: Centralize dynlib loading
2 weeks ago
Stenzek
fa77cd4853
CMake: Don't unnecessarily bundle
...
Use RPATH when not creating a bundle.
2 weeks ago
Stenzek
31948bcb52
Misc: Use static operator()
3 weeks ago
Stenzek
b25e2358b8
GPUDevice: Don't immediately trim textures queued in same frame
...
They might be used for ImGui rendering.
1 month ago
Stenzek
2225d366b2
GPUDevice: Pack shaderc/spirv-cross function pointers together
4 months ago
Stenzek
16d1dcb84d
GPUDevice: Use ResolveSymbols()
4 months ago
Stenzek
a2a12da4be
GPUDevice: Pack local state in struct
4 months ago
Stenzek
29ca1cbc83
GPUDevice: Fix incorrect log message
5 months ago
Stenzek
06708e0b54
GPUDevice: Fix false error logged with OpenGL
6 months ago
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.
6 months ago
Stenzek
401a0ba4c1
GPUTexture: Don't assemble vector in GetSizeVec()
...
Use a load/extend instead. Turns into movd+pmovzxwd.
7 months ago
Stenzek
cdf6d5bd29
CI: Use prebuilt dependencies
...
Decouple from the repository. Less CI time, and faster building of older
commits.
7 months ago
Stenzek
d5eb3e10ea
GPUDevice: Enumerate fullscreen modes if using SDL
7 months ago
Stenzek
df757371e6
WindowInfo: Move prerotation enum to global scope
...
Enable forward declarations.
8 months ago
Stenzek
d9e442e5c8
GPUDevice: Don't duplicate fullscreen modes
...
Also sort the list while we're at it.
8 months ago
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.
8 months ago
Stenzek
ff0ad1b176
System: Rewrite present skipping
...
Now can operate in "only if vsync blocks" mode.
Significantly improves frame pacing for fast forward speeds.
8 months ago
Stenzek
71f46cf8c1
GPUThread: Update core thread window size on core thread
...
Avoid the barrier when reading it.
8 months ago
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.
8 months ago
Stenzek
2a8256673a
GPUDevice: Use separate variables for last/next present time
...
Fixes erratic frame rates in Big Picture mode.
Regression from 09926a3769 .
8 months ago
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.
8 months ago
Stenzek
213d3efdf7
GPUDevice: Unload persistent libraries on shutdown
9 months ago
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.
9 months ago
Stenzek
5b789be901
GPUDevice: Extract texture format to global namespace
...
Avoid pulling in gpu_texture.h and indirect includes just for this.
9 months ago
Stenzek
7a539ba693
GPUDevice: Reduce GraphicsConfig struct size
9 months ago
Stenzek
1cc5fe081c
ImGuiManager: Remove duration parameter from OSD messages
...
Use a type instead.
10 months ago
Stenzek
08317d9478
GPUDevice: Set fixed names for UBO/push constants in SPV transpiling
...
Ensures that name-based binding in GL succeeds.
11 months ago
Stenzek
4729e22573
GPUDevice: Handle non-contiguous texture bindings in SPV transpiling
11 months ago
Stenzek
b43111f36e
GPUDevice: Remap input attributes when transpiling to HLSL
11 months ago
Stenzek
916b23f85c
GPUDevice: Use separate buffer for push constants
11 months ago
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.
11 months ago
Stenzek
529da22ef5
System: Use new OSD message variants
11 months ago
Stenzek
05701fef41
GPUDevice: Make dyn libs public
11 months ago
Stenzek
b858fe5e94
GPUDevice: Display OSD message if debug settings are enabled
11 months ago
Stenzek
6e926041e5
GPUDevice: Move options to create flags
...
And add prefer-GLES-context as a config setting, instead of
environment variable.
1 year ago
Stenzek
f21ab0b70a
GPUDevice: Fix ARM GPU detection
1 year ago
Stenzek
ef26d5cb74
GPUDevice: Backport driver type detection
1 year ago
Stenzek
9112e38f4e
GPUDevice: Fix incorrect close call during symbol lookup
...
Not actually hit since all symbols should be present, but just in
case...
1 year ago
Stenzek
df2a5a5e67
ImGuiManager: Move drawing out of GPUDevice
1 year ago
Stenzek
bbdc6ab4e0
Misc: Fix a bunch of code analysis warnings
...
Quite a few of these were legitimate.
1 year ago
Stenzek
b798d8f1aa
Settings: Add option for enabling GPU-based validation
2 years ago
Stenzek
e6e6313219
FullscreenUI: Add offscreen-based screen fade
2 years ago
Stenzek
6eddc0b982
GPUDevice: Don't allow copy-resize between different formats
...
That's a spec violation.
2 years ago
Stenzek
231ba050a2
GPUThread: Switch to borderless if exclusive fullscreen fails
...
Better than ending up windowed.
2 years ago
Stenzek
fb3e290133
GPUDevice: Move exclusive fullscreen to features
...
Also fixes it not enabling in D3D12 renderer.
2 years ago
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.
2 years ago
Stenzek
338d29d271
GPUDevice: Move empty/null texture to base class
2 years ago
Stenzek
609fa5c7d7
GPUDevice: Add sampler cache to base class
...
Removes per-backend bookkeeping in D3D12 and Vulkan.
2 years ago
Stenzek
dd9788262e
GPU: Refactor display presentation workflow
...
Adds the ability to set overlays, and fixes postfx with prerotation.
2 years ago