=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Support SM5 variant of gather4.

Alexandre Julliard julliard at winehq.org
Tue Apr 11 15:31:04 CDT 2017


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

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Tue Apr 11 13:30:33 2017 +0200

wined3d: Support SM5 variant of gather4.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

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

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 7cd1698..fada746 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -5928,9 +5928,9 @@ static void shader_glsl_gather4(const struct wined3d_shader_instruction *ins)
 {
     const struct wined3d_shader_reg_maps *reg_maps = ins->ctx->reg_maps;
     const char *prefix = shader_glsl_get_prefix(reg_maps->shader_version.type);
+    unsigned int resource_idx, sampler_idx, sampler_bind_idx, component_idx;
     const struct wined3d_gl_info *gl_info = ins->ctx->gl_info;
     const struct wined3d_shader_resource_info *resource_info;
-    unsigned int resource_idx, sampler_idx, sampler_bind_idx;
     struct wined3d_string_buffer *buffer = ins->ctx->buffer;
     struct glsl_src_param coord_param, compare_param;
     unsigned int coord_size, offset_size;
@@ -5947,6 +5947,7 @@ static void shader_glsl_gather4(const struct wined3d_shader_instruction *ins)
 
     resource_idx = ins->src[1].reg.idx[0].offset;
     sampler_idx = ins->src[2].reg.idx[0].offset;
+    component_idx = shader_glsl_swizzle_get_component(ins->src[2].swizzle, 0);
     sampler_bind_idx = shader_glsl_find_sampler(&reg_maps->sampler_map, resource_idx, sampler_idx);
 
     if (!(resource_info = shader_glsl_get_resource_info(ins, &ins->src[1].reg)))
@@ -5977,6 +5978,8 @@ static void shader_glsl_gather4(const struct wined3d_shader_instruction *ins)
         shader_addline(buffer, ", ");
         shader_glsl_append_imm_ivec(buffer, offset_immdata, offset_size);
     }
+    if (component_idx)
+        shader_addline(buffer, ", %u", component_idx);
 
     shader_addline(buffer, ")%s);\n", dst_swizzle);
 }




More information about the wine-cvs mailing list