[PATCH 01/10] wined3d: Update vertex shader when hull shader is changed.

Józef Kucia jkucia at codeweavers.com
Sat May 20 06:45:55 CDT 2017


For vertex shader output count.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---

The glsl_vertex_pipe_geometry_shader() and glsl_vertex_pipe_pixel_shader() do
the same thing. In the long term, we may want to change the way how
input/output counts are handled between shader stages. Also, this problem
should be gone when we start using SSO for input/output matching.

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

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 5d08a48..f2fde11 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -10676,10 +10676,13 @@ static void glsl_vertex_pipe_vs(struct wined3d_context *context,
 static void glsl_vertex_pipe_hs(struct wined3d_context *context,
         const struct wined3d_state *state, DWORD state_id)
 {
-    /*  In Direct3D tessellator options (e.g. output primitive type, primitive
-     *  winding) are defined in Hull Shaders, while in GLSL those are
-     *  specified in Tessellation Evaluation Shaders. */
+    /* In Direct3D tessellator options (e.g. output primitive type, primitive
+     * winding) are defined in Hull Shaders, while in GLSL those are
+     * specified in Tessellation Evaluation Shaders. */
     context->shader_update_mask |= 1u << WINED3D_SHADER_TYPE_DOMAIN;
+
+    if (state->shader[WINED3D_SHADER_TYPE_VERTEX])
+        context->shader_update_mask |= 1u << WINED3D_SHADER_TYPE_VERTEX;
 }
 
 static void glsl_vertex_pipe_geometry_shader(struct wined3d_context *context,
-- 
2.10.2




More information about the wine-patches mailing list