From d4bd5fde71d7899181cba0d8af10b1abdf7fec15 Mon Sep 17 00:00:00 2001 From: Ryan Houdek <Sonicadvance1@gmail.com> Date: Sun, 6 Oct 2013 20:07:16 -0500 Subject: [PATCH] Only emit the texgens if they are used, not every single time do all of them. --- Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 6 ++++-- Source/Core/VideoCommon/Src/VertexShaderGen.cpp | 7 ++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp index afbd5861e9..e4d2bc569f 100644 --- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp @@ -319,7 +319,8 @@ static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_T if (xfregs.numTexGen.numTexGens < 7) { for (int i = 0; i < 8; ++i) - out.Write("VARYIN float3 uv%d_2;\n", i); + if(i < xfregs.numTexGen.numTexGens) + out.Write("VARYIN float3 uv%d_2;\n", i); out.Write("VARYIN float4 clipPos_2;\n"); if (g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting) { @@ -437,7 +438,8 @@ static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_T { if(numTexgen) for (int i = 0; i < 8; ++i) - out.Write("float3 uv%d = uv%d_2;\n", i, i); + if(i < xfregs.numTexGen.numTexGens) + out.Write("float3 uv%d = uv%d_2;\n", i, i); out.Write("float4 clipPos = clipPos_2;\n"); if (g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting) { diff --git a/Source/Core/VideoCommon/Src/VertexShaderGen.cpp b/Source/Core/VideoCommon/Src/VertexShaderGen.cpp index 336979a09b..f8adbec049 100644 --- a/Source/Core/VideoCommon/Src/VertexShaderGen.cpp +++ b/Source/Core/VideoCommon/Src/VertexShaderGen.cpp @@ -143,7 +143,8 @@ static inline void GenerateVertexShader(T& out, u32 components, API_TYPE api_typ if (xfregs.numTexGen.numTexGens < 7) { for (int i = 0; i < 8; ++i) - out.Write("VARYOUT float3 uv%d_2;\n", i); + if (i < xfregs.numTexGen.numTexGens) + out.Write("VARYOUT float3 uv%d_2;\n", i); out.Write("VARYOUT float4 clipPos_2;\n"); if (g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting) out.Write("VARYOUT float4 Normal_2;\n"); @@ -483,12 +484,8 @@ static inline void GenerateVertexShader(T& out, u32 components, API_TYPE api_typ if (xfregs.numTexGen.numTexGens < 7) { for (unsigned int i = 0; i < 8; ++i) - { if(i < xfregs.numTexGen.numTexGens) out.Write(" uv%d_2.xyz = o.tex%d;\n", i, i); - else - out.Write(" uv%d_2.xyz = float3(0.0, 0.0, 0.0);\n", i); - } out.Write(" clipPos_2 = o.clipPos;\n"); if(g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting) out.Write(" Normal_2 = o.Normal;\n");