[PATCH vkd3d v2 04/10] vkd3d-shader/hlsl: Decay matrices of shape 1xN to vectors of length N.

Zebediah Figura (she/her) zfigura at codeweavers.com
Fri Oct 15 12:47:38 CDT 2021


On 10/15/21 03:36, Giovanni Mascellani wrote:
> For example, the common shape between a matrix 1x4 and a matrix 2x4 is
> a vector of length 4, not a matrix 1x4.
> 

What leads you to this conclusion? Even the most obvious case I checked 
suggests this isn't true:

---

uniform float2x4 x;
uniform float1x4 y;

float4 main() : sv_target
{
     return (x + y).xyzw;
}

---

Native d3dcompiler_47 fails here with:

Z:\home\meg\test.hlsl(6,13-17): warning X3206: implicit truncation of 
vector type
Z:\home\meg\test.hlsl(6,12-23): error X3018: invalid subscript 'xyzw'
Z:\home\meg\test.hlsl(6,5-24): error X3080: 'main': function must return 
a value

Same if I swap the order of addition, or the x and y dimensions.

Returning (x + y) works fine, but as I understand that's because an 
implicit cast from float1x4 to float4 is valid.



More information about the wine-devel mailing list