Lioncash
0692818106
emit_spirv_instructions: Add missing header guard
5 years ago
ameerj
3927809a63
shader: Fix disabled attribute default values
5 years ago
lat9nq
b557314001
shader_recompiler, video_core: Resolve clang errors
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
5 years ago
ameerj
508e41777b
shader: Ignore global memory ops on devices lacking int64 support
5 years ago
ReinUsesLisp
ff35ef8ec1
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
5 years ago
lat9nq
c969f6e678
shader: GCC fmt 8.0.0 fixes
5 years ago
ReinUsesLisp
b48b4b0600
shader: Fix disabled and unwritten attributes and varyings
5 years ago
ReinUsesLisp
7dc8577529
spirv: Fix code emission when descriptor aliasing is unsupported
Fixes OpenGL.
5 years ago
ReinUsesLisp
b1df436cef
shader: Rework varyings and implement passthrough geometry shaders
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
5 years ago
ReinUsesLisp
f158fe9359
shader: Remove IAbs64
5 years ago
ReinUsesLisp
04c1dca457
shader: Move loop safety tests to code emission
5 years ago
ReinUsesLisp
10f91c42e2
spirv: Properly handle devices without int8 and int16
5 years ago
ReinUsesLisp
fe5fc478e7
spirv: Handle small storage buffer loads on devices with no support
5 years ago
ReinUsesLisp
c4a71824d5
shader: Properly manage attributes not written from previous stages
5 years ago
ReinUsesLisp
9389e71b12
shader: Split profile and runtime info headers
5 years ago
ReinUsesLisp
04fed81921
spirv: Reduce log severity of mismatching denorm rules
5 years ago
ReinUsesLisp
f40daa777e
shader: Add logging
5 years ago
lat9nq
3a70b6c79b
shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
5 years ago
ameerj
60b33bdc9f
spirv/convert: Catch more signed operations oversights
The sign bit on integers of size < 32 was not properly preserved in casts
5 years ago
ReinUsesLisp
4fedf2c20a
spirv/convert: Catch more broken signed operations on Nvidia OpenGL
BitCast U32 to S32 before converting to float on drivers with broken
signed operations.
5 years ago
ReinUsesLisp
4744a21bd4
shader: Add support for "negative" and unaligned offsets
"Negative" offsets don't exist. They are shown as such due to a bug in
nvdisasm.
Unaligned offsets have been proved to read the aligned offset. For
example, when reading an U32, if the offset is 6, the offset read will
be 4.
5 years ago
ReinUsesLisp
d27dbec3e6
spirv: Fix output generics with components
5 years ago
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