Commit Graph

83 Commits (5420d699e2ef0b72f96ca3647fa8177b84976a27)

Author SHA1 Message Date
Stenzek 5420d699e2
GPUDevice: Use ObjectArchive for shader cache 1 week ago
Stenzek 8a96948a8d
GPUDevice: Use same buffer sizes across backends
Hopefully avoid failed allocations in Metal.
2 months ago
Stenzek add30da47a
GPUDevice: Move present result to global namespace
Get rid of some extra includes in headers.
7 months ago
Stenzek d6915fb57a
D3D11Device: Fix assigning integer to boolean 8 months ago
Stenzek 566681ff20
D3D11Device: Add missing push constant buffer destroy
No difference overall, but better to destroy buffer before device.
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 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 e13b9a0c17
WindowInfo: Extract type into global namespace 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 a43e05472a
Host: Split into multiple files
Translation, actual host, and core for settings management.
9 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 de39ff5e9b
GPUDevice: Fix ROV support being disabled
Regression from 6e926041e5
1 year 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 0195b2886e
D3DCommon: Load d3d11.dll dynamically 1 year ago
Stenzek ef26d5cb74
GPUDevice: Backport driver type detection 1 year ago
Stenzek eca113cd76
GPUDevice: Fix/improve compute shader support
Add multiple texture layout with/without UBO.
1 year ago
Stenzek 063bb96e5d
D3D11Device: Always query timestamp before present start
Fixes high GPU usage reporting in D3D11 with AMD GPUs + Optimal Frame
Pacing.
2 years ago
Stenzek 231ba050a2
GPUThread: Switch to borderless if exclusive fullscreen fails
Better than ending up windowed.
2 years ago
Stenzek be75a97efe
GPUDevice: Fix swap chain clear colour normalization 2 years ago
Stenzek fb3e290133
GPUDevice: Move exclusive fullscreen to features
Also fixes it not enabling in D3D12 renderer.
2 years ago
Stenzek 389276bb03
GPUDevice: Normalize supports_texture_buffers => texture_buffers 2 years ago
Stenzek 8c807118c0
GPUDevice: End timer on command flush
Fixes incorrect GPU usage readings in OpenGL, D3D11 is still
problematic, at least on AMD.
2 years ago
Stenzek 9df59713da
GPUDevice: Put debug messages/scopes behind conditions
And completely compile them out in Release builds.

Gets Devel close to Release in terms of performance.
2 years ago
Stenzek 0faa9cf650
Build: Add Devel configuration
Gets you debug assertions and logging, while still producing an
optimized executable.
2 years ago
Stenzek 7eb1d4e092
GPUDevice: Support compressed textures 2 years ago
Stenzek 3ff1b04576
GPUDevice: Support generating mipmaps 2 years ago
Stenzek e647192437
GPUDevice: Add compute shader support 2 years ago
Stenzek c461ad7b44
D3D11Device: Ensure we don't drop to feature level 10 on query failure 2 years ago
Stenzek eb46142ee7
GPUDevice: Extract swap chain to separate class 2 years ago
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.
2 years ago
Stenzek ac8461a28b
System: Fix bogus SW thread CPU in OSD 2 years ago
Stenzek 6f31e562a0
MetalDevice: Implement timed present 2 years ago
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.
2 years ago
Stenzek ac5a2a153a
GPUDevice: Remove BeginPresent() skip parameter
It wasn't used - System does its own present skipping.
2 years ago
Stenzek 4b0c1fdbf2
GPUDevice: Add recovery from lost device 2 years ago
Stenzek 1c1b82ed66
GPUDevice: Purge threaded presentation
Worse frame pacing, and GPU thread (when I finish it) will give
significantly faster performance on mobile anyway.
2 years ago
Stenzek 7f4e5d55db
Misc: Update copyright headers 2 years ago
Stenzek 4f16cb61b4
GPUDevice: Expose swap chain clear colour 2 years ago
Stenzek 1006fa00da
GPUDevice: Add support for Raster Ordered Views 2 years ago
Stenzek 3749b812a3
GPUDevice: Add ExecuteAndWaitForGPUIdle() 2 years ago
Stenzek 4b61a3cbf3
Qt: Unrestrict resolution scale up to device limits 2 years ago
Stenzek 9ef7e8c5d0
GPU/HW: Use GSVector instead of Rectangle 2 years ago
Stenzek 0675716162
D3D11Device: Fix redundant SRV set on RT change 2 years ago
Stenzek 547587af11
D3D11Device: Don't spin on CPU when GPU results aren't available 2 years ago
Stenzek 1565a2667d
Misc: More format string fixes 2 years ago
Stenzek e6d8f0d4a0
GPUDevice: Use FIFO for D3D exclusive fullscreen 2 years ago
Stenzek 0f9a255093
System: Fallback to FIFO on AMD (no mailbox support) 2 years ago
Stenzek 42a5fe0a6e
GPU: Further improve vsync handling 2 years ago