Commit graph

27 commits

Author SHA1 Message Date
gdk
0860e208b2 Add missing clear layer parameter after rebase 2022-06-17 22:47:05 +01:00
gdk
8cac0e2b51 Fix error due to missing subpass dependency when Attachment Write -> Shader Read barriers are added 2022-06-17 22:47:05 +01:00
gdk
572759a4ac Combine non-buffer with buffer image descriptor sets 2022-06-17 22:47:03 +01:00
riperiperi
2000070330 Flush queries on attachment change rather than program change
Occlusion queries are usually used in a depth only pass so the attachments changing is a better indication of the query block ending.

Write mask changes are also considered since some games do depth only pass by setting 0 write mask on all the colour targets.
2022-06-17 22:47:03 +01:00
gdk
1fac9dc29b If MultiViewport is not supported, do not try to set more than one viewport/scissor 2022-06-17 22:47:02 +01:00
riperiperi
884ee76d7c Update guest cache to v1.1 (due to specialization state changes)
This will explode your shader cache from earlier vulkan build, but it must be done. 😔
2022-06-17 22:47:00 +01:00
gdk
7838a45772 Add barrier before use of some modified images 2022-06-17 22:46:56 +01:00
gdk
2713703d45 Do not clear unbound framebuffer color attachments 2022-06-17 22:46:05 +01:00
gdk
fd2e53fdc6 Raise textures limit to 64 on Vulkan 2022-06-17 22:46:05 +01:00
gdk
7c32e4a3fe Add missing barriers around CmdFillBuffer (fixes Monster Hunter Rise flickering on NVIDIA) 2022-06-17 22:42:58 +01:00
gdk
80d72504d4 Take componentMask and scissor into account when clearing framebuffer attachments 2022-06-17 22:42:58 +01:00
gdk
746eded2cf Use explicit subgroup size if we can (might fix some block flickering on AMD) 2022-06-17 22:42:57 +01:00
riperiperi
eda65c8dd3 Copy query results after RP ends, rather than ending to copy
We need to end the render pass to get the data (submit command buffer) anyways...

Reduces render passes created in games that use queries.
2022-06-17 22:42:51 +01:00
riperiperi
d45b28f6b7 Cleanup for merge (note: disables spir-v) 2022-06-17 22:42:50 +01:00
riperiperi
f6196fe07b Multithreaded Pipeline Compilation 2022-06-17 22:42:49 +01:00
gdk
6810796638 Multisampling support 2022-06-17 22:42:46 +01:00
gdk
9b779adf57 Better workaround for AMD vertex buffer size alignment issue 2022-06-17 22:42:39 +01:00
gdk
522e7933e8 Workaround for wrong last attribute on AMD (affects FFVII, STRIKERS1945, probably more) 2022-06-17 22:42:39 +01:00
gdk
36b3ab0741 Fix draw outside of render pass and missing capability 2022-06-17 22:42:39 +01:00
gdk
5a3695c968 Don't pause transform feedback for multi draw 2022-06-17 22:42:39 +01:00
gdk
52249e50dd Fix transform feedback on Intel, gl_Position feedback and clears to inexistent depth buffers 2022-06-17 22:42:38 +01:00
riperiperi
d14dbb0cff Use SupportBufferUpdater, add single layer flush 2022-06-17 22:42:38 +01:00
gdk
f6a4fe8f5f Fix some validation errors around extended dynamic state 2022-06-17 22:42:37 +01:00
riperiperi
4994e50d1c Device local mapping for all buffers
May avoid issues with drivers with NVIDIA on linux/older gpus on windows when using large buffers (?)
Also some performance things and fixes issues with opengl games loading textures weird.
2022-06-17 22:42:36 +01:00
gdk
5fbfa9a9bd DrawTexture support 2022-06-17 22:42:32 +01:00
riperiperi
e0edaa177e Allow multithreading shaderc and vkCreateShaderModule
You'll only really see the benefit here with threaded-gal or parallel shader cache compile.

Fix shaderc multithreaded changes

Thread safety for shaderc Options constructor

Dunno how they managed to make a constructor not thread safe, but you do you. May avoid some freezes.
2022-06-17 22:42:31 +01:00
gdkchan
4513e8b226 WIP Vulkan implementation 2022-06-17 22:42:30 +01:00