Matteo Bruni : wined3d: Fix GLSL backend with non-GLSL vertex and pixel pipeline combination.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jul 3 09:02:36 CDT 2015


Module: wine
Branch: master
Commit: 93c88d34a8a7e9aa1ff9c20626e9580948c07e99
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=93c88d34a8a7e9aa1ff9c20626e9580948c07e99

Author: Matteo Bruni <mbruni at codeweavers.com>
Date:   Thu Jul  2 17:41:31 2015 +0200

wined3d: Fix GLSL backend with non-GLSL vertex and pixel pipeline combination.

That can only happen by manually modifying
select_vertex_implementation() and select_fragment_implementation(),
which may be useful for testing non-default vertex / fragment pipeline
implementations.

---

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

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 1f6ce09..54922e1 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -6584,7 +6584,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
     WORD attribs_map;
     struct wined3d_string_buffer *tmp_name;
 
-    if (!(context->shader_update_mask & (1 << WINED3D_SHADER_TYPE_VERTEX)))
+    if (!(context->shader_update_mask & (1 << WINED3D_SHADER_TYPE_VERTEX)) && ctx_data->glsl_program)
     {
         vs_id = ctx_data->glsl_program->vs.id;
         vs_list = &ctx_data->glsl_program->vs.shader_entry;
@@ -6624,7 +6624,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
         vs_list = &ffp_shader->linked_programs;
     }
 
-    if (!(context->shader_update_mask & (1 << WINED3D_SHADER_TYPE_PIXEL)))
+    if (!(context->shader_update_mask & (1 << WINED3D_SHADER_TYPE_PIXEL)) && ctx_data->glsl_program)
     {
         ps_id = ctx_data->glsl_program->ps.id;
         ps_list = &ctx_data->glsl_program->ps.shader_entry;




More information about the wine-cvs mailing list