From: Nikolay Sivov nsivov@codeweavers.com
--- libs/vkd3d-shader/hlsl.y | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index d5e2b2a9..b67d393e 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -1636,12 +1636,12 @@ static struct hlsl_ir_node *add_binary_dot_expr(struct hlsl_ctx *ctx, struct lis return NULL; }
- if (arg1->data_type->type == HLSL_CLASS_SCALAR) - dim = arg2->data_type->dimx; - else if (arg1->data_type->type == HLSL_CLASS_SCALAR) - dim = arg1->data_type->dimx; - else + if (arg1->data_type->type == HLSL_CLASS_SCALAR && arg2->data_type->type == HLSL_CLASS_SCALAR) + dim = 1; + else if (arg1->data_type->type == HLSL_CLASS_VECTOR && arg2->data_type->type == HLSL_CLASS_VECTOR) dim = min(arg1->data_type->dimx, arg2->data_type->dimx); + else + dim = max(arg1->data_type->dimx, arg2->data_type->dimx);
if (dim == 1) op = HLSL_OP2_MUL;