1 2void TestIntMatTypes() 3{ 4 int1x1 i1x1; 5 int2x1 i2x1; 6 int3x1 i3x1; 7 int4x1 i4x1; 8 9 int1x2 i1x2; 10 int2x2 i2x2; 11 int3x2 i3x2; 12 int4x2 i4x2; 13 14 int1x3 i1x3; 15 int2x3 i2x3; 16 int3x3 i3x3; 17 int4x3 i4x3; 18 19 int1x4 i1x4; 20 int2x4 i2x4; 21 int3x4 i3x4; 22 int4x4 i4x4; 23 24 // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. 25 int1x1 r00 = transpose(i1x1); 26 int1x2 r01 = transpose(i2x1); 27 int1x3 r02 = transpose(i3x1); 28 int1x4 r03 = transpose(i4x1); 29 30 int2x1 r10 = transpose(i1x2); 31 int2x2 r11 = transpose(i2x2); 32 int2x3 r12 = transpose(i3x2); 33 int2x4 r13 = transpose(i4x2); 34 35 int3x1 r20 = transpose(i1x3); 36 int3x2 r21 = transpose(i2x3); 37 int3x3 r22 = transpose(i3x3); 38 int3x4 r23 = transpose(i4x3); 39 40 int4x1 r30 = transpose(i1x4); 41 int4x2 r31 = transpose(i2x4); 42 int4x3 r32 = transpose(i3x4); 43 int4x4 r33 = transpose(i4x4); 44} 45 46void TestUintMatTypes() 47{ 48 uint1x1 u1x1; 49 uint2x1 u2x1; 50 uint3x1 u3x1; 51 uint4x1 u4x1; 52 53 uint1x2 u1x2; 54 uint2x2 u2x2; 55 uint3x2 u3x2; 56 uint4x2 u4x2; 57 58 uint1x3 u1x3; 59 uint2x3 u2x3; 60 uint3x3 u3x3; 61 uint4x3 u4x3; 62 63 uint1x4 u1x4; 64 uint2x4 u2x4; 65 uint3x4 u3x4; 66 uint4x4 u4x4; 67 68 // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. 69 uint1x1 r00 = transpose(u1x1); 70 uint1x2 r01 = transpose(u2x1); 71 uint1x3 r02 = transpose(u3x1); 72 uint1x4 r03 = transpose(u4x1); 73 74 uint2x1 r10 = transpose(u1x2); 75 uint2x2 r11 = transpose(u2x2); 76 uint2x3 r12 = transpose(u3x2); 77 uint2x4 r13 = transpose(u4x2); 78 79 uint3x1 r20 = transpose(u1x3); 80 uint3x2 r21 = transpose(u2x3); 81 uint3x3 r22 = transpose(u3x3); 82 uint3x4 r23 = transpose(u4x3); 83 84 uint4x1 r30 = transpose(u1x4); 85 uint4x2 r31 = transpose(u2x4); 86 uint4x3 r32 = transpose(u3x4); 87 uint4x4 r33 = transpose(u4x4); 88} 89 90struct PS_OUTPUT { float4 color : SV_Target0; }; 91 92PS_OUTPUT main() 93{ 94 PS_OUTPUT ps_output; 95 ps_output.color = float4(0,0,0,0); 96 return ps_output; 97}; 98