Commit Graph

94 Commits (402f9207f787d07c837b15316acdec2d4ed7d33c)

Author SHA1 Message Date
Stenzek 402f9207f7
D3D12Device: Set render-pass clear formats
Initialize render-pass descriptors and provide the required RTV and
DSV formats for clear accesses.
2 months ago
Stenzek 2273890101
D3D12Device: Create texture arrays with all layers
Use the requested array size and create array-aware UAV and mipmap
views for layered textures.
2 months ago
Stenzek a8c9324f4a
D3D12Device: Transition cleared compute targets to UAV
Commit pending clears before transitioning image render targets to
unordered-access state.
2 months ago
Stenzek 69c5051a80
D3D12Device: Restore state after mipmap rendering
Rebind the normal pipeline state after the temporary mipmap pass and
explicitly set its triangle topology.
2 months ago
Stenzek 414f9f64a4
D3D12Device: Fix incorrect subresource calculation 5 months ago
Stenzek 730c44fef5
D3D11Device: Fix a couple of incorrect log messages 5 months ago
Stenzek add30da47a
GPUDevice: Move present result to global namespace
Get rid of some extra includes in headers.
7 months ago
Stenzek af305d3814
D3D12Device: Avoid second fence wait for infrequent readback 8 months ago
Stenzek 4b30147350
D3D12Device: Avoid render pass end when setting same target 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 af5c3fac42
GPUDevice: Fix mipmap generation on targets
Mainly DX12 that was broken.
11 months ago
Stenzek 47c820455d
GPUDevice: Add MultiTextureAndUBOAndPushConstants pipeline layout 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 2c2fb1d496
D3D12Device: Fix incorrect StencilBeginningAccess/StencilEndingAccess 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 3bb67c785e
D3DCommon: Load d3d12.dll dynamically 1 year ago
Stenzek ef26d5cb74
GPUDevice: Backport driver type detection 1 year ago
Stenzek a9f1dd20c3
D3D12Device: Fix GPU-based validation being unconditionally enabled 1 year ago
Stenzek eca113cd76
GPUDevice: Fix/improve compute shader support
Add multiple texture layout with/without UBO.
1 year ago
Stenzek bbdc6ab4e0
Misc: Fix a bunch of code analysis warnings
Quite a few of these were legitimate.
2 years ago
Stenzek acd684bca2
D3D12Device: Fix a couple of errors in ROV handling 2 years ago
Stenzek b798d8f1aa
Settings: Add option for enabling GPU-based validation 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 609fa5c7d7
GPUDevice: Add sampler cache to base class
Removes per-backend bookkeeping in D3D12 and Vulkan.
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 982dccb990
D3D12Device: Clang warning fixes 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 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 d981dc7471
MetalDevice: Implement pipeline cache 2 years ago
Stenzek 6f31e562a0
MetalDevice: Implement timed present 2 years ago
Stenzek de551c1836
D3D12Device: Fix crash when using media capture 2 years ago
Stenzek 559aff0ad5
D3D12Device: Use DXC and 12.0 feature level 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