diff options
| author | Pokechu22 <Pokechu022@gmail.com> | 2022-01-12 21:50:34 -0800 |
|---|---|---|
| committer | Pokechu22 <Pokechu022@gmail.com> | 2022-01-12 21:50:34 -0800 |
| commit | fc0d958e26df5a450415195af3b85540be39e4b0 (patch) | |
| tree | b0212933b7e518d5379fd61279a8be4c5b707b47 /Source/Core/VideoCommon/PixelShaderGen.cpp | |
| parent | e4372a317dbc6bd5ec509ee43e2e51f774193c9c (diff) | |
PixelShaderGen: Fix invalid use of int3(0)
This syntax is allowed by GLSL, but HLSL doesn't allow it. This meant that games using R8 comparisons in equal mode would produce shaders that failed to compile. Super Mario Galaxy's water levels were affected by this.
Diffstat (limited to 'Source/Core/VideoCommon/PixelShaderGen.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/PixelShaderGen.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 6419efdea5..8aaba2e4e0 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -1688,7 +1688,7 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i }; static constexpr EnumMap<const char*, TevCompareMode::RGB8> tev_rgb_comparison_eq{ - "((tevin_a.r == tevin_b.r) ? tevin_c.rgb : int3(0))", // TevCompareMode::R8 + "((tevin_a.r == tevin_b.r) ? tevin_c.rgb : int3(0,0,0))", // TevCompareMode::R8 "((idot(tevin_a.rgb,comp16) == idot(tevin_b.rgb,comp16)) ? tevin_c.rgb : int3(0,0,0))", // GR16 "((idot(tevin_a.rgb,comp24) == idot(tevin_b.rgb,comp24)) ? tevin_c.rgb : int3(0,0,0))", // BGR24 "((int3(1,1,1) - sign(abs(tevin_a.rgb - tevin_b.rgb))) * tevin_c.rgb)" // RGB8 |
