[PATCH vkd3d 06/17] vkd3d-shader/hlsl: Lower scalar-to-vector casts to swizzles.
Zebediah Figura
zfigura at codeweavers.com
Thu Dec 2 10:19:02 CST 2021
On 12/2/21 09:26, Giovanni Mascellani wrote:
> Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
> ---
> Though with a few comments...
>
> On 01/12/21 17:14, Matteo Bruni wrote:
>> + if (instr->type != HLSL_IR_EXPR)
>> + return false;
>> + cast = hlsl_ir_expr(instr);
>> + src_type = cast->operands[0].node->data_type;
>> + dst_type = cast->node.data_type;
>
> Here operands[0].node is assumed to be valid before we know the
> operation is checked to be OP1_CAST. I know that we don't have nullary
> operators and I can't see why we might eventually have one, but I still
> don't like the idea.
Yes, I suppose I would agree.
>
>> + if (cast->op == HLSL_OP1_CAST
>> + && src_type->type <= HLSL_CLASS_VECTOR && dst_type->type
>> <= HLSL_CLASS_VECTOR
>> + && src_type->dimx == 1)
>
> I don't like how this is formatted. I would either put each conjoint on
> a dedicated line, or put two in one line and two in another. This 1-2-1
> structure makes it more difficult to parse to the eye, at least to my eye.
The mental logic is that it compares "op", then "type" (for both
sources), then "dimx". I don't feel strongly about it, though.
More information about the wine-devel
mailing list