Module: wine Branch: master Commit: 9b2593575783cb73c76388e5b71046c56bd4f9df URL: http://source.winehq.org/git/wine.git/?a=commit;h=9b2593575783cb73c76388e5b7...
Author: Stefan Dösinger stefan@codeweavers.com Date: Wed Apr 23 22:18:32 2008 +0200
wined3d: Fix DP2ADD in GLSL.
DP2ADD returns a scalar, and fglrx (correctly) complains that it can't assign that to a 3 component vector.
---
dlls/wined3d/glsl_shader.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 901d461..ebf3c09 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -2696,7 +2696,11 @@ void pshader_glsl_dp2add(SHADER_OPCODE_ARG* arg) { shader_glsl_add_src_param(arg, arg->src[1], arg->src_addr[1], WINED3DSP_WRITEMASK_0 | WINED3DSP_WRITEMASK_1, &src1_param); shader_glsl_add_src_param(arg, arg->src[2], arg->src_addr[2], WINED3DSP_WRITEMASK_0, &src2_param);
- shader_addline(arg->buffer, "dot(%s, %s) + %s);\n", src0_param.param_str, src1_param.param_str, src2_param.param_str); + if (mask_size > 1) { + shader_addline(arg->buffer, "vec%d(dot(%s, %s) + %s));\n", mask_size, src0_param.param_str, src1_param.param_str, src2_param.param_str); + } else { + shader_addline(arg->buffer, "dot(%s, %s) + %s);\n", src0_param.param_str, src1_param.param_str, src2_param.param_str); + } }
void pshader_glsl_input_pack(