[PATCH vkd3d v2 07/10] vkd3d-shader/hlsl: Support complex numeric initializers.
Giovanni Mascellani
gmascellani at codeweavers.com
Fri Jan 14 02:26:57 CST 2022
Hi,
Il 13/01/22 19:57, Zebediah Figura (she/her) ha scritto:
> This suggests to me that what we should probably do is actually
> "flatten" the initializer beforehand. That is, generate load and swizzle
> instructions such that every initializer argument is a scalar. E.g. the
> above would become {1, 2, u.x, u.y, u.z, u.w, 3, 4}. This generates a
> lot of unnecessary scalar ops, but I think we want a vectorization pass
> anyway.
Fully agreed. Initially I thought this could arrive later, but I'm
convincing myself that if we (meaning, in this case, Francisco :-P )
bite the bullet and immediately write the flattening, it becomes easier
to check the rest and we have cleaner code.
As I already said, there are cases that are treated a bit differently,
like "float3 x = float4(1, 2, 3, 4)", in which it is sensible to fall
back to a simple assignment.
Giovanni.
More information about the wine-devel
mailing list