[PATCH 1/5] wined3d: Dirtify vertex shader on transformed <-> untransformed transitions.

Matteo Bruni mbruni at codeweavers.com
Tue May 19 16:32:31 CDT 2015


Fixes bug 38539.
---
 dlls/wined3d/glsl_shader.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 0a130e1..c85508c 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -7682,6 +7682,12 @@ static void glsl_vertex_pipe_vdecl(struct wined3d_context *context,
 
     context->last_was_rhw = transformed;
 
+    /* If the vertex declaration contains a transformed position attribute,
+     * the draw uses the fixed function vertex pipeline regardless of any
+     * vertex shader set by the application. */
+    if (transformed != wasrhw)
+        context->shader_update_mask |= 1 << WINED3D_SHADER_TYPE_VERTEX;
+
     if (!use_vs(state))
     {
         if (context->last_was_vshader)
-- 
2.3.6




More information about the wine-patches mailing list