Commit Graph

137 Commits (5420d699e2ef0b72f96ca3647fa8177b84976a27)

Author SHA1 Message Date
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