[PATCH 3/8] wined3d: Explicitly avoid using texture unit mapping.

Józef Kucia jkucia at codeweavers.com
Thu Mar 9 03:03:05 CST 2017


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

Texture unit mapping is already ignored in context_bind_shader_resources().

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

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 490fcbf..14c2e74 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -589,9 +589,12 @@ static void shader_glsl_load_samplers(const struct wined3d_gl_info *gl_info,
 }
 
 /* Context activation is done by the caller. */
-static void shader_glsl_load_graphics_samplers(const struct wined3d_gl_info *gl_info,
-        struct shader_glsl_priv *priv, const DWORD *tex_unit_map, GLuint program_id)
+static void shader_glsl_load_graphics_samplers(const struct wined3d_context *context,
+        struct shader_glsl_priv *priv, GLuint program_id)
 {
+    const struct wined3d_d3d_info *d3d_info = context->d3d_info;
+    const struct wined3d_gl_info *gl_info = context->gl_info;
+    const DWORD *tex_unit_map;
     const char *prefix;
     unsigned int i;
 
@@ -607,6 +610,9 @@ static void shader_glsl_load_graphics_samplers(const struct wined3d_gl_info *gl_
         {WINED3D_SHADER_TYPE_VERTEX,    MAX_FRAGMENT_SAMPLERS,  MAX_VERTEX_SAMPLERS},
     };
 
+    tex_unit_map = d3d_info->wined3d_creation_flags & WINED3D_LEGACY_TEXTURE_BINDING
+            ? context->tex_unit_map : NULL;
+
     for (i = 0; i < ARRAY_SIZE(sampler_info); ++i)
     {
         prefix = shader_glsl_get_prefix(sampler_info[i].type);
@@ -8984,7 +8990,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
 
     /* Texture unit mapping is set up to be the same each time the shader
      * program is used so we can hardcode the sampler uniform values. */
-    shader_glsl_load_graphics_samplers(gl_info, priv, context->tex_unit_map, program_id);
+    shader_glsl_load_graphics_samplers(context, priv, program_id);
 
     entry->constant_update_mask = 0;
     if (vshader)
-- 
2.10.2




More information about the wine-patches mailing list