Merge pull request #2891 from dneto0/hlsl-namespace
[platform/upstream/glslang.git] / Test / 300BuiltIns.frag
1 #version 300 es
2
3 int imax, imin;
4 uint umax, umin;
5
6 vec3 x, y;    // ERROR, needs default precision
7 bvec3 bv;
8
9 uint uy;
10 uvec2 uv2c;
11 uvec2 uv2y;
12 uvec2 uv2x;
13 uvec4 uv4y;
14
15 ivec3 iv3a;
16 ivec3 iv3b;
17
18 ivec4 iv4a;
19 ivec4 iv4b;
20
21 float f;
22
23 vec2 v2a, v2b;
24 vec4 v4;
25
26 void main()
27 {
28     // 1.3 int
29     vec3 v = mix(x, y, bv);
30     ivec4 iv10 = abs(iv4a);
31     ivec4 iv11 = sign(iv4a);
32     ivec4 iv12 = min(iv4a, iv4b);
33     ivec4 iv13 = min(iv4a, imin);
34     uvec2 u = min(uv2x, uv2y);
35     uvec4 uv = min(uv4y, uy);
36     ivec3 iv14 = max(iv3a, iv3b);
37     ivec4 iv15 = max(iv4a, imax);
38     uvec2 u10 = max(uv2x, uv2y);
39     uvec2 u11 = max(uv2x, uy);
40     ivec4 iv16 = clamp(iv4a, iv4a, iv4b);
41     ivec4 iv17 = clamp(iv4a, imin, imax);
42     uvec2 u12 = clamp(uv2x, uv2y, uv2c);
43     uvec4 uv10 = clamp(uv4y, umin, umax);
44
45     // 1.3 float
46     vec3 modfOut;
47     vec3 v11 = modf(x, modfOut);
48
49     float t = trunc(f);
50     vec2 v12 = round(v2a);
51     vec2 v13 = roundEven(v2a);
52     bvec2 b10 = isnan(v2a);
53     bvec4 b11 = isinf(v4);
54
55     // 3.3 float
56     int i = floatBitsToInt(f);
57     uvec4 uv11 = floatBitsToUint(v4);
58     vec4 v14 = intBitsToFloat(iv4a);
59     vec2 v15 = uintBitsToFloat(uv2c);
60
61     // 4.0  pack
62     uint u19 = packSnorm2x16(v2a);
63     vec2 v20 = unpackSnorm2x16(uy);
64     uint u15 = packUnorm2x16(v2a);
65     vec2 v16 = unpackUnorm2x16(uy);
66     uint u17 = packHalf2x16(v2b);
67     vec2 v18 = unpackHalf2x16(uy);
68
69     // not present
70     noise2(v18);  // ERROR, not present
71
72     float t__;  // ERROR, no __ until revision 310
73
74       // ERROR, no __ until revision 310
75     #define __D
76 }