riperiperi
cd3ad0a6ab
Push descriptor support check, buffer redundancy checks
...
Should make push descriptors faster, needs more testing though.
2022-06-17 23:23:43 +01:00
gdk
db4e7d28ea
Use push descriptors for uniform buffer updates (disabled for now)
2022-06-17 22:47:06 +01:00
riperiperi
088ea4545c
Fix and enable background compute shader compilation
...
Also disables warnings from shader cache pipeline misses.
2022-06-17 22:47:05 +01:00
gdk
c07abe4ec0
Pre-compile helper shader as SPIR-V, and some fixes
2022-06-17 22:47:04 +01:00
gdk
400ed2d96d
Add minimal pipeline layouts that only contains used bindings
...
They are used by helper shaders, the intention is avoiding needing to recompile the shaders (from GLSL to SPIR-V) if the bindings changes on the translated guest shaders
2022-06-17 22:47:04 +01:00
gdk
38ecf0f117
Remove old CompileShader methods from the Vulkan backend
2022-06-17 22:47:03 +01:00
gdk
572759a4ac
Combine non-buffer with buffer image descriptor sets
2022-06-17 22:47:03 +01:00
gdk
c95cdc853e
Enable shader cache on Vulkan and implement MultiplyHighS32/U32 on SPIR-V (missed those before)
2022-06-17 22:45:57 +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
089fa6bd54
Make more robust to shader compilation failure
...
- Don't freeze when GLSL compilation fails
- Background SPIR-V pipeline compile failure results in skipped draws, similar to GLSL compilation failure.
2022-06-17 22:42:50 +01:00
riperiperi
d45b28f6b7
Cleanup for merge (note: disables spir-v)
2022-06-17 22:42:50 +01:00
riperiperi
c75860e627
Address some feedback
2022-06-17 22:42:49 +01:00
riperiperi
f6196fe07b
Multithreaded Pipeline Compilation
2022-06-17 22:42:49 +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