From 2519d14e36bf47f4ef6172928db13c5f7fae14e3 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Mon, 9 Aug 2021 13:50:07 -0700 Subject: [PATCH] UberShaderVertex: Fix Tony Hawk Pro Skater 4 Fixes https://bugs.dolphin-emu.org/issues/12620 The changed code did not match the corresponding code in VertexShaderGen. Some parts of the sky have 2 color channels in each vertex, while others only have 1, despite only color channel 0 being used and XFMEM_SETNUMCHAN being set to 1 for both of them. The old code (from #4601) caused channel 0 to be set to channel 1 if the vertex contained both color channels but the number of channels was set to 1, which is wrong. --- Source/Core/VideoCommon/UberShaderVertex.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoCommon/UberShaderVertex.cpp b/Source/Core/VideoCommon/UberShaderVertex.cpp index 5b02b1f989..ceafb09219 100644 --- a/Source/Core/VideoCommon/UberShaderVertex.cpp +++ b/Source/Core/VideoCommon/UberShaderVertex.cpp @@ -218,14 +218,14 @@ ShaderCode GenVertexShader(APIType api_type, const ShaderHostConfig& host_config " if ((components & {}u) != 0u)\n" " o.colors_0 = rawcolor0;\n" " else\n" - " o.colors_1 = float4(1.0, 1.0, 1.0, 1.0);\n" + " o.colors_0 = float4(1.0, 1.0, 1.0, 1.0);\n" "}}\n", VB_HAS_COL0); out.Write("if (xfmem_numColorChans < 2u) {{\n" " if ((components & {}u) != 0u)\n" - " o.colors_0 = rawcolor1;\n" + " o.colors_1 = rawcolor1;\n" " else\n" - " o.colors_1 = float4(1.0, 1.0, 1.0, 1.0);\n" + " o.colors_1 = o.colors_0;\n" "}}\n", VB_HAS_COL1);