diff --git a/src/video_core/renderer_opengl/gl_shader_gen.cpp b/src/video_core/renderer_opengl/gl_shader_gen.cpp index f73e6be4fe..aa2ff00747 100644 --- a/src/video_core/renderer_opengl/gl_shader_gen.cpp +++ b/src/video_core/renderer_opengl/gl_shader_gen.cpp @@ -618,13 +618,15 @@ static void WriteTevStage(std::string& out, const PicaFSConfig& config, unsigned if (!IsPassThroughTevStage(stage)) { const std::string index_name = std::to_string(index); - out += fmt::format("vec3 color_results_{}[3] = vec3[3](", index_name); + out += fmt::format("vec3 color_results_{}_1 = ", index_name); AppendColorModifier(out, config, stage.color_modifier1, stage.color_source1, index_name); - out += ", "; + out += fmt::format(";\nvec3 color_results_{}_2 = ", index_name); AppendColorModifier(out, config, stage.color_modifier2, stage.color_source2, index_name); - out += ", "; + out += fmt::format(";\nvec3 color_results_{}_3 = ", index_name); AppendColorModifier(out, config, stage.color_modifier3, stage.color_source3, index_name); - out += ");\n"; + out += fmt::format(";\nvec3 color_results_{}[3] = vec3[3](color_results_{}_1, " + "color_results_{}_2, color_results_{}_3);\n", + index_name, index_name, index_name, index_name); // Round the output of each TEV stage to maintain the PICA's 8 bits of precision out += fmt::format("vec3 color_output_{} = byteround(", index_name);