From: Elizabeth Figura zfigura@codeweavers.com
Ignoring the W attribute in the vertex buffer. --- dlls/d3d9/tests/visual.c | 4 ++-- dlls/wined3d/glsl_shader.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c index a8e6834ed2e..79bcf77ab2c 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c @@ -28890,7 +28890,7 @@ static void test_ffp_w(void) colour = get_readback_color(&rb, 161, 240) & 0x00ffffff; ok(colour == 0x000000ff, "Got colour 0x%08x.\n", colour); colour = get_readback_color(&rb, 159, 240) & 0x00ffffff; - todo_wine ok(colour == 0x00ff0000, "Got colour 0x%08x.\n", colour); + ok(colour == 0x00ff0000, "Got colour 0x%08x.\n", colour); release_surface_readback(&rb);
/* Translate X by one unit using the world matrix. @@ -28914,7 +28914,7 @@ static void test_ffp_w(void) colour = get_readback_color(&rb, 481, 240) & 0x00ffffff; ok(colour == 0x000000ff, "Got colour 0x%08x.\n", colour); colour = get_readback_color(&rb, 479, 240) & 0x00ffffff; - todo_wine ok(colour == 0x00ff0000, "Got colour 0x%08x.\n", colour); + ok(colour == 0x00ff0000, "Got colour 0x%08x.\n", colour); release_surface_readback(&rb);
hr = IDirect3DDevice9_SetTransform(device, D3DTS_WORLD, &identity); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 78926739310..5ec22a96a4c 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -9242,7 +9242,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
shader_addline(buffer, "vec4 ec_pos = vec4(0.0);\n"); for (i = 0; i < settings->vertexblends + 1; ++i) - shader_addline(buffer, "ec_pos += ffp_attrib_blendweight[%u] * (ffp_modelview_matrix[%u] * ffp_attrib_position);\n", i, i); + shader_addline(buffer, "ec_pos += ffp_attrib_blendweight[%u] * (ffp_modelview_matrix[%u] * vec4(ffp_attrib_position.xyz, 1.0));\n", i, i);
shader_addline(buffer, "gl_Position = ffp_projection_matrix * ec_pos;\n"); if (settings->clipping)