diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-10-06 20:07:16 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-10-06 21:32:05 -0500 |
| commit | d4bd5fde71d7899181cba0d8af10b1abdf7fec15 (patch) | |
| tree | 22fac90cc10a1bad123ce2aa397a21017c3b477f /Source/Core/VideoCommon | |
| parent | cf1b634c33895ffd6e8512e1008fc81cf82304d5 (diff) | |
Only emit the texgens if they are used, not every single time do all of them.
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/Src/PixelShaderGen.cpp | 6 | ||||
| -rw-r--r-- | 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"); |
