Stenzek
fc3e117f8d
VulkanDevice: Synchronize compute image accesses
...
Use the compute storage-image layout for dispatches and include compute shader
stages when transitioning sampled images.
2 months ago
Stenzek
bbac943b5c
VulkanDevice: Expose shared UBO binding to compute shaders
2 months ago
Stenzek
b3b57a2a02
VulkanDevice: Bind initial compute pipelines correctly
...
Select the pipeline bind point from the pipeline layout while initializing shared
command-buffer state needed by later graphics draws.
2 months ago
Stenzek
c38b99a0f1
VulkanDevice: Fix duplicate check for VK_KHR_get_surface_capabilities2
6 months ago
Stenzek
add30da47a
GPUDevice: Move present result to global namespace
...
Get rid of some extra includes in headers.
7 months ago
Stenzek
59aeb1e84b
VulkanDevice: Fix query index in WaitForCommandBufferCompletion()
8 months ago
Stenzek
3a54524e40
VulkanDevice: Add missing scissor clamp in SetInitialPipelineState()
8 months ago
Stenzek
2bd0a6ab41
VulkanDevice: Fix incorrect stage bits for compute PushUniformBuffer()
8 months ago
Stenzek
c76ee85b1d
VulkanDevice: Don't submit during image acquire
...
Regression from 5e6a18a584
8 months ago
Stenzek
6f9752a177
VulkanDevice: Simplify EndAndSubmitCommandBuffer() a bit
8 months ago
Stenzek
5e6a18a584
VulkanDevice: Wait before starting next command buffer
...
Potentially avoids a fence wait.
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
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
7bc32cdfa2
VulkanDevice: Swap EXT for KHR in structure type
...
No net difference.
9 months ago
Stenzek
a1aa038623
VulkanDevice: Use KHR variants of surface/swapchain maintenance
...
AMD doesn't support the EXT variant.
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
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
c3415c4891
VulkanDevice: Rearrange fields for locality
9 months ago
Stenzek
ea8d7b015c
VulkanDevice: Only enable KHR_maintenance5 with dynamic rendering
...
Required by spec. Only really gets hit by the
disable-on-broken-mobile-driver path.
9 months ago
Stenzek
fe8d2e0329
VulkanDevice: Set rasterization order attachment access bit on blend state
9 months ago
Stenzek
7a539ba693
GPUDevice: Reduce GraphicsConfig struct size
9 months ago
Stenzek
b10eba419a
VulkanDevice: Disable fbfetch on LLVMpipe
...
Rendering behaviour with llvmpipe + fbfetch is very strange, it fails
to read push constants sometimes??
Driver bug?
9 months ago
Stenzek
e3a044a8a4
Log: Move FastWrite() into macro
...
That way the format args can be packed inside the conditional,
potentially outside of the hot path.
10 months ago
Stenzek
8dc0b99ee2
VulkanDevice: Fix off-by-one in assertion
11 months ago
Stenzek
9a5e0c9028
ShaderGen: Fix ImGui rendering with Vulkan
11 months ago
Stenzek
9a5eadd86a
GPUDevice: Add SRGBA8 texture format
11 months ago
Stenzek
47c820455d
GPUDevice: Add MultiTextureAndUBOAndPushConstants pipeline layout
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
cff3ece1a7
VulkanDevice: Fix incorrect struct type
11 months ago
Stenzek
4f0d35c2ef
VulkanDevice: Make current command buffer lookup consistent
12 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
5e2e39f642
VulkanDevice: Use driver type enum for auto selection
1 year ago
Stenzek
e4e57c674d
GPUDevice: Use driver type fields
1 year ago
Stenzek
ef26d5cb74
GPUDevice: Backport driver type detection
1 year ago
Stenzek
63adf475d4
VulkanDevice: Avoid defaulting to Vulkan for V3D driver
...
Image copies are broken.
https://discord.com/channels/695640472202379425/695823554712698962/1392128815689629707
1 year ago
Stenzek
889df1d8be
VulkanDevice: Only reset descriptor pool if used
...
Save a tiny fraction of overhead.
1 year ago
Stenzek
d885446672
VulkanDevice: Fix manual device selection
1 year ago
Stenzek
4d5ba3b4e6
VulkanDevice: Tidy up device/extension initialization
...
Single pass, avoids enabling extensions that will not be used.
1 year ago
Stenzek
32b3ade56c
VulkanDevice: Allocate N semaphores for N swap chains
1 year ago
Stenzek
611bb8fb4f
VulkanDevice: Remove hardcoded 1.0 API version
...
Been like this for a couple of months, evidently forgot to remove it
when testing...
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.
1 year ago
Stenzek
ee1a3b904e
VulkanDevice: Support SDL window type
2 years ago
Stenzek
5913de947f
VulkanDevice: Fix incorrect texture format for A1BGR5
2 years ago
Stenzek
c6563a4656
VulkanDevice: Require Vulkan 1.1 for most extension probing
...
Too much of a headache to deal with these ancient Mali drivers that
support some extensions but not full Vulkan 1.1, and VMA does not
support this scenario.
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