4 GL_EXT_shader_integer_mix
7 #extension GL_EXT_shader_integer_mix: require
9 // { A, B, absoluteDifference(A, B) }
10 uniform uvec3 data[40];
12 in vec4 piglit_vertex;
15 uint abs_diff(uint a, uint b)
17 /* This can fail if the compiler replaces the (a < b) with the result of
18 * one of the subtractions. For inputs a = 0x80000000, b = 4,
19 * int(0x80000000) < 4, but int(0x80000000)-4 overflows and results in
20 * 0x7ffffffc. That's not less than zero, so the flags get set
21 * differently than for (a < b).
23 return mix(a - b, b - a, a < b);
28 color = vec4(0.0, 1.0, 0.0, 1.0);
30 for (int i = 0; i < data.length(); i++) {
33 if (abs_diff(v.x, v.y) != uint(v.z))
34 color = vec4(1.0, 0.0, 0.0, 1.0);
37 gl_Position = piglit_vertex;
43 out vec4 piglit_fragcolor;
47 piglit_fragcolor = color;
51 uniform uvec3 data[0] 0x80000000 0x80000000 0x00000000
52 uniform uvec3 data[1] 0x80000000 0x80000001 0x00000001
53 uniform uvec3 data[2] 0x80000000 0xf8000000 0x78000000
54 uniform uvec3 data[3] 0x80000000 0xf8000001 0x78000001
55 uniform uvec3 data[4] 0x80000000 0xff800000 0x7f800000
56 uniform uvec3 data[5] 0x80000000 0xff800001 0x7f800001
57 uniform uvec3 data[6] 0x80000000 0xfff80000 0x7ff80000
58 uniform uvec3 data[7] 0x80000000 0xfff80001 0x7ff80001
59 uniform uvec3 data[8] 0x80000000 0xffff8000 0x7fff8000
60 uniform uvec3 data[9] 0x80000000 0xffff8001 0x7fff8001
61 uniform uvec3 data[10] 0x80000000 0xfffff800 0x7ffff800
62 uniform uvec3 data[11] 0x80000000 0xfffff801 0x7ffff801
63 uniform uvec3 data[12] 0x80000000 0xffffff80 0x7fffff80
64 uniform uvec3 data[13] 0x80000000 0xffffff81 0x7fffff81
65 uniform uvec3 data[14] 0x80000000 0xfffffff8 0x7ffffff8
66 uniform uvec3 data[15] 0x80000000 0xfffffff9 0x7ffffff9
67 uniform uvec3 data[16] 0x80000000 0xfffffffa 0x7ffffffa
68 uniform uvec3 data[17] 0x80000000 0xfffffffb 0x7ffffffb
69 uniform uvec3 data[18] 0x80000000 0xfffffffc 0x7ffffffc
70 uniform uvec3 data[19] 0x80000000 0xfffffffd 0x7ffffffd
71 uniform uvec3 data[20] 0x80000000 0xfffffffe 0x7ffffffe
72 uniform uvec3 data[21] 0x80000000 0xffffffff 0x7fffffff
73 uniform uvec3 data[22] 0x80000000 0x00000000 0x80000000
74 uniform uvec3 data[23] 0x80000000 0x00000001 0x7fffffff
75 uniform uvec3 data[24] 0x80000000 0x00000002 0x7ffffffe
76 uniform uvec3 data[25] 0x80000000 0x00000003 0x7ffffffd
77 uniform uvec3 data[26] 0x80000000 0x00000004 0x7ffffffc
78 uniform uvec3 data[27] 0x80000000 0x00000005 0x7ffffffb
79 uniform uvec3 data[28] 0x80000000 0x00000006 0x7ffffffa
80 uniform uvec3 data[29] 0x80000000 0x00000007 0x7ffffff9
81 uniform uvec3 data[30] 0x80000000 0x00000008 0x7ffffff8
82 uniform uvec3 data[31] 0x80000000 0x0000007f 0x7fffff81
83 uniform uvec3 data[32] 0x80000000 0x00000080 0x7fffff80
84 uniform uvec3 data[33] 0x80000000 0x000007ff 0x7ffff801
85 uniform uvec3 data[34] 0x80000000 0x00000800 0x7ffff800
86 uniform uvec3 data[35] 0x80000000 0x00007fff 0x7fff8001
87 uniform uvec3 data[36] 0x80000000 0x00008000 0x7fff8000
88 uniform uvec3 data[37] 0x80000000 0x0007ffff 0x7ff80001
89 uniform uvec3 data[38] 0x80000000 0x00080000 0x7ff80000
90 uniform uvec3 data[39] 0x80000000 0x007fffff 0x7f800001
93 probe all rgb 0.0 1.0 0.0