Commit graph

2252 commits

Author SHA1 Message Date
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
gdk
d5e2cc2f9b SPIR-V: Constant buffer indexing support 2022-06-17 22:42:54 +01:00
gdk
1448136c3d SPIR-V: Implement LogicalExclusiveOr 2022-06-17 22:42:53 +01:00
gdk
fbfaf63940 Fix relaunch issues 2022-06-17 22:42:53 +01:00
gdk
324d0528d3 SPIR-V: Fix TextureSize for MS and Buffer sampler types 2022-06-17 22:42:53 +01:00
gdk
95d5a50042 SPIR-V: Implement attribute indexing and StoreAttribute 2022-06-17 22:42:53 +01:00
gdk
2ef7622126 SPIR-V: Fix SwizzleAdd and some validation errors 2022-06-17 22:42:52 +01:00
riperiperi
90ae2dbf69 Fix validation error for query reset
Need to think of a better way to do this.
2022-06-17 22:42:52 +01:00