ReinUsesLisp
9750e0410b
opengl: Declare fragment outputs even if they are not used
Fixes Ori and the Blind Forest's menu on GLASM. For some reason
(probably high level optimizations) it is not sanitized on SPIR-V for
OpenGL. Vulkan is unaffected by this change.
5 years ago
ReinUsesLisp
f7508aa014
spirv: Fix image and image buffer descriptor index usage
5 years ago
ReinUsesLisp
9452fe2dc6
shader: Split profile and runtime information in separate structs
5 years ago
ReinUsesLisp
5c6dc51c69
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
ReinUsesLisp
0b3a3f35e8
glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
5 years ago
lat9nq
69210028b4
shader_recompiler: GCC fixes
Fixes members of unnamed union not being accessible, and one function
without a declaration.
5 years ago
ReinUsesLisp
6be1db8873
emit_spirv: Jump to loop body with local variable
Silence unused variable warning
5 years ago
ReinUsesLisp
cb344497a7
emit_spirv: Add missing block in case
5 years ago
ReinUsesLisp
f2ae32fa76
glasm: Initial implementation of phi nodes on GLASM
5 years ago
ReinUsesLisp
03f6d424ce
glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
5 years ago
ReinUsesLisp
7273fcab95
glasm: Implement shuffle and vote instructions on GLASM
5 years ago
ReinUsesLisp
75adb54e79
shader: Fixup SPIR-V emit header namespaces
5 years ago
ReinUsesLisp
055db41f19
Move SPIR-V emission functions to their own header
5 years ago
FernandoS27
007a11014c
shader: Optimize NVN Fallthrough
5 years ago
ameerj
455872a4af
shader: Implement Int32 SUATOM/SURED
5 years ago
ReinUsesLisp
5ad12292a6
spirv: Be aware of NAN unaware drivers
5 years ago
ReinUsesLisp
21a5bd332c
spirv: Add SSBO read fallbacks when no aliasing is available
5 years ago
ReinUsesLisp
1922cbb84c
spirv: Add OpKill fallback to demote
5 years ago
ReinUsesLisp
d2e6291c0e
spirv: Do not enable ShaderLayer
This is enabled by an extension instead of the capability.
5 years ago
ReinUsesLisp
b2fe282ad3
spirv: Enable DemoteToHelperInvocationEXT only when supported
5 years ago
ReinUsesLisp
2ee532c9bc
spirv: Use OriginLowerLeft when requested
5 years ago
ReinUsesLisp
f6c09c27b1
spirv: Only add image operands mask when needed
5 years ago
ReinUsesLisp
59668831b7
spirv: Workaround image unsigned offset bug
Workaround bug on Nvidia's OpenGL SPIR-V compiler when using unsigned
texture offsets.
5 years ago
ReinUsesLisp
4a76786740
spirv: Add int8 and int16 capabilities only when supported
5 years ago
ReinUsesLisp
8accb076ee
spirv: Add integer clamping workarounds
Workaround more bugs on Nvidia's OpenGL SPIR-V compiler.
5 years ago
ReinUsesLisp
55ff0ab463
spirv: Implement int8 and int16 conversion fallbacks
5 years ago
ReinUsesLisp
884a937022
spirv: Support OpenGL uniform buffers and change bindings
5 years ago
ReinUsesLisp
2bdce72c92
spirv: Desambiguate descriptor names
Worksaround a bug on Nvidia's OpenGL SPIR-V compiler where names are
used for name matching.
5 years ago
FernandoS27
a2fac91c47
shader: Implement VertexA stage
5 years ago
ReinUsesLisp
e37ec2790d
shader: Fix storage type when reading patches on tess control
5 years ago
ReinUsesLisp
052317e748
shader: Implement indexed textures
5 years ago
ReinUsesLisp
6236b611cf
shader: Move microinstruction header to the value header
5 years ago
ReinUsesLisp
e54171c1a9
shader: Add NVN storage buffer fallbacks
When we can't track the SSBO origin of a global memory instruction,
leave it as a global memory operation and assume these pointers are in
the NVN storage buffer slots, then apply a linear search in the shader's
runtime.
5 years ago
ReinUsesLisp
eb7a932952
spirv: Fix ViewportMask
5 years ago
ameerj
688c89590c
spirv: Replace Constant/ConstantComposite with Const helper
5 years ago
FernandoS27
f1a3f449d6
shader: Address feedback
5 years ago
FernandoS27
2f01c7fb62
shader: Add coarse derivatives
5 years ago
FernandoS27
b1e325f317
shader: Implement fine derivates constant propagation
5 years ago
FernandoS27
6c60109967
shader: Implement SR_Y_DIRECTION
5 years ago
ReinUsesLisp
6d540c6f2e
shader: Fix memory barriers
5 years ago
ReinUsesLisp
0623915e2e
spirv: Fix implicit lod type
5 years ago
ReinUsesLisp
b597da7f2a
spirv: Use explicit lods outside of fragment shaders
5 years ago
ReinUsesLisp
f771d1fc52
spirv: Use ConstOffset instead of Offset when possible
5 years ago
ameerj
bfdb38404c
shader: Implement BFE and BFI CC
Fix two bugs in BFI.
5 years ago
ReinUsesLisp
ad1507b4a5
shader: Implement SampleMask
5 years ago
ReinUsesLisp
cc96469019
shader: Implement PIXLD.MY_INDEX
5 years ago
ReinUsesLisp
ca85ce444f
spirv: Bitcast non-F32 output attributes to their type before store
5 years ago
ReinUsesLisp
b6b541e36a
spirv: Implement ViewportMask with NV_viewport_array2
5 years ago
ReinUsesLisp
f65aa540d8
spirv: Bitcast non-F32 attributes to F32
5 years ago
ReinUsesLisp
10c96c7484
shader: Implement PrimitiveId
5 years ago