Merge pull request #2892 from greg-lunarg/mb
[platform/upstream/glslang.git] / Test / hlsl.matType.int.frag
1
2 void 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
46 void 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
90 struct PS_OUTPUT { float4 color : SV_Target0; };
91
92 PS_OUTPUT main()
93 {
94     PS_OUTPUT ps_output;
95     ps_output.color = float4(0,0,0,0);
96     return ps_output;
97 };