Merge pull request #2976 from jeremy-lunarg/hayes-fix-2975
[platform/upstream/glslang.git] / Test / spv.bitCast.frag
1 #version 450\r
2 \r
3 flat in int   i1;\r
4 flat in ivec2 i2;\r
5 flat in ivec3 i3;\r
6 flat in ivec4 i4;\r
7 \r
8 flat in uint  u1;\r
9 flat in uvec2 u2;\r
10 flat in uvec3 u3;\r
11 flat in uvec4 u4;\r
12 \r
13 in float f1;\r
14 in vec2  f2;\r
15 in vec3  f3;\r
16 in vec4  f4;\r
17 \r
18 out vec4 fragColor;\r
19 \r
20 void main()\r
21 {\r
22         ivec4 idata = ivec4(0);\r
23         idata.x     += floatBitsToInt(f1);\r
24         idata.xy    += floatBitsToInt(f2);\r
25         idata.xyz   += floatBitsToInt(f3);\r
26         idata       += floatBitsToInt(f4);\r
27 \r
28         uvec4 udata = uvec4(0);\r
29         udata.x     += floatBitsToUint(f1);\r
30         udata.xy    += floatBitsToUint(f2);\r
31         udata.xyz   += floatBitsToUint(f3);\r
32         udata       += floatBitsToUint(f4);\r
33 \r
34         vec4 fdata = vec4(0.0);\r
35         fdata.x     += intBitsToFloat(i1);\r
36         fdata.xy    += intBitsToFloat(i2);\r
37         fdata.xyz   += intBitsToFloat(i3);\r
38         fdata       += intBitsToFloat(i4);\r
39     fdata.x     += uintBitsToFloat(u1);\r
40         fdata.xy    += uintBitsToFloat(u2);\r
41         fdata.xyz   += uintBitsToFloat(u3);\r
42         fdata       += uintBitsToFloat(u4);\r
43 \r
44     fragColor = (idata == udata) ? fdata : fdata + vec4(0.2);\r
45 }