From 176177af491645d080697957567b18906f2fe398 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 3 Jan 2017 20:49:21 +1000 Subject: [PATCH] GeometryShaderGen: Use lower-left origin for point texture coordinates From what I can tell, the emulated GPU places (0,0) at the lower left of the image, and we were generating texture coordinates so that (0,0) was at the upper-left in the expansion geometry shader, causing textures used by point sprites to be flipped vertically. Fixes the upside-down A button in Mario Golf. --- Source/Core/VideoCommon/GeometryShaderGen.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp index ab2154ef17..aeb7f76b4b 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.cpp +++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp @@ -285,9 +285,9 @@ ShaderCode GenerateGeometryShaderCode(APIType ApiType, const geometry_shader_uid for (unsigned int i = 0; i < uid_data->numTexGens; ++i) { out.Write("\tif (((" I_TEXOFFSET "[1] >> %d) & 0x1) != 0) {\n", i); - out.Write("\t\tll.tex%d.xy += float2(0,1) * texOffset;\n", i); - out.Write("\t\tlr.tex%d.xy += texOffset;\n", i); - out.Write("\t\tur.tex%d.xy += float2(1,0) * texOffset;\n", i); + out.Write("\t\tul.tex%d.xy += float2(0,1) * texOffset;\n", i); + out.Write("\t\tur.tex%d.xy += texOffset;\n", i); + out.Write("\t\tlr.tex%d.xy += float2(1,0) * texOffset;\n", i); out.Write("\t}\n"); } out.Write("\t}\n");