riperiperi
65cecb0c2f
Fix headless build
2022-06-17 22:47:01 +01:00
riperiperi
d2cef41c5b
Fix Avalonia Rebase
...
Vulkan is currently not available on Avalonia, but the build does work and you can use opengl.
2022-06-17 22:47:01 +01:00
riperiperi
52050e4d48
Fix gl_FragCoord.z transformation
...
FragCoord.z is always in 0-1, even when the real depth range is -1 to 1. Turns out the only bug was geo and tess stage outputs.
Fixes Pokemon Sword/Shield, possibly others.
2022-06-17 22:47:01 +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
riperiperi
5a6a70e3d5
Fix typo
2022-06-17 22:47:00 +01:00
riperiperi
182c95a588
Vulkan/SPIR-V support for viewport inverse
2022-06-17 22:47:00 +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
riperiperi
f21761555c
Add Gl StencilOp enum values to Vulkan
2022-06-17 22:47:00 +01:00
riperiperi
a34efcd398
Remove gl_FragDepth scaling
...
This is always 0-1; the other two issues were causing the problems. Fixes regression with Xenoblade.
2022-06-17 22:47:00 +01:00
riperiperi
c3951877f7
Geometry Shader index count from ThreadsPerInputPrimitive
...
Generally fixes SPIR-V emitting too many triangles, may change games in OpenGL
2022-06-17 22:46:59 +01:00
riperiperi
8097480b02
Improvements to -1 to 1 depth mode.
...
- Transformation is only applied on the last stage in the vertex pipeline.
- Should fix some issues with geometry and tessellation (hopefully)
- Reading back FragCoord Z on fragment will transform back to -1 to 1.
2022-06-17 22:46:59 +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
gdk
2e53b2e0e8
Add texture recompression support (disabled for now)
...
It recompresses ASTC textures into BC7, which might reduce VRAM usage significantly on games that uses ASTC textures
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
7838a45772
Add barrier before use of some modified images
2022-06-17 22:46:56 +01:00
gdk
2852ddf510
Fix A1B5G5R5 texture format and support R4G4 on Vulkan
2022-06-17 22:46:06 +01:00
gdk
39467f7062
Consolidate UpdateDepthMode and GetDepthMode implementation
2022-06-17 22:46:05 +01:00
gdk
dd54eb4be1
Geometry shader passthrough emulation
2022-06-17 22:46:05 +01:00
gdk
2713703d45
Do not clear unbound framebuffer color attachments
2022-06-17 22:46:05 +01:00
gdk
de87ed3edc
Fix backbuffer not being cleared and scissor not being re-enabled on OpenGL
2022-06-17 22:46:05 +01:00
gdk
6543531db8
No need to pack the shader binaries if shader cache is disabled
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
efa2868825
Remove unused PipelineConverter format variable (was causing IOR)
2022-06-17 22:46:04 +01:00
gdk
d6b1ba09bc
_unit0Sampler should be set only for binding 0
2022-06-17 22:46:04 +01:00
gdk
dd915ae67b
Allow null samplers on OpenGL backend
2022-06-17 22:46:04 +01:00
riperiperi
dc0a00f93c
Fix pipeline state saving before it is updated.
...
This should fix a few warnings and potential stutters due to bad pipeline states being saved in the cache. You may need to clear your guest cache.
2022-06-17 22:46:04 +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
2121f69b1c
We don't need to recompile shaders if alpha test state changed but alpha test is disabled
2022-06-17 22:45:03 +01:00
gdk
5670022e27
Only enable ShaderFloat64 if the GPU supports it
2022-06-17 22:45:03 +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
4f086b0ec9
Shader specialization for new Vulkan required state (fixes remaining alpha test issues, vertex stretching on AMD on Crash Bandicoot, etc)
2022-06-17 22:45:00 +01:00
gdk
4648e37a31
Use ClampToEdge for Clamp sampler address mode on Vulkan (fixes Hollow Knight)
...
Clamp is unsupported on Vulkan, but ClampToEdge behaves almost the same. ClampToBorder on the other hand (which was being used before) is pretty different
2022-06-17 22:42:59 +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
gdk
3767cf4ce5
Fix some validation errors related to texel block view usage flag and invalid image barrier base level
2022-06-17 22:42:57 +01:00
gdk
03955d6b04
Allow null samplers (samplers are not required when only using texelFetch to access the texture)
2022-06-17 22:42:57 +01:00
gdk
3bac0b872c
Enable SPIR-V backend by default
2022-06-17 22:42:57 +01:00
gdk
f16b47114c
SPIR-V: Workaround for Intel FrontFacing bug
2022-06-17 22:42:56 +01:00
gdk
ad081de56b
SPIR-V: Fix ImageLoad CompositeExtract component type
2022-06-17 22:42:56 +01:00
gdk
0a7fbb6bfd
SPIRV/GLSL: More scaling related fixes
2022-06-17 22:42:56 +01:00
gdk
3aa5397bad
SPIR-V: Fix another case of wrong field index
2022-06-17 22:42:56 +01:00
gdk
670431f4fa
SPIR-V: Fix field index for scale count
2022-06-17 22:42:56 +01:00
gdk
0b27b3e470
SPIR-V: Resolution scale support and fix TextureSample multisample with LOD bug
2022-06-17 22:42:55 +01:00
gdk
f18e7aa779
SPIR-V: Implement StoreShader8/16 and StoreStorage8/16
2022-06-17 22:42:55 +01:00
gdk
3b444f0ea3
SPIR-V: Geometry shader passthrough support
2022-06-17 22:42:54 +01:00
gdk
cacc9c7da4
SPIR-V: Implement tessellation support
2022-06-17 22:42:54 +01:00
gdk
070996ad6d
Ignore unsupported attributes rather than throwing (matches current GLSL behaviour)
2022-06-17 22:42:54 +01:00