summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/UberShaderVertex.cpp
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2021-08-09 13:50:07 -0700
committerPokechu22 <Pokechu022@gmail.com>2021-08-18 10:40:53 -0700
commit2519d14e36bf47f4ef6172928db13c5f7fae14e3 (patch)
tree89a82211d748993a519edb7e45d87bf48a191a26 /Source/Core/VideoCommon/UberShaderVertex.cpp
parent33154de614981f60a6d4dcd9328a86ed3af8808e (diff)
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.
Diffstat (limited to 'Source/Core/VideoCommon/UberShaderVertex.cpp')
-rw-r--r--Source/Core/VideoCommon/UberShaderVertex.cpp6
1 files 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);