Merge pull request #3031 from rg3igalia/sub-group-size-arb-flat-fix
[platform/upstream/glslang.git] / Test / spv.conversion.frag
1 #version 140\r
2 \r
3 bool  u_b;\r
4 bvec2 u_b2;\r
5 bvec3 u_b3;\r
6 bvec4 u_b4;\r
7 \r
8 int   u_i;\r
9 ivec2 u_i2;\r
10 ivec3 u_i3;\r
11 ivec4 u_i4;\r
12 \r
13 float u_f;\r
14 vec2 u_f2;\r
15 vec3 u_f3;\r
16 vec4 u_f4;\r
17 \r
18 bool  i_b;\r
19 bvec2 i_b2;\r
20 bvec3 i_b3;\r
21 bvec4 i_b4;\r
22 \r
23 flat in int   i_i;\r
24 flat in ivec2 i_i2;\r
25 flat in ivec3 i_i3;\r
26 flat in ivec4 i_i4;\r
27 \r
28 in float i_f;\r
29 in vec2 i_f2;\r
30 in vec3 i_f3;\r
31 in vec4 i_f4;\r
32 \r
33 void main()\r
34 {\r
35     bool   b = bool(u_i) ^^ bool(u_f);\r
36     bvec2 b2 = bvec2(u_i, u_f);\r
37     bvec3 b3 = bvec3(u_i, u_f, i_i);\r
38     bvec4 b4 = bvec4(u_i, u_f, i_i, i_f);\r
39 \r
40     int    i = int(u_f)    + int(b);\r
41     ivec2 i2 = ivec2(u_f2) + ivec2(b2);\r
42     ivec3 i3 = ivec3(u_f3) + ivec3(b3);\r
43     ivec4 i4 = ivec4(u_f4) + ivec4(b4);\r
44 \r
45     float f = i;\r
46     vec2 f2 = i2;\r
47     vec3 f3 = i3;\r
48     vec4 f4 = i4;\r
49 \r
50     f  += (float(i) + float(b));\r
51     f2 -= vec2(i2) + vec2(b2);\r
52     f3 /= vec3(i3) + vec3(b3);\r
53     f4 += vec4(i4) + vec4(b4);\r
54 \r
55     f4 += vec4(bvec4(i_i4));\r
56     f4 += vec4(bvec4(u_f4));\r
57     \r
58     f  += f                 - i;\r
59     f2 += vec2(f, i)       + i2;\r
60     f3 += i3 + vec3(f, i, f);\r
61     f4 += vec4(b, i, f, i) + i4;\r
62     \r
63     f2 += vec2(f, i)       * i;\r
64     f3 += vec3(f, i, f)    + i;\r
65     f4 += i - vec4(b, i, f, i);\r
66 \r
67     i2 += ivec2(f, i);\r
68     i3 += ivec3(f, i, f);\r
69     i4 += ivec4(b, i, f, i);\r
70 \r
71     if (f < i || i < f ||\r
72         f2 == i2 ||\r
73         i3 != f3)\r
74         f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y);\r
75 \r
76     gl_FragColor = \r
77         b || \r
78         b2.x ||\r
79         b2.y ||\r
80         b3.x ||\r
81         b3.y ||\r
82         b3.z ||\r
83         b4.x ||\r
84         b4.y ||\r
85         b4.z ||\r
86         b4.w ? vec4(\r
87         i  +\r
88         i2.x +\r
89         i2.y +\r
90         i3.x +\r
91         i3.y +\r
92         i3.z +\r
93         i4.x +\r
94         i4.y +\r
95         i4.z +\r
96         i4.w +\r
97         f  +\r
98         f2.x +\r
99         f2.y +\r
100         f3.x +\r
101         f3.y +\r
102         f3.z +\r
103         f4.x +\r
104         f4.y +\r
105         f4.z +\r
106         f4.w) : vec4(1.0);\r
107 \r
108     // with constants...\r
109     ivec4 cv2 = ivec4(1.0);\r
110     bvec4 cv5 = bvec4(cv2);\r
111     gl_FragColor += float(cv5);\r
112 }\r