Module: wine Branch: master Commit: 36c67c8a44e6fe7c2f5088e08e94cfbafcf697d8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=36c67c8a44e6fe7c2f5088e08e...
Author: Józef Kucia jkucia@codeweavers.com Date: Tue Mar 8 17:46:52 2016 +0100
wined3d: Implement aoffimmi modifier for SM4 ld instruction in GLSL backend.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 ab4a511..732288a 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -4433,15 +4433,18 @@ static void shader_glsl_ld(const struct wined3d_shader_instruction *ins) struct glsl_src_param coord_param, lod_param; struct glsl_sample_function sample_function; unsigned int sampler_bind_idx; + DWORD flags = WINED3D_GLSL_SAMPLE_LOAD;
- shader_glsl_get_sample_function(ins->ctx, ins->src[1].reg.idx[0].offset, WINED3D_GLSL_SAMPLE_LOAD, - &sample_function); + if (wined3d_shader_instruction_has_texel_offset(ins)) + flags |= WINED3D_GLSL_SAMPLE_OFFSET; + + shader_glsl_get_sample_function(ins->ctx, ins->src[1].reg.idx[0].offset, flags, &sample_function); shader_glsl_add_src_param(ins, &ins->src[0], sample_function.coord_mask, &coord_param); shader_glsl_add_src_param(ins, &ins->src[0], WINED3DSP_WRITEMASK_3, &lod_param); sampler_bind_idx = shader_glsl_find_sampler(&ins->ctx->reg_maps->sampler_map, ins->src[1].reg.idx[0].offset, WINED3D_SAMPLER_DEFAULT); shader_glsl_gen_sample_code(ins, sampler_bind_idx, &sample_function, ins->src[1].swizzle, - NULL, NULL, lod_param.param_str, NULL, "%s", coord_param.param_str); + NULL, NULL, lod_param.param_str, &ins->texel_offset, "%s", coord_param.param_str); shader_glsl_release_sample_function(ins->ctx, &sample_function); }