summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv
AgeCommit message (Collapse)Author
2021-07-22spirv: Reduce log severity of mismatching denorm rulesReinUsesLisp
2021-07-22shader: Add loggingReinUsesLisp
2021-07-22shader: Add shader loop safety check settingslat9nq
Also add a setting for enable Nsight Aftermath.
2021-07-22spirv/convert: Catch more signed operations oversightsameerj
The sign bit on integers of size < 32 was not properly preserved in casts
2021-07-22spirv/convert: Catch more broken signed operations on Nvidia OpenGLReinUsesLisp
BitCast U32 to S32 before converting to float on drivers with broken signed operations.
2021-07-22shader: Add support for "negative" and unaligned offsetsReinUsesLisp
"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.
2021-07-22spirv: Fix output generics with componentsReinUsesLisp
2021-07-22opengl: Declare fragment outputs even if they are not usedReinUsesLisp
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.
2021-07-22spirv: Fix image and image buffer descriptor index usageReinUsesLisp
2021-07-22shader: Split profile and runtime information in separate structsReinUsesLisp
2021-07-22shader: Read branch conditions from an instructionReinUsesLisp
Fixes the identity removal pass.
2021-07-22glasm: Implement TEX and TEXS instructionsReinUsesLisp
Remove lod clamp from texture instructions with lod, as this is not needed (nor supported).
2021-07-22shader_recompiler: GCC fixeslat9nq
Fixes members of unnamed union not being accessible, and one function without a declaration.
2021-07-22emit_spirv: Jump to loop body with local variableReinUsesLisp
Silence unused variable warning
2021-07-22emit_spirv: Add missing block in caseReinUsesLisp
2021-07-22glasm: Initial implementation of phi nodes on GLASMReinUsesLisp
2021-07-22glasm: Rework control flow introducing a syntax listReinUsesLisp
This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow.
2021-07-22glasm: Implement shuffle and vote instructions on GLASMReinUsesLisp
2021-07-22shader: Fixup SPIR-V emit header namespacesReinUsesLisp
2021-07-22Move SPIR-V emission functions to their own headerReinUsesLisp
2021-07-22shader: Optimize NVN FallthroughFernandoS27
2021-07-22shader: Implement Int32 SUATOM/SUREDameerj
2021-07-22spirv: Be aware of NAN unaware driversReinUsesLisp
2021-07-22spirv: Add SSBO read fallbacks when no aliasing is availableReinUsesLisp
2021-07-22spirv: Add OpKill fallback to demoteReinUsesLisp
2021-07-22spirv: Do not enable ShaderLayerReinUsesLisp
This is enabled by an extension instead of the capability.
2021-07-22spirv: Enable DemoteToHelperInvocationEXT only when supportedReinUsesLisp
2021-07-22spirv: Use OriginLowerLeft when requestedReinUsesLisp
2021-07-22spirv: Only add image operands mask when neededReinUsesLisp
2021-07-22spirv: Workaround image unsigned offset bugReinUsesLisp
Workaround bug on Nvidia's OpenGL SPIR-V compiler when using unsigned texture offsets.
2021-07-22spirv: Add int8 and int16 capabilities only when supportedReinUsesLisp
2021-07-22spirv: Add integer clamping workaroundsReinUsesLisp
Workaround more bugs on Nvidia's OpenGL SPIR-V compiler.
2021-07-22spirv: Implement int8 and int16 conversion fallbacksReinUsesLisp
2021-07-22spirv: Support OpenGL uniform buffers and change bindingsReinUsesLisp
2021-07-22spirv: Desambiguate descriptor namesReinUsesLisp
Worksaround a bug on Nvidia's OpenGL SPIR-V compiler where names are used for name matching.
2021-07-22shader: Implement VertexA stageFernandoS27
2021-07-22shader: Fix storage type when reading patches on tess controlReinUsesLisp
2021-07-22shader: Implement indexed texturesReinUsesLisp
2021-07-22shader: Move microinstruction header to the value headerReinUsesLisp
2021-07-22shader: Add NVN storage buffer fallbacksReinUsesLisp
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.
2021-07-22spirv: Fix ViewportMaskReinUsesLisp
2021-07-22spirv: Replace Constant/ConstantComposite with Const helperameerj
2021-07-22shader: Address feedbackFernandoS27
2021-07-22shader: Add coarse derivativesFernandoS27
2021-07-22shader: Implement fine derivates constant propagationFernandoS27
2021-07-22shader: Implement SR_Y_DIRECTIONFernandoS27
2021-07-22shader: Fix memory barriersReinUsesLisp
2021-07-22spirv: Fix implicit lod typeReinUsesLisp
2021-07-22spirv: Use explicit lods outside of fragment shadersReinUsesLisp
2021-07-22spirv: Use ConstOffset instead of Offset when possibleReinUsesLisp