Commit graph

24 commits

Author SHA1 Message Date
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
b6764620be Support multisample texture copy with automatic resolve on Vulkan 2022-06-17 22:47:03 +01:00
Emmanuel Hansen
8a1bdf1f1e Add support for avalonia (#6)
* add avalonia support

* only lock around skia flush

* addressed review

* cleanup

* add fallback size if avalonia attempts to render but the window size is 0. read desktop scale after enabling dpi check

* fix getting window handle on linux. skip render is size is 0
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
gdk
74a8f37f8d Do not require null descriptors support 2022-06-17 22:47:02 +01:00
gdk
782a0c4e93 Add support for BC6 and BC7 decompression, decompress all BC formats if they are not supported by the host 2022-06-17 22:47:02 +01:00
riperiperi
f636810c6c Check for transform feedback query support
Sometimes transform feedback is supported without the query type.
2022-06-17 22:47:01 +01:00
riperiperi
d4ccb6b895 Return of the Vector Indexing Bug
One day, everyone will get this right.
2022-06-17 22:47:00 +01:00
riperiperi
9f0feb8879 Don't create query pools for unsupported query types 2022-06-17 22:47:00 +01:00
gdk
daaa7fda11 Do not report R4G4 format as supported on Vulkan
It was causing mario head to become white on Super Mario 64 (???)
2022-06-17 22:46:59 +01:00
riperiperi
646be812ed Report 32 bit query result on AMD windows (smo issue) 2022-06-17 22:46:59 +01:00
gdk
2852ddf510 Fix A1B5G5R5 texture format and support R4G4 on Vulkan 2022-06-17 22:46:06 +01:00
gdk
dd54eb4be1 Geometry shader passthrough emulation 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
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
1edc85c26e Check if the subgroup size is supported before passing a explicit size 2022-06-17 22:45:03 +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
f6196fe07b Multithreaded Pipeline Compilation 2022-06-17 22:42:49 +01:00
riperiperi
4d94b03622 Add single queue support
Multiqueue seems to be a bit more responsive on NVIDIA. Should fix texture flush on intel. AMD has been forced to single queue for an experiment.
2022-06-17 22:42:37 +01:00
riperiperi
dc0d0f49b1 Cleanup, disable device local buffers for now. 2022-06-17 22:42:36 +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
5738b66b75 Don't make Intel Mesa pay for Intel Windows bugs 2022-06-17 22:42:34 +01:00
gdkchan
4513e8b226 WIP Vulkan implementation 2022-06-17 22:42:30 +01:00