diff --git a/Ryujinx.Graphics.Shader/CodeGen/Spirv/SpirvGenerator.cs b/Ryujinx.Graphics.Shader/CodeGen/Spirv/SpirvGenerator.cs index 1cd965813..c74d6d30f 100644 --- a/Ryujinx.Graphics.Shader/CodeGen/Spirv/SpirvGenerator.cs +++ b/Ryujinx.Graphics.Shader/CodeGen/Spirv/SpirvGenerator.cs @@ -84,6 +84,12 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Spirv Generate(context, function.MainBlock); + // Functions must always end with a return. + if (!(function.MainBlock.Last is AstOperation operation) || operation.Inst != Instruction.Return) + { + context.Return(); + } + context.FunctionEnd(); if (funcIndex == 0)