[PATCH 4/5] wined3d: Don't read texcoord attributes unless necessary.

Matteo Bruni mbruni at codeweavers.com
Thu Mar 31 12:50:59 CDT 2016


Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
Mostly to declutter the shaders a bit, the GLSL compiler should have
figured out those were unnecessary and optimized them away.

 dlls/wined3d/glsl_shader.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 3127b75..dbb0956 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -6149,10 +6149,9 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
     for (i = 0; i < MAX_TEXTURES; ++i)
     {
         unsigned int coord_idx = settings->texgen[i] & 0x0000ffff;
-        if ((settings->texgen[i] & 0xffff0000) == WINED3DTSS_TCI_PASSTHRU)
-        {
+        if ((settings->texgen[i] & 0xffff0000) == WINED3DTSS_TCI_PASSTHRU
+                && settings->texcoords & (1u << i))
             shader_addline(buffer, "vec4 ffp_attrib_texcoord%u = vs_in%u;\n", i, coord_idx + WINED3D_FFP_TEXCOORD0);
-        }
     }
 
     shader_addline(buffer, "ffp_attrib_blendweight[%u] = 1.0;\n", settings->vertexblends);
-- 
2.7.3




More information about the wine-patches mailing list