1 /*
2 * Copyright © 2013 Soeren Sandmann
3 * Copyright © 2013 Red Hat, Inc.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
14 * Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 */
24 #include <stdio.h>
25 #include <stdlib.h> /* abort() */
26 #include <math.h>
27 #include <time.h>
28 #include "utils.h"
29
30 typedef struct pixel_combination_t pixel_combination_t;
31 struct pixel_combination_t
32 {
33 pixman_op_t op;
34 pixman_format_code_t src_format;
35 uint32_t src_pixel;
36 pixman_format_code_t mask_format;
37 uint32_t mask_pixel;
38 pixman_format_code_t dest_format;
39 uint32_t dest_pixel;
40 };
41
42 static const pixel_combination_t regressions[] =
43 {
44 { PIXMAN_OP_DISJOINT_ATOP,
45 PIXMAN_a8r8g8b8, 0x1ffc3ff,
46 PIXMAN_a8, 0x7b,
47 PIXMAN_a8r8g8b8, 0xff00c300,
48 },
49 { PIXMAN_OP_SOFT_LIGHT,
50 PIXMAN_a2r2g2b2, 0xb5,
51 PIXMAN_a4r4g4b4, 0xe3ff,
52 PIXMAN_a2r2g2b2, 0x2e
53 },
54 { PIXMAN_OP_SOFT_LIGHT,
55 PIXMAN_a2r2g2b2, 0xa6,
56 PIXMAN_a8r8g8b8, 0x2b00ff00,
57 PIXMAN_a4r4g4b4, 0x7e
58 },
59 { PIXMAN_OP_SOFT_LIGHT,
60 PIXMAN_a8r8g8b8, 0x27000013,
61 PIXMAN_a2r2g2b2, 0x80,
62 PIXMAN_a4r4g4b4, 0x9d
63 },
64 { PIXMAN_OP_SOFT_LIGHT,
65 PIXMAN_a4r4g4b4, 0xe6f7,
66 PIXMAN_a2r2g2b2, 0xad,
67 PIXMAN_a4r4g4b4, 0x71
68 },
69 { PIXMAN_OP_SOFT_LIGHT,
70 PIXMAN_a8r8g8b8, 0xff4f70ff,
71 PIXMAN_r5g6b5, 0xb828,
72 PIXMAN_a8r8g8b8, 0xcac400
73 },
74 { PIXMAN_OP_SOFT_LIGHT,
75 PIXMAN_a2r2g2b2, 0xa9,
76 PIXMAN_a4r4g4b4, 0x41c2,
77 PIXMAN_a8r8g8b8, 0xffff2b
78 },
79 { PIXMAN_OP_SOFT_LIGHT,
80 PIXMAN_a2r2g2b2, 0x89,
81 PIXMAN_a8r8g8b8, 0x977cff61,
82 PIXMAN_a4r4g4b4, 0x36
83 },
84 { PIXMAN_OP_SOFT_LIGHT,
85 PIXMAN_a2r2g2b2, 0x81,
86 PIXMAN_r5g6b5, 0x6f9e,
87 PIXMAN_a4r4g4b4, 0x1eb
88 },
89 { PIXMAN_OP_SOFT_LIGHT,
90 PIXMAN_a2r2g2b2, 0xb5,
91 PIXMAN_a4r4g4b4, 0xe247,
92 PIXMAN_a8r8g8b8, 0xffbaff
93 },
94 { PIXMAN_OP_SOFT_LIGHT,
95 PIXMAN_a2r2g2b2, 0x97,
96 PIXMAN_a2r2g2b2, 0x9d,
97 PIXMAN_a2r2g2b2, 0x21
98 },
99 { PIXMAN_OP_SOFT_LIGHT,
100 PIXMAN_a2r2g2b2, 0xb4,
101 PIXMAN_a2r2g2b2, 0x90,
102 PIXMAN_a8r8g8b8, 0xc0fd5c
103 },
104 { PIXMAN_OP_SOFT_LIGHT,
105 PIXMAN_a8r8g8b8, 0xdf00ff70,
106 PIXMAN_a8r8g8b8, 0x2597ff27,
107 PIXMAN_a4r4g4b4, 0xf3
108 },
109 { PIXMAN_OP_SOFT_LIGHT,
110 PIXMAN_a2r2g2b2, 0xb7,
111 PIXMAN_r3g3b2, 0xb1,
112 PIXMAN_a8r8g8b8, 0x9f4bcc
113 },
114 { PIXMAN_OP_SOFT_LIGHT,
115 PIXMAN_a4r4g4b4, 0xf39e,
116 PIXMAN_r5g6b5, 0x34,
117 PIXMAN_a8r8g8b8, 0xf6ae00
118 },
119 { PIXMAN_OP_SOFT_LIGHT,
120 PIXMAN_a8r8g8b8, 0x3aff1dff,
121 PIXMAN_a2r2g2b2, 0x64,
122 PIXMAN_a8r8g8b8, 0x94ffb4
123 },
124 { PIXMAN_OP_SOFT_LIGHT,
125 PIXMAN_a2r2g2b2, 0xa4,
126 PIXMAN_a2r2g2b2, 0x8a,
127 PIXMAN_a4r4g4b4, 0xff
128 },
129 { PIXMAN_OP_SOFT_LIGHT,
130 PIXMAN_a2r2g2b2, 0xa5,
131 PIXMAN_a4r4g4b4, 0x1a,
132 PIXMAN_a4r4g4b4, 0xff
133 },
134 { PIXMAN_OP_SOFT_LIGHT,
135 PIXMAN_a2r2g2b2, 0xb4,
136 PIXMAN_a2r2g2b2, 0xca,
137 PIXMAN_a4r4g4b4, 0x7b
138 },
139 { PIXMAN_OP_SOFT_LIGHT,
140 PIXMAN_a2r2g2b2, 0xbd,
141 PIXMAN_a4r4g4b4, 0xff37,
142 PIXMAN_a4r4g4b4, 0xff
143 },
144 { PIXMAN_OP_SOFT_LIGHT,
145 PIXMAN_a2r2g2b2, 0x96,
146 PIXMAN_a2r2g2b2, 0xbb,
147 PIXMAN_a8r8g8b8, 0x96ffff
148 },
149 { PIXMAN_OP_SOFT_LIGHT,
150 PIXMAN_a2r2g2b2, 0x89,
151 PIXMAN_r3g3b2, 0x92,
152 PIXMAN_a4r4g4b4, 0xa8c
153 },
154 { PIXMAN_OP_SOFT_LIGHT,
155 PIXMAN_a4r4g4b4, 0xa95b,
156 PIXMAN_a2r2g2b2, 0x68,
157 PIXMAN_a8r8g8b8, 0x38ff
158 },
159 { PIXMAN_OP_SOFT_LIGHT,
160 PIXMAN_a2r2g2b2, 0x90,
161 PIXMAN_a8r8g8b8, 0x53bd00ef,
162 PIXMAN_a8r8g8b8, 0xff0003
163 },
164 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
165 PIXMAN_a8r8g8b8, 0x1f5ffff,
166 PIXMAN_r3g3b2, 0x22,
167 PIXMAN_r5g6b5, 0x2000
168 },
169 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
170 PIXMAN_a8r8g8b8, 0x10000b6,
171 PIXMAN_a8r8g8b8, 0x9645,
172 PIXMAN_r5g6b5, 0x6
173 },
174 { PIXMAN_OP_SATURATE,
175 PIXMAN_a8r8g8b8, 0x172ff00,
176 PIXMAN_a4r4g4b4, 0xff61,
177 PIXMAN_r3g3b2, 0xc
178 },
179 { PIXMAN_OP_DISJOINT_ATOP,
180 PIXMAN_a8r8g8b8, 0x281ffc8,
181 PIXMAN_r5g6b5, 0x39b8,
182 PIXMAN_r5g6b5, 0x13
183 },
184 { PIXMAN_OP_CONJOINT_IN,
185 PIXMAN_a8r8g8b8, 0x100a2ff,
186 PIXMAN_a4r4g4b4, 0x6500,
187 PIXMAN_a2r2g2b2, 0x5
188 },
189 { PIXMAN_OP_CONJOINT_IN,
190 PIXMAN_a8r8g8b8, 0x1ffff51,
191 PIXMAN_r5g6b5, 0x52ff,
192 PIXMAN_a2r2g2b2, 0x14
193 },
194 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
195 PIXMAN_a8r8g8b8, 0x150d500,
196 PIXMAN_a8r8g8b8, 0x6200b7ff,
197 PIXMAN_a8r8g8b8, 0x1f5200
198 },
199 { PIXMAN_OP_DISJOINT_OUT,
200 PIXMAN_a8r8g8b8, 0x2a9a700,
201 PIXMAN_a8r8g8b8, 0xf7003400,
202 PIXMAN_a8r8g8b8, 0x2200
203 },
204 { PIXMAN_OP_DISJOINT_IN,
205 PIXMAN_a8r8g8b8, 0x200ffff,
206 PIXMAN_r5g6b5, 0x81ff,
207 PIXMAN_r5g6b5, 0x1f
208 },
209 { PIXMAN_OP_DISJOINT_OUT,
210 PIXMAN_a8r8g8b8, 0x2ff00ff,
211 PIXMAN_r5g6b5, 0x3f00,
212 PIXMAN_r3g3b2, 0x20
213 },
214 { PIXMAN_OP_DISJOINT_OUT,
215 PIXMAN_a8r8g8b8, 0x3ff1aa4,
216 PIXMAN_a4r4g4b4, 0x2200,
217 PIXMAN_r5g6b5, 0x2000
218 },
219 { PIXMAN_OP_DISJOINT_XOR,
220 PIXMAN_a8r8g8b8, 0x280ff2c,
221 PIXMAN_r3g3b2, 0xc6,
222 PIXMAN_a8r8g8b8, 0xfdfd44fe
223 },
224 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
225 PIXMAN_a8r8g8b8, 0x13aff1d,
226 PIXMAN_a2r2g2b2, 0x4b,
227 PIXMAN_r5g6b5, 0x12a1
228 },
229 { PIXMAN_OP_DISJOINT_XOR,
230 PIXMAN_a8r8g8b8, 0x2ffff88,
231 PIXMAN_a8r8g8b8, 0xff3a49,
232 PIXMAN_r5g6b5, 0xf7df
233 },
234 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
235 PIXMAN_a8r8g8b8, 0x1009700,
236 PIXMAN_a2r2g2b2, 0x56,
237 PIXMAN_a8r8g8b8, 0x0
238 },
239 { PIXMAN_OP_DISJOINT_OUT,
240 PIXMAN_a8r8g8b8, 0x1aacbff,
241 PIXMAN_a4r4g4b4, 0x84,
242 PIXMAN_r3g3b2, 0x1
243 },
244 { PIXMAN_OP_DISJOINT_XOR,
245 PIXMAN_a8r8g8b8, 0x100b1ff,
246 PIXMAN_a2r2g2b2, 0xf5,
247 PIXMAN_a8r8g8b8, 0xfea89cff
248 },
249 { PIXMAN_OP_CONJOINT_XOR,
250 PIXMAN_a8r8g8b8, 0x1ff0000,
251 PIXMAN_r5g6b5, 0x6800,
252 PIXMAN_a4r4g4b4, 0x0
253 },
254 { PIXMAN_OP_CONJOINT_XOR,
255 PIXMAN_a8r8g8b8, 0x10064ff,
256 PIXMAN_r3g3b2, 0x61,
257 PIXMAN_a4r4g4b4, 0x0
258 },
259 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
260 PIXMAN_a8r8g8b8, 0x1bb00ff,
261 PIXMAN_r5g6b5, 0x76b5,
262 PIXMAN_a4r4g4b4, 0x500
263 },
264 { PIXMAN_OP_DISJOINT_OUT,
265 PIXMAN_a8r8g8b8, 0x2ffff41,
266 PIXMAN_r5g6b5, 0x7100,
267 PIXMAN_a4r4g4b4, 0x20
268 },
269 { PIXMAN_OP_DISJOINT_XOR,
270 PIXMAN_a8r8g8b8, 0x1ff1231,
271 PIXMAN_a8r8g8b8, 0x381089,
272 PIXMAN_r5g6b5, 0x38a5
273 },
274 { PIXMAN_OP_CONJOINT_IN,
275 PIXMAN_a8r8g8b8, 0x16e5c49,
276 PIXMAN_a8r8g8b8, 0x4dfa3694,
277 PIXMAN_a8r8g8b8, 0x211c16
278 },
279 { PIXMAN_OP_DISJOINT_OUT,
280 PIXMAN_a8r8g8b8, 0x134ff62,
281 PIXMAN_a2r2g2b2, 0x14,
282 PIXMAN_r3g3b2, 0x8
283 },
284 { PIXMAN_OP_CONJOINT_IN,
285 PIXMAN_a8r8g8b8, 0x300ffeb,
286 PIXMAN_r3g3b2, 0xc7,
287 PIXMAN_a4r4g4b4, 0x20
288 },
289 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
290 PIXMAN_a8r8g8b8, 0x3ff8bff,
291 PIXMAN_r3g3b2, 0x3e,
292 PIXMAN_a8r8g8b8, 0x3008baa
293 },
294 { PIXMAN_OP_DISJOINT_OUT,
295 PIXMAN_a8r8g8b8, 0x1ff00ff,
296 PIXMAN_a4r4g4b4, 0x3466,
297 PIXMAN_a4r4g4b4, 0x406
298 },
299 { PIXMAN_OP_DISJOINT_IN,
300 PIXMAN_a8r8g8b8, 0x1ddc027,
301 PIXMAN_a4r4g4b4, 0x7d00,
302 PIXMAN_r5g6b5, 0x0
303 },
304 { PIXMAN_OP_CONJOINT_IN,
305 PIXMAN_a8r8g8b8, 0x2ffff00,
306 PIXMAN_a8r8g8b8, 0xc92cfb52,
307 PIXMAN_a4r4g4b4, 0x200
308 },
309 { PIXMAN_OP_CONJOINT_XOR,
310 PIXMAN_a8r8g8b8, 0x1ff116a,
311 PIXMAN_a4r4g4b4, 0x6000,
312 PIXMAN_a4r4g4b4, 0x0
313 },
314 { PIXMAN_OP_DISJOINT_IN,
315 PIXMAN_a8r8g8b8, 0x1ffffff,
316 PIXMAN_r5g6b5, 0x2f95,
317 PIXMAN_r5g6b5, 0x795
318 },
319 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
320 PIXMAN_a8r8g8b8, 0x2ffff00,
321 PIXMAN_a4r4g4b4, 0x354a,
322 PIXMAN_r5g6b5, 0x3180
323 },
324 { PIXMAN_OP_SATURATE,
325 PIXMAN_a8r8g8b8, 0x1d7ff00,
326 PIXMAN_a4r4g4b4, 0xd6ff,
327 PIXMAN_a8r8g8b8, 0xffff0700
328 },
329 { PIXMAN_OP_DISJOINT_XOR,
330 PIXMAN_a8r8g8b8, 0x1bc5db7,
331 PIXMAN_r5g6b5, 0x944f,
332 PIXMAN_a4r4g4b4, 0xff05
333 },
334 { PIXMAN_OP_SATURATE,
335 PIXMAN_a8r8g8b8, 0x185ffd9,
336 PIXMAN_a2r2g2b2, 0x9c,
337 PIXMAN_r5g6b5, 0x3c07
338 },
339 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
340 PIXMAN_a8r8g8b8, 0x1fa7f61,
341 PIXMAN_a8r8g8b8, 0xff31ff00,
342 PIXMAN_r3g3b2, 0xd2
343 },
344 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
345 PIXMAN_a8r8g8b8, 0x1c4ff00,
346 PIXMAN_r3g3b2, 0xb,
347 PIXMAN_a4r4g4b4, 0x0
348 },
349 { PIXMAN_OP_DISJOINT_OUT,
350 PIXMAN_a8r8g8b8, 0x2ff00ff,
351 PIXMAN_a8r8g8b8, 0x3f3caeda,
352 PIXMAN_r3g3b2, 0x20
353 },
354 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
355 PIXMAN_a8r8g8b8, 0x100ff00,
356 PIXMAN_r5g6b5, 0xff,
357 PIXMAN_r5g6b5, 0xe0
358 },
359 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
360 PIXMAN_a8r8g8b8, 0x1ff68ff,
361 PIXMAN_a4r4g4b4, 0x8046,
362 PIXMAN_r5g6b5, 0xec
363 },
364 { PIXMAN_OP_DISJOINT_OUT,
365 PIXMAN_a8r8g8b8, 0x100ff28,
366 PIXMAN_a8r8g8b8, 0x4c00,
367 PIXMAN_r5g6b5, 0x260
368 },
369 { PIXMAN_OP_CONJOINT_IN,
370 PIXMAN_a8r8g8b8, 0x1ffff00,
371 PIXMAN_a4r4g4b4, 0xd92a,
372 PIXMAN_a8r8g8b8, 0x2200
373 },
374 { PIXMAN_OP_DISJOINT_IN,
375 PIXMAN_a8r8g8b8, 0x100289a,
376 PIXMAN_a8r8g8b8, 0x74ffb8ff,
377 PIXMAN_r5g6b5, 0x0
378 },
379 { PIXMAN_OP_DISJOINT_XOR,
380 PIXMAN_a8r8g8b8, 0x1baff00,
381 PIXMAN_r5g6b5, 0x4e9d,
382 PIXMAN_r5g6b5, 0x3000
383 },
384 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
385 PIXMAN_a8r8g8b8, 0x1fcffad,
386 PIXMAN_r5g6b5, 0x42d7,
387 PIXMAN_a8r8g8b8, 0x1c6ffe5
388 },
389 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
390 PIXMAN_a8r8g8b8, 0x183ff00,
391 PIXMAN_r3g3b2, 0x7e,
392 PIXMAN_a4r4g4b4, 0xff
393 },
394 { PIXMAN_OP_SATURATE,
395 PIXMAN_a8r8g8b8, 0x2ff0076,
396 PIXMAN_a8r8g8b8, 0x2a0000,
397 PIXMAN_r3g3b2, 0x20
398 },
399 { PIXMAN_OP_CONJOINT_OUT,
400 PIXMAN_a8r8g8b8, 0x3d8bbff,
401 PIXMAN_r5g6b5, 0x6900,
402 PIXMAN_a8r8g8b8, 0x35b0000
403 },
404 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
405 PIXMAN_a8r8g8b8, 0x14f00ff,
406 PIXMAN_r5g6b5, 0xd48,
407 PIXMAN_a4r4g4b4, 0x0
408 },
409 { PIXMAN_OP_CONJOINT_IN,
410 PIXMAN_a8r8g8b8, 0x28c72df,
411 PIXMAN_a8r8g8b8, 0xff5cff31,
412 PIXMAN_a4r4g4b4, 0x2
413 },
414 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
415 PIXMAN_a8r8g8b8, 0x2ffffff,
416 PIXMAN_a8r8g8b8, 0xffad8020,
417 PIXMAN_r5g6b5, 0x4
418 },
419 { PIXMAN_OP_DISJOINT_ATOP,
420 PIXMAN_a8r8g8b8, 0x100ff00,
421 PIXMAN_a2r2g2b2, 0x76,
422 PIXMAN_r3g3b2, 0x0
423 },
424 { PIXMAN_OP_CONJOINT_XOR,
425 PIXMAN_a8r8g8b8, 0x1005d00,
426 PIXMAN_r5g6b5, 0x7b04,
427 PIXMAN_a8r8g8b8, 0x1000000
428 },
429 { PIXMAN_OP_CONJOINT_ATOP,
430 PIXMAN_a8r8g8b8, 0x3cdfc3e,
431 PIXMAN_a8r8g8b8, 0x69ec21d3,
432 PIXMAN_a4r4g4b4, 0x20
433 },
434 { PIXMAN_OP_DISJOINT_ATOP,
435 PIXMAN_a8r8g8b8, 0x200ffff,
436 PIXMAN_r5g6b5, 0x30ff,
437 PIXMAN_r5g6b5, 0x60ff
438 },
439 { PIXMAN_OP_DISJOINT_XOR,
440 PIXMAN_a8r8g8b8, 0x532fff4,
441 PIXMAN_r5g6b5, 0xcb,
442 PIXMAN_r5g6b5, 0xd9a1
443 },
444 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
445 PIXMAN_a8r8g8b8, 0x1ffffff,
446 PIXMAN_r3g3b2, 0x5f,
447 PIXMAN_a2r2g2b2, 0x10
448 },
449 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
450 PIXMAN_a8r8g8b8, 0x1ffffff,
451 PIXMAN_a8r8g8b8, 0xffd60052,
452 PIXMAN_r3g3b2, 0x1
453 },
454 { PIXMAN_OP_DISJOINT_XOR,
455 PIXMAN_a8r8g8b8, 0x1ff6491,
456 PIXMAN_a8r8g8b8, 0x1e53ff00,
457 PIXMAN_r5g6b5, 0x1862
458 },
459 { PIXMAN_OP_CONJOINT_IN,
460 PIXMAN_a8r8g8b8, 0x1ffff00,
461 PIXMAN_r3g3b2, 0xc7,
462 PIXMAN_a4r4g4b4, 0x20
463 },
464 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
465 PIXMAN_a8r8g8b8, 0x29d0fff,
466 PIXMAN_a4r4g4b4, 0x25ff,
467 PIXMAN_a8r8g8b8, 0x0
468 },
469 { PIXMAN_OP_DISJOINT_OUT,
470 PIXMAN_a8r8g8b8, 0x141760a,
471 PIXMAN_a4r4g4b4, 0x7ec2,
472 PIXMAN_a4r4g4b4, 0x130
473 },
474 { PIXMAN_OP_DISJOINT_XOR,
475 PIXMAN_a8r8g8b8, 0x1abedff,
476 PIXMAN_a8r8g8b8, 0x75520068,
477 PIXMAN_r3g3b2, 0x87
478 },
479 { PIXMAN_OP_DISJOINT_XOR,
480 PIXMAN_a8r8g8b8, 0x10000ff,
481 PIXMAN_a8r8g8b8, 0xff00e652,
482 PIXMAN_r3g3b2, 0x1
483 },
484 { PIXMAN_OP_CONJOINT_ATOP,
485 PIXMAN_a8r8g8b8, 0x16006075,
486 PIXMAN_r5g6b5, 0xc00,
487 PIXMAN_a8r8g8b8, 0x27f0900
488 },
489 { PIXMAN_OP_DISJOINT_ATOP,
490 PIXMAN_a8r8g8b8, 0x200ff00,
491 PIXMAN_a8r8g8b8, 0xd1b83f57,
492 PIXMAN_a4r4g4b4, 0xff75
493 },
494 { PIXMAN_OP_DISJOINT_OUT,
495 PIXMAN_a8r8g8b8, 0x14000c4,
496 PIXMAN_a4r4g4b4, 0x96,
497 PIXMAN_a2r2g2b2, 0x1
498 },
499 { PIXMAN_OP_DISJOINT_IN,
500 PIXMAN_a8r8g8b8, 0x1ff00d1,
501 PIXMAN_r3g3b2, 0x79,
502 PIXMAN_a2r2g2b2, 0x0
503 },
504 { PIXMAN_OP_CONJOINT_ATOP,
505 PIXMAN_a8r8g8b8, 0x1ff00dc,
506 PIXMAN_a4r4g4b4, 0xc5ff,
507 PIXMAN_a2r2g2b2, 0x10
508 },
509 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
510 PIXMAN_a8r8g8b8, 0x1ffffb2,
511 PIXMAN_a8r8g8b8, 0x4cff5700,
512 PIXMAN_r3g3b2, 0x48
513 },
514 { PIXMAN_OP_CONJOINT_XOR,
515 PIXMAN_a8r8g8b8, 0x1327482,
516 PIXMAN_a8r8g8b8, 0x247ff,
517 PIXMAN_a8r8g8b8, 0x82
518 },
519 { PIXMAN_OP_DISJOINT_XOR,
520 PIXMAN_a8r8g8b8, 0x1d0ff00,
521 PIXMAN_r3g3b2, 0xc9,
522 PIXMAN_r5g6b5, 0x240
523 },
524 { PIXMAN_OP_DISJOINT_XOR,
525 PIXMAN_a8r8g8b8, 0x13d35ff,
526 PIXMAN_a2r2g2b2, 0x6d,
527 PIXMAN_r3g3b2, 0x1
528 },
529 { PIXMAN_OP_DISJOINT_OUT,
530 PIXMAN_a8r8g8b8, 0x1ffc6b2,
531 PIXMAN_a8r8g8b8, 0x5abe8e3c,
532 PIXMAN_r5g6b5, 0x5a27
533 },
534 { PIXMAN_OP_DISJOINT_OUT,
535 PIXMAN_a8r8g8b8, 0x15700ff,
536 PIXMAN_r3g3b2, 0xdd,
537 PIXMAN_a8r8g8b8, 0x55
538 },
539 { PIXMAN_OP_DISJOINT_OUT,
540 PIXMAN_a8r8g8b8, 0x1ff11ff,
541 PIXMAN_r3g3b2, 0x30,
542 PIXMAN_r5g6b5, 0x2000
543 },
544 { PIXMAN_OP_DISJOINT_ATOP,
545 PIXMAN_a8r8g8b8, 0x1ff00ff,
546 PIXMAN_a2r2g2b2, 0x6d,
547 PIXMAN_r3g3b2, 0x0
548 },
549 { PIXMAN_OP_DISJOINT_IN,
550 PIXMAN_a8r8g8b8, 0x1421d5f,
551 PIXMAN_a4r4g4b4, 0xff85,
552 PIXMAN_a8r8g8b8, 0x1420f00
553 },
554 { PIXMAN_OP_DISJOINT_IN,
555 PIXMAN_a8r8g8b8, 0x1d2ffff,
556 PIXMAN_r5g6b5, 0xfc,
557 PIXMAN_r5g6b5, 0x1c
558 },
559 { PIXMAN_OP_CONJOINT_ATOP,
560 PIXMAN_a8r8g8b8, 0x1ffff42,
561 PIXMAN_a4r4g4b4, 0x7100,
562 PIXMAN_a4r4g4b4, 0x771
563 },
564 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
565 PIXMAN_a8r8g8b8, 0x25ae3d4,
566 PIXMAN_a8r8g8b8, 0x39ffc99a,
567 PIXMAN_a8r8g8b8, 0x14332f
568 },
569 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
570 PIXMAN_a8r8g8b8, 0x1ff0643,
571 PIXMAN_a8r8g8b8, 0x4c000000,
572 PIXMAN_r5g6b5, 0x4802
573 },
574 { PIXMAN_OP_DISJOINT_IN,
575 PIXMAN_a8r8g8b8, 0x1966a00,
576 PIXMAN_r3g3b2, 0x46,
577 PIXMAN_r5g6b5, 0x0
578 },
579 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
580 PIXMAN_a8r8g8b8, 0x387ff59,
581 PIXMAN_r5g6b5, 0x512c,
582 PIXMAN_r5g6b5, 0x120
583 },
584 { PIXMAN_OP_CONJOINT_XOR,
585 PIXMAN_a8r8g8b8, 0x1f7ffb0,
586 PIXMAN_r5g6b5, 0x63b8,
587 PIXMAN_a8r8g8b8, 0x1000089
588 },
589 { PIXMAN_OP_DISJOINT_IN,
590 PIXMAN_a8r8g8b8, 0x185841c,
591 PIXMAN_a2r2g2b2, 0x5c,
592 PIXMAN_a8r8g8b8, 0x8400
593 },
594 { PIXMAN_OP_DISJOINT_ATOP,
595 PIXMAN_a8r8g8b8, 0x1ffc3ff,
596 PIXMAN_a8r8g8b8, 0xff7b,
597 PIXMAN_a8r8g8b8, 0xff00c300
598 },
599 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
600 PIXMAN_a8r8g8b8, 0x1ff7500,
601 PIXMAN_a2r2g2b2, 0x47,
602 PIXMAN_a4r4g4b4, 0xff
603 },
604 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
605 PIXMAN_a8r8g8b8, 0x1002361,
606 PIXMAN_a2r2g2b2, 0x7e,
607 PIXMAN_r5g6b5, 0x64
608 },
609 { PIXMAN_OP_SATURATE,
610 PIXMAN_a8r8g8b8, 0x10000b6,
611 PIXMAN_a8r8g8b8, 0x59004463,
612 PIXMAN_a4r4g4b4, 0xffa7
613 },
614 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
615 PIXMAN_a8r8g8b8, 0x1ff5a49,
616 PIXMAN_a8r8g8b8, 0xff3fff2b,
617 PIXMAN_a8r8g8b8, 0x13f000c
618 },
619 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
620 PIXMAN_a8r8g8b8, 0x3ffecfc,
621 PIXMAN_r3g3b2, 0x3c,
622 PIXMAN_r5g6b5, 0x2000
623 },
624 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
625 PIXMAN_a8r8g8b8, 0x1630044,
626 PIXMAN_a2r2g2b2, 0x63,
627 PIXMAN_r3g3b2, 0x20
628 },
629 { PIXMAN_OP_CONJOINT_OUT,
630 PIXMAN_a8r8g8b8, 0x1d2ff58,
631 PIXMAN_a8r8g8b8, 0x8f77ff,
632 PIXMAN_a4r4g4b4, 0x705
633 },
634 { PIXMAN_OP_DISJOINT_OUT,
635 PIXMAN_a8r8g8b8, 0x14dffff,
636 PIXMAN_a2r2g2b2, 0x9a,
637 PIXMAN_a8r8g8b8, 0x1a0000
638 },
639 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
640 PIXMAN_a8r8g8b8, 0x100ff92,
641 PIXMAN_a4r4g4b4, 0x540c,
642 PIXMAN_r5g6b5, 0x2a6
643 },
644 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
645 PIXMAN_a8r8g8b8, 0x1ffffff,
646 PIXMAN_a4r4g4b4, 0xddd5,
647 PIXMAN_a4r4g4b4, 0xdd0
648 },
649 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
650 PIXMAN_a8r8g8b8, 0x1ffffff,
651 PIXMAN_r5g6b5, 0xff8c,
652 PIXMAN_a4r4g4b4, 0xff0
653 },
654 { PIXMAN_OP_DISJOINT_ATOP,
655 PIXMAN_a8r8g8b8, 0x1ffffff,
656 PIXMAN_r3g3b2, 0x66,
657 PIXMAN_r5g6b5, 0x7d1f
658 },
659 { PIXMAN_OP_CONJOINT_ATOP,
660 PIXMAN_a8r8g8b8, 0x1ffff00,
661 PIXMAN_a4r4g4b4, 0xff5b,
662 PIXMAN_a8r8g8b8, 0x5500
663 },
664 { PIXMAN_OP_DISJOINT_XOR,
665 PIXMAN_a8r8g8b8, 0x2ed2dff,
666 PIXMAN_r5g6b5, 0x7ae7,
667 PIXMAN_r3g3b2, 0xce
668 },
669 { PIXMAN_OP_DISJOINT_OUT,
670 PIXMAN_a8r8g8b8, 0x1b13205,
671 PIXMAN_a8r8g8b8, 0x35ffff00,
672 PIXMAN_r5g6b5, 0x2040
673 },
674 { PIXMAN_OP_CONJOINT_IN,
675 PIXMAN_a8r8g8b8, 0x1e60dff,
676 PIXMAN_a4r4g4b4, 0x760f,
677 PIXMAN_a2r2g2b2, 0x11
678 },
679 { PIXMAN_OP_CONJOINT_OUT,
680 PIXMAN_a8r8g8b8, 0x10000ff,
681 PIXMAN_a4r4g4b4, 0x3,
682 PIXMAN_a8r8g8b8, 0x0
683 },
684 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
685 PIXMAN_a8r8g8b8, 0x100ffff,
686 PIXMAN_a8r8g8b8, 0x6600,
687 PIXMAN_a4r4g4b4, 0x0
688 },
689 { PIXMAN_OP_DISJOINT_OUT,
690 PIXMAN_a8r8g8b8, 0x30000fa,
691 PIXMAN_a4r4g4b4, 0x23b7,
692 PIXMAN_a8r8g8b8, 0x21
693 },
694 { PIXMAN_OP_DISJOINT_OUT,
695 PIXMAN_a8r8g8b8, 0x1ffffff,
696 PIXMAN_r3g3b2, 0x60,
697 PIXMAN_r3g3b2, 0x60
698 },
699 { PIXMAN_OP_CONJOINT_OUT,
700 PIXMAN_a8r8g8b8, 0x3b31b30,
701 PIXMAN_r3g3b2, 0x2e,
702 PIXMAN_a8r8g8b8, 0x3000c20
703 },
704 { PIXMAN_OP_DISJOINT_ATOP,
705 PIXMAN_a8r8g8b8, 0x160ffff,
706 PIXMAN_a4r4g4b4, 0xff42,
707 PIXMAN_r3g3b2, 0xed
708 },
709 { PIXMAN_OP_DISJOINT_OUT,
710 PIXMAN_a8r8g8b8, 0x172ffff,
711 PIXMAN_a4r4g4b4, 0x5100,
712 PIXMAN_r3g3b2, 0x29
713 },
714 { PIXMAN_OP_CONJOINT_ATOP,
715 PIXMAN_a8r8g8b8, 0x16300ff,
716 PIXMAN_a4r4g4b4, 0x5007,
717 PIXMAN_a8r8g8b8, 0x77
718 },
719 { PIXMAN_OP_CONJOINT_IN,
720 PIXMAN_a8r8g8b8, 0x2ffff3a,
721 PIXMAN_a8r8g8b8, 0x26640083,
722 PIXMAN_a4r4g4b4, 0x220
723 },
724 { PIXMAN_OP_DISJOINT_IN,
725 PIXMAN_a8r8g8b8, 0x106ff60,
726 PIXMAN_r5g6b5, 0xdce,
727 PIXMAN_a8r8g8b8, 0x100ba00
728 },
729 { PIXMAN_OP_DISJOINT_IN,
730 PIXMAN_a8r8g8b8, 0x100e7ff,
731 PIXMAN_r5g6b5, 0xa00,
732 PIXMAN_r5g6b5, 0x0
733 },
734 { PIXMAN_OP_CONJOINT_XOR,
735 PIXMAN_a8r8g8b8, 0x2b500f1,
736 PIXMAN_a4r4g4b4, 0x7339,
737 PIXMAN_a8r8g8b8, 0x1000091
738 },
739 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
740 PIXMAN_a8r8g8b8, 0x1ff00ff,
741 PIXMAN_a4r4g4b4, 0xc863,
742 PIXMAN_r5g6b5, 0x6
743 },
744 { PIXMAN_OP_SATURATE,
745 PIXMAN_a8r8g8b8, 0x1ffffca,
746 PIXMAN_a8r8g8b8, 0x8b4cf000,
747 PIXMAN_r3g3b2, 0xd2
748 },
749 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
750 PIXMAN_a8r8g8b8, 0x1fffe00,
751 PIXMAN_r3g3b2, 0x88,
752 PIXMAN_r3g3b2, 0x8
753 },
754 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
755 PIXMAN_a8r8g8b8, 0x16f0000,
756 PIXMAN_a2r2g2b2, 0x59,
757 PIXMAN_r5g6b5, 0x2000
758 },
759 { PIXMAN_OP_CONJOINT_OUT,
760 PIXMAN_a8r8g8b8, 0x377ff43,
761 PIXMAN_a4r4g4b4, 0x2a,
762 PIXMAN_a8r8g8b8, 0x2d
763 },
764 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
765 PIXMAN_a8r8g8b8, 0x11dffff,
766 PIXMAN_r3g3b2, 0xcb,
767 PIXMAN_r3g3b2, 0x8
768 },
769 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
770 PIXMAN_a8r8g8b8, 0x1ffffff,
771 PIXMAN_r5g6b5, 0xbdab,
772 PIXMAN_a4r4g4b4, 0xbb0
773 },
774 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
775 PIXMAN_a8r8g8b8, 0x1ff3343,
776 PIXMAN_a8r8g8b8, 0x7a00ffff,
777 PIXMAN_a2r2g2b2, 0xd
778 },
779 { PIXMAN_OP_DISJOINT_XOR,
780 PIXMAN_a8r8g8b8, 0x1ebff4b,
781 PIXMAN_r3g3b2, 0x26,
782 PIXMAN_r3g3b2, 0x24
783 },
784 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
785 PIXMAN_a8r8g8b8, 0x2c1b3ff,
786 PIXMAN_a8r8g8b8, 0x3000152a,
787 PIXMAN_r3g3b2, 0x24
788 },
789 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
790 PIXMAN_a8r8g8b8, 0x1a7ffff,
791 PIXMAN_r3g3b2, 0x9,
792 PIXMAN_r5g6b5, 0x24a
793 },
794 { PIXMAN_OP_DISJOINT_IN,
795 PIXMAN_a8r8g8b8, 0x4ff00ec,
796 PIXMAN_a8r8g8b8, 0x1da4961e,
797 PIXMAN_a8r8g8b8, 0x0
798 },
799 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
800 PIXMAN_a8r8g8b8, 0x1ff25ff,
801 PIXMAN_a8r8g8b8, 0x64b0ff00,
802 PIXMAN_r5g6b5, 0x606c
803 },
804 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
805 PIXMAN_a8r8g8b8, 0x1fd62ff,
806 PIXMAN_a4r4g4b4, 0x76b1,
807 PIXMAN_r5g6b5, 0x716e
808 },
809 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
810 PIXMAN_a8r8g8b8, 0x194ffde,
811 PIXMAN_r5g6b5, 0x47ff,
812 PIXMAN_r5g6b5, 0x2000
813 },
814 { PIXMAN_OP_DISJOINT_XOR,
815 PIXMAN_a8r8g8b8, 0x108ffff,
816 PIXMAN_a8r8g8b8, 0xffffff66,
817 PIXMAN_r5g6b5, 0xff0c
818 },
819 { PIXMAN_OP_DISJOINT_XOR,
820 PIXMAN_a8r8g8b8, 0x5ffffff,
821 PIXMAN_r5g6b5, 0xdf,
822 PIXMAN_r5g6b5, 0xc0
823 },
824 { PIXMAN_OP_CONJOINT_IN,
825 PIXMAN_a8r8g8b8, 0x100ad31,
826 PIXMAN_a2r2g2b2, 0xc5,
827 PIXMAN_a4r4g4b4, 0x31
828 },
829 { PIXMAN_OP_DISJOINT_IN,
830 PIXMAN_a8r8g8b8, 0x1ffff34,
831 PIXMAN_a8r8g8b8, 0x6a57c491,
832 PIXMAN_r3g3b2, 0x0
833 },
834 { PIXMAN_OP_DISJOINT_IN,
835 PIXMAN_a8r8g8b8, 0x1fffff1,
836 PIXMAN_r3g3b2, 0xaf,
837 PIXMAN_r5g6b5, 0xb01e
838 },
839 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
840 PIXMAN_a8r8g8b8, 0x1ff67ff,
841 PIXMAN_a4r4g4b4, 0x50ff,
842 PIXMAN_a8r8g8b8, 0x552255
843 },
844 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
845 PIXMAN_a8r8g8b8, 0x11bffff,
846 PIXMAN_r5g6b5, 0xef0c,
847 PIXMAN_r5g6b5, 0xc
848 },
849 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
850 PIXMAN_a8r8g8b8, 0x16cf37d,
851 PIXMAN_a4r4g4b4, 0xc561,
852 PIXMAN_r5g6b5, 0x2301
853 },
854 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
855 PIXMAN_a8r8g8b8, 0x2ffff9c,
856 PIXMAN_a4r4g4b4, 0x2700,
857 PIXMAN_a8r8g8b8, 0xffff
858 },
859 { PIXMAN_OP_DISJOINT_IN,
860 PIXMAN_a8r8g8b8, 0x200f322,
861 PIXMAN_a8r8g8b8, 0xff3c7e,
862 PIXMAN_r5g6b5, 0x2
863 },
864 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
865 PIXMAN_a8r8g8b8, 0x1f14a33,
866 PIXMAN_a8r8g8b8, 0x26cff79,
867 PIXMAN_r3g3b2, 0xf9
868 },
869 { PIXMAN_OP_CONJOINT_ATOP,
870 PIXMAN_a8r8g8b8, 0x11d922c,
871 PIXMAN_r3g3b2, 0xab,
872 PIXMAN_a4r4g4b4, 0x20
873 },
874 { PIXMAN_OP_DISJOINT_OUT,
875 PIXMAN_a8r8g8b8, 0x100ffff,
876 PIXMAN_a2r2g2b2, 0xf5,
877 PIXMAN_r3g3b2, 0x9
878 },
879 { PIXMAN_OP_DISJOINT_XOR,
880 PIXMAN_a8r8g8b8, 0x18697ff,
881 PIXMAN_a4r4g4b4, 0x5700,
882 PIXMAN_r5g6b5, 0xfa6d
883 },
884 { PIXMAN_OP_CONJOINT_IN,
885 PIXMAN_a8r8g8b8, 0x12000fc,
886 PIXMAN_a2r2g2b2, 0x41,
887 PIXMAN_a8r8g8b8, 0xb0054
888 },
889 { PIXMAN_OP_DISJOINT_XOR,
890 PIXMAN_a8r8g8b8, 0x100ccff,
891 PIXMAN_a4r4g4b4, 0x657e,
892 PIXMAN_r5g6b5, 0x3b1
893 },
894 { PIXMAN_OP_DISJOINT_OUT,
895 PIXMAN_a8r8g8b8, 0x1ffff1f,
896 PIXMAN_a2r2g2b2, 0xa6,
897 PIXMAN_r5g6b5, 0x2a0
898 },
899 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
900 PIXMAN_a8r8g8b8, 0x11fff82,
901 PIXMAN_a4r4g4b4, 0xff94,
902 PIXMAN_a8r8g8b8, 0x1010123
903 },
904 { PIXMAN_OP_CONJOINT_XOR,
905 PIXMAN_a8r8g8b8, 0x154bd19,
906 PIXMAN_a4r4g4b4, 0xb600,
907 PIXMAN_a8r8g8b8, 0x1000000
908 },
909 { PIXMAN_OP_DISJOINT_IN,
910 PIXMAN_a8r8g8b8, 0x10000ff,
911 PIXMAN_r5g6b5, 0x8e,
912 PIXMAN_r5g6b5, 0x0
913 },
914 { PIXMAN_OP_DISJOINT_ATOP,
915 PIXMAN_a8r8g8b8, 0x21aff00,
916 PIXMAN_r5g6b5, 0x71ff,
917 PIXMAN_r3g3b2, 0xf2
918 },
919 { PIXMAN_OP_DISJOINT_OUT,
920 PIXMAN_a8r8g8b8, 0x2ad00a7,
921 PIXMAN_a4r4g4b4, 0x23,
922 PIXMAN_a8r8g8b8, 0x21
923 },
924 { PIXMAN_OP_SATURATE,
925 PIXMAN_a8r8g8b8, 0x100ff00,
926 PIXMAN_r5g6b5, 0xb343,
927 PIXMAN_r3g3b2, 0xc
928 },
929 { PIXMAN_OP_SATURATE,
930 PIXMAN_a8r8g8b8, 0x3ffa500,
931 PIXMAN_a8r8g8b8, 0x1af5b4,
932 PIXMAN_a8r8g8b8, 0xff1abc00
933 },
934 { PIXMAN_OP_CONJOINT_OUT,
935 PIXMAN_a8r8g8b8, 0x2ffff11,
936 PIXMAN_a8r8g8b8, 0x9f334f,
937 PIXMAN_a8r8g8b8, 0x9f0005
938 },
939 { PIXMAN_OP_CONJOINT_IN,
940 PIXMAN_a8r8g8b8, 0x2c75971,
941 PIXMAN_a4r4g4b4, 0x3900,
942 PIXMAN_a4r4g4b4, 0x211
943 },
944 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
945 PIXMAN_a8r8g8b8, 0x100ff49,
946 PIXMAN_a8r8g8b8, 0x813dc25e,
947 PIXMAN_r5g6b5, 0x667d
948 },
949 { PIXMAN_OP_DISJOINT_IN,
950 PIXMAN_a8r8g8b8, 0x10000ff,
951 PIXMAN_a4r4g4b4, 0x4bff,
952 PIXMAN_a8r8g8b8, 0x0
953 },
954 { PIXMAN_OP_DISJOINT_XOR,
955 PIXMAN_a8r8g8b8, 0x20ebcff,
956 PIXMAN_r5g6b5, 0xc9ff,
957 PIXMAN_r3g3b2, 0x4
958 },
959 { PIXMAN_OP_DISJOINT_XOR,
960 PIXMAN_a8r8g8b8, 0x1ffff00,
961 PIXMAN_r5g6b5, 0x51ff,
962 PIXMAN_r3g3b2, 0x44
963 },
964 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
965 PIXMAN_a8r8g8b8, 0x1ffd158,
966 PIXMAN_a8r8g8b8, 0x7d88ffce,
967 PIXMAN_r3g3b2, 0x6c
968 },
969 { PIXMAN_OP_SATURATE,
970 PIXMAN_a8r8g8b8, 0x1425e21,
971 PIXMAN_a2r2g2b2, 0xa5,
972 PIXMAN_r5g6b5, 0xe1
973 },
974 { PIXMAN_OP_DISJOINT_OUT,
975 PIXMAN_a8r8g8b8, 0x14b00ff,
976 PIXMAN_a8r8g8b8, 0xbe95004b,
977 PIXMAN_r5g6b5, 0x9
978 },
979 { PIXMAN_OP_CONJOINT_OUT,
980 PIXMAN_a8r8g8b8, 0x14fc0cd,
981 PIXMAN_a8r8g8b8, 0x2d12b78b,
982 PIXMAN_a8r8g8b8, 0x0
983 },
984 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
985 PIXMAN_a8r8g8b8, 0x1ff8230,
986 PIXMAN_a2r2g2b2, 0x4c,
987 PIXMAN_r3g3b2, 0x44
988 },
989 { PIXMAN_OP_CONJOINT_ATOP,
990 PIXMAN_a8r8g8b8, 0x1ff31ff,
991 PIXMAN_a2r2g2b2, 0x14,
992 PIXMAN_a8r8g8b8, 0x551000
993 },
994 { PIXMAN_OP_CONJOINT_IN,
995 PIXMAN_a8r8g8b8, 0x17800ff,
996 PIXMAN_a4r4g4b4, 0x22,
997 PIXMAN_a8r8g8b8, 0x22
998 },
999 { PIXMAN_OP_SATURATE,
1000 PIXMAN_a8r8g8b8, 0x14500ff,
1001 PIXMAN_a4r4g4b4, 0x6400,
1002 PIXMAN_r5g6b5, 0xff78
1003 },
1004 { PIXMAN_OP_DISJOINT_IN,
1005 PIXMAN_a8r8g8b8, 0x100ff9d,
1006 PIXMAN_r3g3b2, 0xcd,
1007 PIXMAN_r3g3b2, 0x0
1008 },
1009 { PIXMAN_OP_CONJOINT_ATOP,
1010 PIXMAN_a8r8g8b8, 0x3ff00ff,
1011 PIXMAN_a4r4g4b4, 0xf269,
1012 PIXMAN_a4r4g4b4, 0x200
1013 },
1014 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1015 PIXMAN_a8r8g8b8, 0x2ff28b8,
1016 PIXMAN_a4r4g4b4, 0x33ff,
1017 PIXMAN_r5g6b5, 0x3000
1018 },
1019 { PIXMAN_OP_DISJOINT_OUT,
1020 PIXMAN_a8r8g8b8, 0x1006278,
1021 PIXMAN_a8r8g8b8, 0x8a7f18,
1022 PIXMAN_r3g3b2, 0x4
1023 },
1024 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1025 PIXMAN_a8r8g8b8, 0x1ffcb00,
1026 PIXMAN_a4r4g4b4, 0x7900,
1027 PIXMAN_a2r2g2b2, 0x14
1028 },
1029 { PIXMAN_OP_CONJOINT_OUT,
1030 PIXMAN_a8r8g8b8, 0x115ff00,
1031 PIXMAN_a8r8g8b8, 0x508d,
1032 PIXMAN_a4r4g4b4, 0x0
1033 },
1034 { PIXMAN_OP_SATURATE,
1035 PIXMAN_a8r8g8b8, 0x3ff30b5,
1036 PIXMAN_r5g6b5, 0x2e60,
1037 PIXMAN_r3g3b2, 0x20
1038 },
1039 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1040 PIXMAN_a8r8g8b8, 0x182fffb,
1041 PIXMAN_r3g3b2, 0x1,
1042 PIXMAN_a8r8g8b8, 0x1000054
1043 },
1044 { PIXMAN_OP_CONJOINT_ATOP,
1045 PIXMAN_a8r8g8b8, 0x16fff00,
1046 PIXMAN_r5g6b5, 0x7bc0,
1047 PIXMAN_a8r8g8b8, 0x367900
1048 },
1049 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1050 PIXMAN_a8r8g8b8, 0x1d95dd8,
1051 PIXMAN_a4r4g4b4, 0xfff5,
1052 PIXMAN_r5g6b5, 0xff09
1053 },
1054 { PIXMAN_OP_DISJOINT_IN,
1055 PIXMAN_a8r8g8b8, 0x1ff3cdc,
1056 PIXMAN_a8r8g8b8, 0x3bda45ff,
1057 PIXMAN_r3g3b2, 0x0
1058 },
1059 { PIXMAN_OP_DISJOINT_ATOP,
1060 PIXMAN_a8r8g8b8, 0x13900f8,
1061 PIXMAN_a8r8g8b8, 0x7e00ffff,
1062 PIXMAN_a4r4g4b4, 0xff00
1063 },
1064 { PIXMAN_OP_DISJOINT_XOR,
1065 PIXMAN_a8r8g8b8, 0x10ea9ff,
1066 PIXMAN_a8r8g8b8, 0xff34ff22,
1067 PIXMAN_r5g6b5, 0xff52
1068 },
1069 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1070 PIXMAN_a8r8g8b8, 0x2002e99,
1071 PIXMAN_a4r4g4b4, 0x3000,
1072 PIXMAN_r5g6b5, 0x43
1073 },
1074 { PIXMAN_OP_DISJOINT_ATOP,
1075 PIXMAN_a8r8g8b8, 0x100ffff,
1076 PIXMAN_r5g6b5, 0x19ff,
1077 PIXMAN_r3g3b2, 0x3
1078 },
1079 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1080 PIXMAN_a8r8g8b8, 0x1ffff00,
1081 PIXMAN_a8r8g8b8, 0xffff4251,
1082 PIXMAN_a2r2g2b2, 0x4
1083 },
1084 { PIXMAN_OP_CONJOINT_ATOP,
1085 PIXMAN_a8r8g8b8, 0x121c9ff,
1086 PIXMAN_a4r4g4b4, 0xd2,
1087 PIXMAN_a4r4g4b4, 0x2
1088 },
1089 { PIXMAN_OP_CONJOINT_IN,
1090 PIXMAN_a8r8g8b8, 0x100ff4d,
1091 PIXMAN_a2r2g2b2, 0x5e,
1092 PIXMAN_a2r2g2b2, 0x4
1093 },
1094 { PIXMAN_OP_DISJOINT_OUT,
1095 PIXMAN_a8r8g8b8, 0x29ab4ff,
1096 PIXMAN_r3g3b2, 0x47,
1097 PIXMAN_a8r8g8b8, 0x1900
1098 },
1099 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1100 PIXMAN_a8r8g8b8, 0x1ffc1ac,
1101 PIXMAN_a8r8g8b8, 0xee4ed0ac,
1102 PIXMAN_a8r8g8b8, 0x1009d74
1103 },
1104 { PIXMAN_OP_CONJOINT_IN_REVERSE,
1105 PIXMAN_a8r8g8b8, 0x269dffdc,
1106 PIXMAN_a8r8g8b8, 0xff0b00e0,
1107 PIXMAN_a8r8g8b8, 0x2a200ff
1108 },
1109 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1110 PIXMAN_a8r8g8b8, 0x2ffffff,
1111 PIXMAN_a4r4g4b4, 0x3200,
1112 PIXMAN_r3g3b2, 0x24
1113 },
1114 { PIXMAN_OP_DISJOINT_OUT,
1115 PIXMAN_a8r8g8b8, 0x100ffed,
1116 PIXMAN_a8r8g8b8, 0x67004eff,
1117 PIXMAN_a2r2g2b2, 0x5
1118 },
1119 { PIXMAN_OP_DISJOINT_XOR,
1120 PIXMAN_a8r8g8b8, 0x2fffd6a,
1121 PIXMAN_a8r8g8b8, 0xc9003bff,
1122 PIXMAN_r3g3b2, 0x4
1123 },
1124 { PIXMAN_OP_DISJOINT_XOR,
1125 PIXMAN_a8r8g8b8, 0x253ff00,
1126 PIXMAN_r5g6b5, 0xff,
1127 PIXMAN_r5g6b5, 0xe0
1128 },
1129 { PIXMAN_OP_DISJOINT_OUT,
1130 PIXMAN_a8r8g8b8, 0x13600ad,
1131 PIXMAN_r5g6b5, 0x35ae,
1132 PIXMAN_r3g3b2, 0x1
1133 },
1134 { PIXMAN_OP_DISJOINT_IN,
1135 PIXMAN_a8r8g8b8, 0x1ffa8ff,
1136 PIXMAN_a8r8g8b8, 0xff5f00,
1137 PIXMAN_r3g3b2, 0xe0
1138 },
1139 { PIXMAN_OP_DISJOINT_OUT,
1140 PIXMAN_a8r8g8b8, 0x10067ff,
1141 PIXMAN_a4r4g4b4, 0x450d,
1142 PIXMAN_a2r2g2b2, 0x1
1143 },
1144 { PIXMAN_OP_SATURATE,
1145 PIXMAN_a8r8g8b8, 0x1ff01ff,
1146 PIXMAN_r3g3b2, 0x77,
1147 PIXMAN_r5g6b5, 0x6800
1148 },
1149 { PIXMAN_OP_CONJOINT_ATOP,
1150 PIXMAN_a8r8g8b8, 0x11da4ff,
1151 PIXMAN_r5g6b5, 0x83c9,
1152 PIXMAN_a4r4g4b4, 0x44
1153 },
1154 { PIXMAN_OP_DISJOINT_OUT,
1155 PIXMAN_a8r8g8b8, 0x1ffd4ff,
1156 PIXMAN_r3g3b2, 0xaa,
1157 PIXMAN_r3g3b2, 0x4
1158 },
1159 { PIXMAN_OP_CONJOINT_IN,
1160 PIXMAN_a8r8g8b8, 0x1ff0000,
1161 PIXMAN_a8r8g8b8, 0x71002a,
1162 PIXMAN_a4r4g4b4, 0x700
1163 },
1164 { PIXMAN_OP_DISJOINT_OUT,
1165 PIXMAN_a8r8g8b8, 0x1d7ffff,
1166 PIXMAN_r5g6b5, 0x3696,
1167 PIXMAN_a4r4g4b4, 0x200
1168 },
1169 { PIXMAN_OP_CONJOINT_IN,
1170 PIXMAN_a8r8g8b8, 0x1ffffc8,
1171 PIXMAN_r5g6b5, 0xe900,
1172 PIXMAN_a8r8g8b8, 0x2000
1173 },
1174 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1175 PIXMAN_a8r8g8b8, 0x1ff004a,
1176 PIXMAN_r3g3b2, 0x48,
1177 PIXMAN_a8r8g8b8, 0x1000000
1178 },
1179 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1180 PIXMAN_a8r8g8b8, 0x3ffe969,
1181 PIXMAN_r5g6b5, 0xff,
1182 PIXMAN_r5g6b5, 0xc0
1183 },
1184 { PIXMAN_OP_CONJOINT_XOR,
1185 PIXMAN_a8r8g8b8, 0x300ff73,
1186 PIXMAN_r5g6b5, 0xff,
1187 PIXMAN_a8r8g8b8, 0x3000073
1188 },
1189 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1190 PIXMAN_a8r8g8b8, 0x2ff93ff,
1191 PIXMAN_a8r8g8b8, 0x61fc7d2b,
1192 PIXMAN_a4r4g4b4, 0x2
1193 },
1194 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1195 PIXMAN_a8r8g8b8, 0x11bffff,
1196 PIXMAN_a4r4g4b4, 0xffb4,
1197 PIXMAN_r5g6b5, 0x8
1198 },
1199 { PIXMAN_OP_CONJOINT_IN,
1200 PIXMAN_a8r8g8b8, 0x1e9e100,
1201 PIXMAN_a2r2g2b2, 0x56,
1202 PIXMAN_a2r2g2b2, 0x14
1203 },
1204 { PIXMAN_OP_SATURATE,
1205 PIXMAN_a8r8g8b8, 0x3ffb656,
1206 PIXMAN_r3g3b2, 0x4,
1207 PIXMAN_a4r4g4b4, 0xff99
1208 },
1209 { PIXMAN_OP_DISJOINT_IN,
1210 PIXMAN_a8r8g8b8, 0x100ff00,
1211 PIXMAN_r3g3b2, 0x68,
1212 PIXMAN_r3g3b2, 0x0
1213 },
1214 { PIXMAN_OP_SATURATE,
1215 PIXMAN_a8r8g8b8, 0x1006dff,
1216 PIXMAN_a2r2g2b2, 0x5d,
1217 PIXMAN_a8r8g8b8, 0xff00ff55
1218 },
1219 { PIXMAN_OP_CONJOINT_IN,
1220 PIXMAN_a8r8g8b8, 0x11c00cb,
1221 PIXMAN_a2r2g2b2, 0x44,
1222 PIXMAN_a4r4g4b4, 0x4
1223 },
1224 { PIXMAN_OP_CONJOINT_ATOP,
1225 PIXMAN_a8r8g8b8, 0x1d0ff86,
1226 PIXMAN_r3g3b2, 0x5c,
1227 PIXMAN_a8r8g8b8, 0x3c0000
1228 },
1229 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1230 PIXMAN_a8r8g8b8, 0x2f25fff,
1231 PIXMAN_r3g3b2, 0x36,
1232 PIXMAN_a8r8g8b8, 0x2a444aa
1233 },
1234 { PIXMAN_OP_DISJOINT_ATOP,
1235 PIXMAN_a8r8g8b8, 0x134af85,
1236 PIXMAN_r3g3b2, 0x29,
1237 PIXMAN_r5g6b5, 0xf300
1238 },
1239 { PIXMAN_OP_CONJOINT_ATOP,
1240 PIXMAN_a8r8g8b8, 0x13398af,
1241 PIXMAN_r3g3b2, 0xa5,
1242 PIXMAN_a4r4g4b4, 0x13
1243 },
1244 { PIXMAN_OP_DISJOINT_OUT,
1245 PIXMAN_a8r8g8b8, 0x1ff57ff,
1246 PIXMAN_a4r4g4b4, 0x252c,
1247 PIXMAN_r3g3b2, 0x40
1248 },
1249 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1250 PIXMAN_a8r8g8b8, 0x115ffff,
1251 PIXMAN_r5g6b5, 0xffe3,
1252 PIXMAN_r5g6b5, 0x3303
1253 },
1254 { PIXMAN_OP_DISJOINT_OUT,
1255 PIXMAN_a8r8g8b8, 0x1ffff00,
1256 PIXMAN_r5g6b5, 0x6300,
1257 PIXMAN_r3g3b2, 0x6c
1258 },
1259 { PIXMAN_OP_CONJOINT_XOR,
1260 PIXMAN_a8r8g8b8, 0x4ccff9c,
1261 PIXMAN_r5g6b5, 0xcc,
1262 PIXMAN_a8r8g8b8, 0x400003d
1263 },
1264 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1265 PIXMAN_a8r8g8b8, 0x1ffc6dd,
1266 PIXMAN_r5g6b5, 0x9bff,
1267 PIXMAN_r5g6b5, 0x5bff
1268 },
1269 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1270 PIXMAN_a8r8g8b8, 0x14fff95,
1271 PIXMAN_r3g3b2, 0x46,
1272 PIXMAN_a8r8g8b8, 0x1000063
1273 },
1274 { PIXMAN_OP_DISJOINT_OUT,
1275 PIXMAN_a8r8g8b8, 0x1e6b700,
1276 PIXMAN_r5g6b5, 0xc1ff,
1277 PIXMAN_r3g3b2, 0x4
1278 },
1279 { PIXMAN_OP_DISJOINT_OUT,
1280 PIXMAN_a8r8g8b8, 0x1ffff54,
1281 PIXMAN_a8r8g8b8, 0x2e00ff,
1282 PIXMAN_r5g6b5, 0x2800
1283 },
1284 { PIXMAN_OP_DISJOINT_OUT,
1285 PIXMAN_a8r8g8b8, 0x3ffffff,
1286 PIXMAN_r5g6b5, 0xff,
1287 PIXMAN_r5g6b5, 0xe0
1288 },
1289 { PIXMAN_OP_DISJOINT_ATOP,
1290 PIXMAN_a8r8g8b8, 0x1003550,
1291 PIXMAN_r5g6b5, 0xffcc,
1292 PIXMAN_r5g6b5, 0x1e0
1293 },
1294 { PIXMAN_OP_DISJOINT_XOR,
1295 PIXMAN_a8r8g8b8, 0x1ffff74,
1296 PIXMAN_r3g3b2, 0x28,
1297 PIXMAN_a8r8g8b8, 0xfe2f49d7
1298 },
1299 { PIXMAN_OP_DISJOINT_XOR,
1300 PIXMAN_a8r8g8b8, 0x1e35100,
1301 PIXMAN_r3g3b2, 0x57,
1302 PIXMAN_r5g6b5, 0x4000
1303 },
1304 { PIXMAN_OP_DISJOINT_IN,
1305 PIXMAN_a8r8g8b8, 0x268ffa3,
1306 PIXMAN_a4r4g4b4, 0x30,
1307 PIXMAN_a4r4g4b4, 0x0
1308 },
1309 { PIXMAN_OP_DISJOINT_ATOP,
1310 PIXMAN_a8r8g8b8, 0x35700f8,
1311 PIXMAN_r5g6b5, 0xa4,
1312 PIXMAN_r5g6b5, 0x0
1313 },
1314 { PIXMAN_OP_CONJOINT_ATOP,
1315 PIXMAN_a8r8g8b8, 0x3ce1dff,
1316 PIXMAN_r5g6b5, 0x2a5e,
1317 PIXMAN_a8r8g8b8, 0x210000
1318 },
1319 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1320 PIXMAN_a8r8g8b8, 0x494a7ff,
1321 PIXMAN_a8r8g8b8, 0x1bffe400,
1322 PIXMAN_a8r8g8b8, 0x0
1323 },
1324 { PIXMAN_OP_SATURATE,
1325 PIXMAN_a8r8g8b8, 0x10026d9,
1326 PIXMAN_a8r8g8b8, 0xec00621f,
1327 PIXMAN_r5g6b5, 0x63
1328 },
1329 { PIXMAN_OP_CONJOINT_IN,
1330 PIXMAN_a8r8g8b8, 0x100ff99,
1331 PIXMAN_a8r8g8b8, 0xf334ff,
1332 PIXMAN_a4r4g4b4, 0x30
1333 },
1334 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1335 PIXMAN_a8r8g8b8, 0x2ffc200,
1336 PIXMAN_a8r8g8b8, 0x1e0000ff,
1337 PIXMAN_a8r8g8b8, 0x1e1700
1338 },
1339 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1340 PIXMAN_a8r8g8b8, 0x1ff00ff,
1341 PIXMAN_r3g3b2, 0x4b,
1342 PIXMAN_r5g6b5, 0x4818
1343 },
1344 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1345 PIXMAN_a8r8g8b8, 0x2e800ff,
1346 PIXMAN_a4r4g4b4, 0xd3,
1347 PIXMAN_a4r4g4b4, 0xec
1348 },
1349 { PIXMAN_OP_DISJOINT_IN,
1350 PIXMAN_a8r8g8b8, 0x19a001f,
1351 PIXMAN_r3g3b2, 0x76,
1352 PIXMAN_r3g3b2, 0x0
1353 },
1354 { PIXMAN_OP_DISJOINT_OUT,
1355 PIXMAN_a8r8g8b8, 0x1cb00c3,
1356 PIXMAN_a4r4g4b4, 0x5cff,
1357 PIXMAN_r5g6b5, 0x4008
1358 },
1359 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1360 PIXMAN_a8r8g8b8, 0x1ff0000,
1361 PIXMAN_r3g3b2, 0x2a,
1362 PIXMAN_r5g6b5, 0xc5fb
1363 },
1364 { PIXMAN_OP_DISJOINT_ATOP,
1365 PIXMAN_a8r8g8b8, 0x1ffffff,
1366 PIXMAN_a8r8g8b8, 0xea005a88,
1367 PIXMAN_r3g3b2, 0xb3
1368 },
1369 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1370 PIXMAN_a8r8g8b8, 0x100ffea,
1371 PIXMAN_a4r4g4b4, 0x54eb,
1372 PIXMAN_a8r8g8b8, 0x0
1373 },
1374 { PIXMAN_OP_DISJOINT_OUT,
1375 PIXMAN_a8r8g8b8, 0x179ffff,
1376 PIXMAN_r3g3b2, 0xa4,
1377 PIXMAN_a8r8g8b8, 0x2400
1378 },
1379 { PIXMAN_OP_DISJOINT_XOR,
1380 PIXMAN_a8r8g8b8, 0x17ad226,
1381 PIXMAN_r3g3b2, 0xa4,
1382 PIXMAN_r5g6b5, 0xe0
1383 },
1384 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1385 PIXMAN_a8r8g8b8, 0x100ff01,
1386 PIXMAN_a2r2g2b2, 0x25,
1387 PIXMAN_a4r4g4b4, 0x50
1388 },
1389 { PIXMAN_OP_DISJOINT_IN,
1390 PIXMAN_a8r8g8b8, 0x20000ff,
1391 PIXMAN_a8r8g8b8, 0x2b00c127,
1392 PIXMAN_r5g6b5, 0x0
1393 },
1394 { PIXMAN_OP_SATURATE,
1395 PIXMAN_a8r8g8b8, 0x200ff96,
1396 PIXMAN_a4r4g4b4, 0x2300,
1397 PIXMAN_r3g3b2, 0x6
1398 },
1399 { PIXMAN_OP_DISJOINT_XOR,
1400 PIXMAN_a8r8g8b8, 0x200ffff,
1401 PIXMAN_r3g3b2, 0x87,
1402 PIXMAN_r5g6b5, 0x5bc8
1403 },
1404 { PIXMAN_OP_CONJOINT_XOR,
1405 PIXMAN_a8r8g8b8, 0x1fffff2,
1406 PIXMAN_r3g3b2, 0x7e,
1407 PIXMAN_a2r2g2b2, 0xe
1408 },
1409 { PIXMAN_OP_SATURATE,
1410 PIXMAN_a8r8g8b8, 0x1ff8b00,
1411 PIXMAN_a4r4g4b4, 0xd500,
1412 PIXMAN_r3g3b2, 0x40
1413 },
1414 { PIXMAN_OP_CONJOINT_XOR,
1415 PIXMAN_a8r8g8b8, 0x1ffffff,
1416 PIXMAN_a8r8g8b8, 0x1bff38,
1417 PIXMAN_a4r4g4b4, 0xf0
1418 },
1419 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1420 PIXMAN_a8r8g8b8, 0x158ff39,
1421 PIXMAN_a4r4g4b4, 0x75dd,
1422 PIXMAN_a8r8g8b8, 0xdd31
1423 },
1424 { PIXMAN_OP_DISJOINT_XOR,
1425 PIXMAN_a8r8g8b8, 0x1009b70,
1426 PIXMAN_a4r4g4b4, 0xff40,
1427 PIXMAN_r3g3b2, 0x4
1428 },
1429 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1430 PIXMAN_a8r8g8b8, 0x12fb43f,
1431 PIXMAN_a4r4g4b4, 0x69ff,
1432 PIXMAN_a2r2g2b2, 0x4
1433 },
1434 { PIXMAN_OP_DISJOINT_IN,
1435 PIXMAN_a8r8g8b8, 0x1ffff95,
1436 PIXMAN_a2r2g2b2, 0x84,
1437 PIXMAN_r5g6b5, 0x0
1438 },
1439 { PIXMAN_OP_DISJOINT_OUT,
1440 PIXMAN_a8r8g8b8, 0x200d188,
1441 PIXMAN_r5g6b5, 0xde6,
1442 PIXMAN_r5g6b5, 0x3
1443 },
1444 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1445 PIXMAN_a8r8g8b8, 0x2c70000,
1446 PIXMAN_r5g6b5, 0x24fa,
1447 PIXMAN_a8r8g8b8, 0x21a0000
1448 },
1449 { PIXMAN_OP_CONJOINT_OUT,
1450 PIXMAN_a8r8g8b8, 0x100ff24,
1451 PIXMAN_a4r4g4b4, 0x835,
1452 PIXMAN_a4r4g4b4, 0x0
1453 },
1454 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1455 PIXMAN_a8r8g8b8, 0x10000cd,
1456 PIXMAN_a2r2g2b2, 0x7f,
1457 PIXMAN_a2r2g2b2, 0x1
1458 },
1459 { PIXMAN_OP_SATURATE,
1460 PIXMAN_a8r8g8b8, 0x379ffff,
1461 PIXMAN_a8r8g8b8, 0x23ffff00,
1462 PIXMAN_r5g6b5, 0x4eda
1463 },
1464 { PIXMAN_OP_SATURATE,
1465 PIXMAN_a8r8g8b8, 0x172e3ff,
1466 PIXMAN_r3g3b2, 0xa6,
1467 PIXMAN_r5g6b5, 0x100
1468 },
1469 { PIXMAN_OP_DISJOINT_IN,
1470 PIXMAN_a8r8g8b8, 0x100f5ad,
1471 PIXMAN_a4r4g4b4, 0x7908,
1472 PIXMAN_a2r2g2b2, 0x0
1473 },
1474 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1475 PIXMAN_a8r8g8b8, 0x100fff9,
1476 PIXMAN_a2r2g2b2, 0xf1,
1477 PIXMAN_r3g3b2, 0x1
1478 },
1479 { PIXMAN_OP_CONJOINT_XOR,
1480 PIXMAN_a8r8g8b8, 0x1abff00,
1481 PIXMAN_r5g6b5, 0x31ff,
1482 PIXMAN_a8r8g8b8, 0x1000000
1483 },
1484 { PIXMAN_OP_DISJOINT_XOR,
1485 PIXMAN_a8r8g8b8, 0x112ffd1,
1486 PIXMAN_r3g3b2, 0x9,
1487 PIXMAN_a2r2g2b2, 0xdd
1488 },
1489 { PIXMAN_OP_CONJOINT_IN,
1490 PIXMAN_a8r8g8b8, 0x100ffbf,
1491 PIXMAN_r3g3b2, 0x2c,
1492 PIXMAN_a4r4g4b4, 0x60
1493 },
1494 { PIXMAN_OP_DISJOINT_OUT,
1495 PIXMAN_a8r8g8b8, 0x1ffb7ff,
1496 PIXMAN_r3g3b2, 0x6b,
1497 PIXMAN_a4r4g4b4, 0x630
1498 },
1499 { PIXMAN_OP_SATURATE,
1500 PIXMAN_a8r8g8b8, 0x20005ff,
1501 PIXMAN_a4r4g4b4, 0x8462,
1502 PIXMAN_r5g6b5, 0xb1e8
1503 },
1504 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1505 PIXMAN_a8r8g8b8, 0x1ff5b00,
1506 PIXMAN_r5g6b5, 0x70ff,
1507 PIXMAN_r3g3b2, 0x60
1508 },
1509 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1510 PIXMAN_a8r8g8b8, 0x2ffffc3,
1511 PIXMAN_r3g3b2, 0x39,
1512 PIXMAN_a8r8g8b8, 0x200db41
1513 },
1514 { PIXMAN_OP_CONJOINT_OUT,
1515 PIXMAN_a8r8g8b8, 0x306ffff,
1516 PIXMAN_a8r8g8b8, 0xdcffff1f,
1517 PIXMAN_a8r8g8b8, 0x306ff00
1518 },
1519 { PIXMAN_OP_DISJOINT_IN,
1520 PIXMAN_a8r8g8b8, 0x193daff,
1521 PIXMAN_a8r8g8b8, 0x69000000,
1522 PIXMAN_r3g3b2, 0x0
1523 },
1524 { PIXMAN_OP_SATURATE,
1525 PIXMAN_a8r8g8b8, 0x2a200ff,
1526 PIXMAN_a8r8g8b8, 0x183aff00,
1527 PIXMAN_r5g6b5, 0x2000
1528 },
1529 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1530 PIXMAN_a8r8g8b8, 0x100f1a5,
1531 PIXMAN_a8r8g8b8, 0xb5fc21ff,
1532 PIXMAN_r5g6b5, 0xfe00
1533 },
1534 { PIXMAN_OP_SATURATE,
1535 PIXMAN_a8r8g8b8, 0x1630019,
1536 PIXMAN_a8r8g8b8, 0x6affc400,
1537 PIXMAN_r5g6b5, 0x56ff
1538 },
1539 { PIXMAN_OP_DISJOINT_OUT,
1540 PIXMAN_a8r8g8b8, 0x1ff8bc2,
1541 PIXMAN_r3g3b2, 0xee,
1542 PIXMAN_r5g6b5, 0x1c0
1543 },
1544 { PIXMAN_OP_SATURATE,
1545 PIXMAN_a8r8g8b8, 0x260ffff,
1546 PIXMAN_a4r4g4b4, 0x3f00,
1547 PIXMAN_r3g3b2, 0x4
1548 },
1549 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1550 PIXMAN_a8r8g8b8, 0x169ffed,
1551 PIXMAN_a8r8g8b8, 0xffffff3f,
1552 PIXMAN_a8r8g8b8, 0x169ff00
1553 },
1554 { PIXMAN_OP_CONJOINT_XOR,
1555 PIXMAN_a8r8g8b8, 0x154c181,
1556 PIXMAN_a4r4g4b4, 0x5100,
1557 PIXMAN_a4r4g4b4, 0x0
1558 },
1559 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1560 PIXMAN_a8r8g8b8, 0x1e09c00,
1561 PIXMAN_r5g6b5, 0xca00,
1562 PIXMAN_a4r4g4b4, 0xb00
1563 },
1564 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1565 PIXMAN_a8r8g8b8, 0x2ff8dff,
1566 PIXMAN_a8r8g8b8, 0x610038ff,
1567 PIXMAN_a8r8g8b8, 0x1001f02
1568 },
1569 { PIXMAN_OP_SATURATE,
1570 PIXMAN_a8r8g8b8, 0x1e400ff,
1571 PIXMAN_a4r4g4b4, 0x66bd,
1572 PIXMAN_r3g3b2, 0x68
1573 },
1574 { PIXMAN_OP_CONJOINT_IN,
1575 PIXMAN_a8r8g8b8, 0x25362ff,
1576 PIXMAN_a4r4g4b4, 0x31ff,
1577 PIXMAN_a8r8g8b8, 0x111433
1578 },
1579 { PIXMAN_OP_CONJOINT_OUT,
1580 PIXMAN_a8r8g8b8, 0x3ad0039,
1581 PIXMAN_r3g3b2, 0x26,
1582 PIXMAN_a8r8g8b8, 0x3000026
1583 },
1584 { PIXMAN_OP_DISJOINT_OUT,
1585 PIXMAN_a8r8g8b8, 0x2e442ef,
1586 PIXMAN_r3g3b2, 0x32,
1587 PIXMAN_r3g3b2, 0x20
1588 },
1589 { PIXMAN_OP_SATURATE,
1590 PIXMAN_a8r8g8b8, 0x1720000,
1591 PIXMAN_a8r8g8b8, 0x55fdea00,
1592 PIXMAN_r3g3b2, 0x20
1593 },
1594 { PIXMAN_OP_DISJOINT_IN,
1595 PIXMAN_a8r8g8b8, 0x14bb0d7,
1596 PIXMAN_a8r8g8b8, 0x7fffff47,
1597 PIXMAN_a2r2g2b2, 0x0
1598 },
1599 { PIXMAN_OP_DISJOINT_IN,
1600 PIXMAN_a8r8g8b8, 0x13dffff,
1601 PIXMAN_a8r8g8b8, 0xa3860672,
1602 PIXMAN_r3g3b2, 0x20
1603 },
1604 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1605 PIXMAN_a8r8g8b8, 0x120495a,
1606 PIXMAN_a4r4g4b4, 0x407e,
1607 PIXMAN_a8r8g8b8, 0x54
1608 },
1609 { PIXMAN_OP_DISJOINT_OUT,
1610 PIXMAN_a8r8g8b8, 0x1ff8fff,
1611 PIXMAN_a2r2g2b2, 0x29,
1612 PIXMAN_r5g6b5, 0xa
1613 },
1614 { PIXMAN_OP_DISJOINT_IN,
1615 PIXMAN_a8r8g8b8, 0x100a31a,
1616 PIXMAN_a4r4g4b4, 0xde4c,
1617 PIXMAN_a4r4g4b4, 0x1
1618 },
1619 { PIXMAN_OP_CONJOINT_OUT,
1620 PIXMAN_a8r8g8b8, 0x1d4008c,
1621 PIXMAN_r3g3b2, 0x79,
1622 PIXMAN_a8r8g8b8, 0x1000000
1623 },
1624 { PIXMAN_OP_DISJOINT_IN,
1625 PIXMAN_a8r8g8b8, 0x1ff0000,
1626 PIXMAN_a4r4g4b4, 0x7de4,
1627 PIXMAN_r5g6b5, 0x0
1628 },
1629 { PIXMAN_OP_DISJOINT_ATOP,
1630 PIXMAN_a8r8g8b8, 0x1b27e62,
1631 PIXMAN_a4r4g4b4, 0x7941,
1632 PIXMAN_r3g3b2, 0x0
1633 },
1634 { PIXMAN_OP_DISJOINT_OUT,
1635 PIXMAN_a8r8g8b8, 0x300ff00,
1636 PIXMAN_a8r8g8b8, 0xfcff255e,
1637 PIXMAN_r3g3b2, 0x4
1638 },
1639 { PIXMAN_OP_DISJOINT_OUT,
1640 PIXMAN_a8r8g8b8, 0x2ff00b8,
1641 PIXMAN_a8r8g8b8, 0x19ff718d,
1642 PIXMAN_r5g6b5, 0x1802
1643 },
1644 { PIXMAN_OP_DISJOINT_OUT,
1645 PIXMAN_a8r8g8b8, 0x235ff13,
1646 PIXMAN_a8r8g8b8, 0x34bcd9ff,
1647 PIXMAN_r3g3b2, 0x4
1648 },
1649 { PIXMAN_OP_DISJOINT_OUT,
1650 PIXMAN_a8r8g8b8, 0x1006400,
1651 PIXMAN_a4r4g4b4, 0x7000,
1652 PIXMAN_a4r4g4b4, 0x20
1653 },
1654 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1655 PIXMAN_a8r8g8b8, 0x1ff8bff,
1656 PIXMAN_a4r4g4b4, 0xfff4,
1657 PIXMAN_a4r4g4b4, 0xf80
1658 },
1659 { PIXMAN_OP_DISJOINT_OUT,
1660 PIXMAN_a8r8g8b8, 0x24630ff,
1661 PIXMAN_a8r8g8b8, 0x1f00000b,
1662 PIXMAN_a8r8g8b8, 0x9061f
1663 },
1664 { PIXMAN_OP_DISJOINT_OUT,
1665 PIXMAN_a8r8g8b8, 0x1ff8a00,
1666 PIXMAN_a8r8g8b8, 0x79ffab00,
1667 PIXMAN_r5g6b5, 0x7a00
1668 },
1669 { PIXMAN_OP_DISJOINT_ATOP,
1670 PIXMAN_a8r8g8b8, 0x19807ff,
1671 PIXMAN_a4r4g4b4, 0x6794,
1672 PIXMAN_a8r8g8b8, 0xff002e00
1673 },
1674 { PIXMAN_OP_CONJOINT_OUT,
1675 PIXMAN_a8r8g8b8, 0x10000da,
1676 PIXMAN_a4r4g4b4, 0xf864,
1677 PIXMAN_a8r8g8b8, 0x1000000
1678 },
1679 { PIXMAN_OP_DISJOINT_IN,
1680 PIXMAN_a8r8g8b8, 0x1ffffde,
1681 PIXMAN_a2r2g2b2, 0x94,
1682 PIXMAN_a8r8g8b8, 0x1000000
1683 },
1684 { PIXMAN_OP_CONJOINT_ATOP,
1685 PIXMAN_a8r8g8b8, 0x200c800,
1686 PIXMAN_r5g6b5, 0xe9d4,
1687 PIXMAN_a8r8g8b8, 0x2c00
1688 },
1689 { PIXMAN_OP_DISJOINT_OUT,
1690 PIXMAN_a8r8g8b8, 0x1ff00c9,
1691 PIXMAN_r3g3b2, 0x4c,
1692 PIXMAN_r5g6b5, 0x4800
1693 },
1694 { PIXMAN_OP_DISJOINT_OUT,
1695 PIXMAN_a8r8g8b8, 0x122d5ff,
1696 PIXMAN_r5g6b5, 0x418b,
1697 PIXMAN_a4r4g4b4, 0x25
1698 },
1699 { PIXMAN_OP_DISJOINT_IN,
1700 PIXMAN_a8r8g8b8, 0x1ffff55,
1701 PIXMAN_a2r2g2b2, 0x1c,
1702 PIXMAN_a8r8g8b8, 0xff00
1703 },
1704 { PIXMAN_OP_DISJOINT_ATOP,
1705 PIXMAN_a8r8g8b8, 0x135ffff,
1706 PIXMAN_r5g6b5, 0x39c4,
1707 PIXMAN_r5g6b5, 0xb7
1708 },
1709 { PIXMAN_OP_DISJOINT_OUT,
1710 PIXMAN_a8r8g8b8, 0x100d2c3,
1711 PIXMAN_r3g3b2, 0x2a,
1712 PIXMAN_a8r8g8b8, 0x3c00
1713 },
1714 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1715 PIXMAN_a8r8g8b8, 0x17268ff,
1716 PIXMAN_a8r8g8b8, 0x7c00ffff,
1717 PIXMAN_r5g6b5, 0x318f
1718 },
1719 { PIXMAN_OP_DISJOINT_ATOP,
1720 PIXMAN_a8r8g8b8, 0x1ff00ff,
1721 PIXMAN_r3g3b2, 0x68,
1722 PIXMAN_r3g3b2, 0xb4
1723 },
1724 { PIXMAN_OP_CONJOINT_OUT,
1725 PIXMAN_a8r8g8b8, 0x200ffff,
1726 PIXMAN_r5g6b5, 0xff86,
1727 PIXMAN_a8r8g8b8, 0x200f300
1728 },
1729 { PIXMAN_OP_CONJOINT_ATOP,
1730 PIXMAN_a8r8g8b8, 0x18a23ff,
1731 PIXMAN_a2r2g2b2, 0x44,
1732 PIXMAN_a4r4g4b4, 0x205
1733 },
1734 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1735 PIXMAN_a8r8g8b8, 0x16bff23,
1736 PIXMAN_a8r8g8b8, 0x31fd00ff,
1737 PIXMAN_r3g3b2, 0x7
1738 },
1739 { PIXMAN_OP_DISJOINT_IN,
1740 PIXMAN_a8r8g8b8, 0x137d1ff,
1741 PIXMAN_a4r4g4b4, 0x56c1,
1742 PIXMAN_r5g6b5, 0x0
1743 },
1744 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1745 PIXMAN_a8r8g8b8, 0x1ff5bff,
1746 PIXMAN_a4r4g4b4, 0xfff4,
1747 PIXMAN_a4r4g4b4, 0xf50
1748 },
1749 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1750 PIXMAN_a8r8g8b8, 0x15c6b00,
1751 PIXMAN_a8r8g8b8, 0x7d008a,
1752 PIXMAN_a4r4g4b4, 0x200
1753 },
1754 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1755 PIXMAN_a8r8g8b8, 0x12091ff,
1756 PIXMAN_a8r8g8b8, 0xb74cff6b,
1757 PIXMAN_a2r2g2b2, 0x8
1758 },
1759 { PIXMAN_OP_CONJOINT_ATOP,
1760 PIXMAN_a8r8g8b8, 0x1ff5bff,
1761 PIXMAN_a8r8g8b8, 0xff6ddce8,
1762 PIXMAN_a2r2g2b2, 0x10
1763 },
1764 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1765 PIXMAN_a8r8g8b8, 0x100ffff,
1766 PIXMAN_a4r4g4b4, 0xffb7,
1767 PIXMAN_a4r4g4b4, 0xb0
1768 },
1769 { PIXMAN_OP_CONJOINT_IN,
1770 PIXMAN_a8r8g8b8, 0x173ffff,
1771 PIXMAN_r5g6b5, 0xff2c,
1772 PIXMAN_a4r4g4b4, 0x6
1773 },
1774 { PIXMAN_OP_CONJOINT_IN,
1775 PIXMAN_a8r8g8b8, 0x17102ff,
1776 PIXMAN_a8r8g8b8, 0x955bff66,
1777 PIXMAN_a8r8g8b8, 0x280066
1778 },
1779 { PIXMAN_OP_DISJOINT_XOR,
1780 PIXMAN_a8r8g8b8, 0x3c7ff24,
1781 PIXMAN_r5g6b5, 0xc4,
1782 PIXMAN_r5g6b5, 0x163
1783 },
1784 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1785 PIXMAN_a8r8g8b8, 0x100c2a6,
1786 PIXMAN_r5g6b5, 0xa9b9,
1787 PIXMAN_a4r4g4b4, 0x8
1788 },
1789 { PIXMAN_OP_DISJOINT_XOR,
1790 PIXMAN_a8r8g8b8, 0x26049ff,
1791 PIXMAN_a4r4g4b4, 0xb2,
1792 PIXMAN_r5g6b5, 0x8904
1793 },
1794 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1795 PIXMAN_a8r8g8b8, 0x2f100ff,
1796 PIXMAN_r3g3b2, 0x30,
1797 PIXMAN_a8r8g8b8, 0x2220100
1798 },
1799 { PIXMAN_OP_DISJOINT_XOR,
1800 PIXMAN_a8r8g8b8, 0x1ffff88,
1801 PIXMAN_r3g3b2, 0x7e,
1802 PIXMAN_r3g3b2, 0x60
1803 },
1804 { PIXMAN_OP_DISJOINT_IN,
1805 PIXMAN_a8r8g8b8, 0x153ffab,
1806 PIXMAN_a8r8g8b8, 0xfd10725a,
1807 PIXMAN_r3g3b2, 0x0
1808 },
1809 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1810 PIXMAN_a8r8g8b8, 0x1ff00d2,
1811 PIXMAN_r5g6b5, 0xff6b,
1812 PIXMAN_a8r8g8b8, 0x101014a
1813 },
1814 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1815 PIXMAN_a8r8g8b8, 0x100d965,
1816 PIXMAN_a8r8g8b8, 0xff007b00,
1817 PIXMAN_r3g3b2, 0xc
1818 },
1819 { PIXMAN_OP_DISJOINT_OUT,
1820 PIXMAN_a8r8g8b8, 0x1ec0000,
1821 PIXMAN_r5g6b5, 0x6fff,
1822 PIXMAN_r5g6b5, 0x6000
1823 },
1824 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1825 PIXMAN_a8r8g8b8, 0x19d59a2,
1826 PIXMAN_a8r8g8b8, 0x4a00ff7a,
1827 PIXMAN_a8r8g8b8, 0x2e1a2f
1828 },
1829 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1830 PIXMAN_a8r8g8b8, 0x1eb0000,
1831 PIXMAN_a4r4g4b4, 0x72bc,
1832 PIXMAN_r5g6b5, 0x1800
1833 },
1834 { PIXMAN_OP_DISJOINT_IN,
1835 PIXMAN_a8r8g8b8, 0x100ffff,
1836 PIXMAN_a4r4g4b4, 0xc034,
1837 PIXMAN_a4r4g4b4, 0x0
1838 },
1839 { PIXMAN_OP_SATURATE,
1840 PIXMAN_a8r8g8b8, 0x195ff15,
1841 PIXMAN_a4r4g4b4, 0xb7b1,
1842 PIXMAN_r5g6b5, 0x4000
1843 },
1844 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1845 PIXMAN_a8r8g8b8, 0x1ffdf94,
1846 PIXMAN_a4r4g4b4, 0x78,
1847 PIXMAN_r3g3b2, 0xc
1848 },
1849 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1850 PIXMAN_a8r8g8b8, 0x26f00ff,
1851 PIXMAN_a4r4g4b4, 0xff93,
1852 PIXMAN_r5g6b5, 0x1dd2
1853 },
1854 { PIXMAN_OP_CONJOINT_IN,
1855 PIXMAN_a8r8g8b8, 0x2ff3fc5,
1856 PIXMAN_r3g3b2, 0x2f,
1857 PIXMAN_a8r8g8b8, 0x240000
1858 },
1859 { PIXMAN_OP_DISJOINT_IN,
1860 PIXMAN_a8r8g8b8, 0x1ff696e,
1861 PIXMAN_a4r4g4b4, 0x22ff,
1862 PIXMAN_r5g6b5, 0x34d
1863 },
1864 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1865 PIXMAN_a8r8g8b8, 0x10033d9,
1866 PIXMAN_a8r8g8b8, 0x38650000,
1867 PIXMAN_a8r8g8b8, 0x0
1868 },
1869 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1870 PIXMAN_a8r8g8b8, 0x2ffff00,
1871 PIXMAN_a4r4g4b4, 0x2070,
1872 PIXMAN_r5g6b5, 0x2100
1873 },
1874 { PIXMAN_OP_DISJOINT_XOR,
1875 PIXMAN_a8r8g8b8, 0x1008746,
1876 PIXMAN_a8r8g8b8, 0xb56971,
1877 PIXMAN_r5g6b5, 0xc25c
1878 },
1879 { PIXMAN_OP_DISJOINT_OUT,
1880 PIXMAN_a8r8g8b8, 0x144d200,
1881 PIXMAN_a4r4g4b4, 0xff42,
1882 PIXMAN_r3g3b2, 0x4
1883 },
1884 { PIXMAN_OP_DISJOINT_XOR,
1885 PIXMAN_a8r8g8b8, 0x1ffffd0,
1886 PIXMAN_r5g6b5, 0x5b00,
1887 PIXMAN_r3g3b2, 0x4c
1888 },
1889 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1890 PIXMAN_a8r8g8b8, 0x10000ff,
1891 PIXMAN_a8r8g8b8, 0xff006f,
1892 PIXMAN_r5g6b5, 0xd
1893 },
1894 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1895 PIXMAN_a8r8g8b8, 0x10666ff,
1896 PIXMAN_a4r4g4b4, 0x39b2,
1897 PIXMAN_r5g6b5, 0xa6
1898 },
1899 { PIXMAN_OP_CONJOINT_OUT,
1900 PIXMAN_a8r8g8b8, 0x11a007d,
1901 PIXMAN_r3g3b2, 0xf9,
1902 PIXMAN_a8r8g8b8, 0x11a0000
1903 },
1904 { PIXMAN_OP_CONJOINT_ATOP,
1905 PIXMAN_a8r8g8b8, 0x1eb90ee,
1906 PIXMAN_r5g6b5, 0xd,
1907 PIXMAN_a2r2g2b2, 0x1
1908 },
1909 { PIXMAN_OP_DISJOINT_OUT,
1910 PIXMAN_a8r8g8b8, 0x1ff42d5,
1911 PIXMAN_a4r4g4b4, 0x3400,
1912 PIXMAN_r3g3b2, 0x40
1913 },
1914 { PIXMAN_OP_DISJOINT_IN,
1915 PIXMAN_a8r8g8b8, 0x1dfff00,
1916 PIXMAN_a8r8g8b8, 0x3ffff9d2,
1917 PIXMAN_r5g6b5, 0x0
1918 },
1919 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1920 PIXMAN_a8r8g8b8, 0x1ff6500,
1921 PIXMAN_a2r2g2b2, 0x56,
1922 PIXMAN_r3g3b2, 0x44
1923 },
1924 { PIXMAN_OP_DISJOINT_ATOP,
1925 PIXMAN_a8r8g8b8, 0x119ffe6,
1926 PIXMAN_r3g3b2, 0x8d,
1927 PIXMAN_a4r4g4b4, 0xff00
1928 },
1929 { PIXMAN_OP_DISJOINT_IN,
1930 PIXMAN_a8r8g8b8, 0x100cd00,
1931 PIXMAN_r5g6b5, 0x33ff,
1932 PIXMAN_a4r4g4b4, 0x0
1933 },
1934 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1935 PIXMAN_a8r8g8b8, 0x569ffd7,
1936 PIXMAN_r5g6b5, 0x8cc,
1937 PIXMAN_r5g6b5, 0xc0
1938 },
1939 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1940 PIXMAN_a8r8g8b8, 0x100876a,
1941 PIXMAN_a8r8g8b8, 0x575447a5,
1942 PIXMAN_r5g6b5, 0x164
1943 },
1944 { PIXMAN_OP_CONJOINT_OUT,
1945 PIXMAN_a8r8g8b8, 0x12d00ff,
1946 PIXMAN_a4r4g4b4, 0x3fff,
1947 PIXMAN_a4r4g4b4, 0x0
1948 },
1949 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1950 PIXMAN_a8r8g8b8, 0x2ff953b,
1951 PIXMAN_a4r4g4b4, 0x2914,
1952 PIXMAN_r5g6b5, 0x20a1
1953 },
1954 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
1955 PIXMAN_a8r8g8b8, 0x1ffead4,
1956 PIXMAN_a8r8g8b8, 0xff00ea4e,
1957 PIXMAN_r3g3b2, 0x5a
1958 },
1959 { PIXMAN_OP_DISJOINT_ATOP,
1960 PIXMAN_a8r8g8b8, 0x1ff6400,
1961 PIXMAN_a2r2g2b2, 0x99,
1962 PIXMAN_r5g6b5, 0xa620
1963 },
1964 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1965 PIXMAN_a8r8g8b8, 0x17b0084,
1966 PIXMAN_r3g3b2, 0xbd,
1967 PIXMAN_a4r4g4b4, 0x500
1968 },
1969 { PIXMAN_OP_DISJOINT_XOR,
1970 PIXMAN_a8r8g8b8, 0x4f90bbb,
1971 PIXMAN_a8r8g8b8, 0xff00d21f,
1972 PIXMAN_a8r8g8b8, 0xfb00fc4a
1973 },
1974 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1975 PIXMAN_a8r8g8b8, 0x1ffbb1d,
1976 PIXMAN_a8r8g8b8, 0x2dff79ff,
1977 PIXMAN_r5g6b5, 0x2c0
1978 },
1979 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
1980 PIXMAN_a8r8g8b8, 0x100ffff,
1981 PIXMAN_a2r2g2b2, 0x43,
1982 PIXMAN_a4r4g4b4, 0x6f
1983 },
1984 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
1985 PIXMAN_a8r8g8b8, 0x1f000ff,
1986 PIXMAN_a4r4g4b4, 0xb393,
1987 PIXMAN_r3g3b2, 0x20
1988 },
1989 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
1990 PIXMAN_a8r8g8b8, 0x1c60020,
1991 PIXMAN_a8r8g8b8, 0x6bffffff,
1992 PIXMAN_a8r8g8b8, 0x0
1993 },
1994 { PIXMAN_OP_CONJOINT_OUT,
1995 PIXMAN_a8r8g8b8, 0x1727d00,
1996 PIXMAN_a2r2g2b2, 0x67,
1997 PIXMAN_a4r4g4b4, 0x400
1998 },
1999 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2000 PIXMAN_a8r8g8b8, 0x14a5194,
2001 PIXMAN_a4r4g4b4, 0xd7ff,
2002 PIXMAN_r5g6b5, 0x2000
2003 },
2004 { PIXMAN_OP_DISJOINT_ATOP,
2005 PIXMAN_a8r8g8b8, 0x20003fa,
2006 PIXMAN_a4r4g4b4, 0x24ff,
2007 PIXMAN_a8r8g8b8, 0xffff1550
2008 },
2009 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2010 PIXMAN_a8r8g8b8, 0x1a6ff83,
2011 PIXMAN_a4r4g4b4, 0xf400,
2012 PIXMAN_r5g6b5, 0x2800
2013 },
2014 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2015 PIXMAN_a8r8g8b8, 0x2ffcf00,
2016 PIXMAN_r5g6b5, 0x71ff,
2017 PIXMAN_a4r4g4b4, 0x30
2018 },
2019 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2020 PIXMAN_a8r8g8b8, 0x333ffff,
2021 PIXMAN_a4r4g4b4, 0x2c00,
2022 PIXMAN_r3g3b2, 0x4
2023 },
2024 { PIXMAN_OP_DISJOINT_XOR,
2025 PIXMAN_a8r8g8b8, 0x1c2ffe8,
2026 PIXMAN_r5g6b5, 0xc200,
2027 PIXMAN_a8r8g8b8, 0xfeca41ff
2028 },
2029 { PIXMAN_OP_CONJOINT_ATOP,
2030 PIXMAN_a2r2g2b2, 0x47,
2031 PIXMAN_a8r8g8b8, 0x2ffff00,
2032 PIXMAN_a8r8g8b8, 0x3aa0102
2033 },
2034 { PIXMAN_OP_DISJOINT_OUT,
2035 PIXMAN_a8r8g8b8, 0x1ffeb00,
2036 PIXMAN_a4r4g4b4, 0xb493,
2037 PIXMAN_a4r4g4b4, 0x400
2038 },
2039 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2040 PIXMAN_a8r8g8b8, 0x2afffff,
2041 PIXMAN_r5g6b5, 0xcb,
2042 PIXMAN_r5g6b5, 0xc0
2043 },
2044 { PIXMAN_OP_SATURATE,
2045 PIXMAN_a8r8g8b8, 0x183ff00,
2046 PIXMAN_r3g3b2, 0x87,
2047 PIXMAN_r5g6b5, 0xae91
2048 },
2049 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2050 PIXMAN_a8r8g8b8, 0x3ffff00,
2051 PIXMAN_a4r4g4b4, 0x2ba4,
2052 PIXMAN_r5g6b5, 0x2100
2053 },
2054 { PIXMAN_OP_CONJOINT_OUT,
2055 PIXMAN_a8r8g8b8, 0x215cbc2,
2056 PIXMAN_a4r4g4b4, 0xafd3,
2057 PIXMAN_a8r8g8b8, 0x115b000
2058 },
2059 { PIXMAN_OP_SATURATE,
2060 PIXMAN_a8r8g8b8, 0x1853f65,
2061 PIXMAN_a8r8g8b8, 0xc68cdc41,
2062 PIXMAN_r5g6b5, 0x3
2063 },
2064 { PIXMAN_OP_CONJOINT_IN,
2065 PIXMAN_a8r8g8b8, 0x3ffff8f,
2066 PIXMAN_a4r4g4b4, 0x8824,
2067 PIXMAN_a4r4g4b4, 0x20
2068 },
2069 { PIXMAN_OP_DISJOINT_OUT,
2070 PIXMAN_a8r8g8b8, 0x28e08e6,
2071 PIXMAN_a8r8g8b8, 0x2cffff31,
2072 PIXMAN_r5g6b5, 0x1805
2073 },
2074 { PIXMAN_OP_DISJOINT_IN,
2075 PIXMAN_a8r8g8b8, 0x1b500be,
2076 PIXMAN_r5g6b5, 0xd946,
2077 PIXMAN_r5g6b5, 0x9800
2078 },
2079 { PIXMAN_OP_DISJOINT_OUT,
2080 PIXMAN_a8r8g8b8, 0x133ffb3,
2081 PIXMAN_a2r2g2b2, 0x42,
2082 PIXMAN_a8r8g8b8, 0x11553c
2083 },
2084 { PIXMAN_OP_DISJOINT_XOR,
2085 PIXMAN_a8r8g8b8, 0x21aff81,
2086 PIXMAN_r3g3b2, 0xc7,
2087 PIXMAN_r5g6b5, 0x120
2088 },
2089 { PIXMAN_OP_CONJOINT_ATOP,
2090 PIXMAN_a8r8g8b8, 0x12e004f,
2091 PIXMAN_a4r4g4b4, 0xf617,
2092 PIXMAN_a4r4g4b4, 0x102
2093 },
2094 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2095 PIXMAN_a8r8g8b8, 0x164861f,
2096 PIXMAN_r3g3b2, 0x4e,
2097 PIXMAN_r5g6b5, 0x19c0
2098 },
2099 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
2100 PIXMAN_a8r8g8b8, 0x1ff0eff,
2101 PIXMAN_a8r8g8b8, 0xff5c00aa,
2102 PIXMAN_r5g6b5, 0x5800
2103 },
2104 { PIXMAN_OP_DISJOINT_XOR,
2105 PIXMAN_a8r8g8b8, 0x1e4c60f,
2106 PIXMAN_a8r8g8b8, 0x38ff0e0c,
2107 PIXMAN_a4r4g4b4, 0xff2a
2108 },
2109 { PIXMAN_OP_DISJOINT_OVER_REVERSE,
2110 PIXMAN_a8r8g8b8, 0x1ff0000,
2111 PIXMAN_a8r8g8b8, 0x9f3d6700,
2112 PIXMAN_r5g6b5, 0xf3ff
2113 },
2114 { PIXMAN_OP_DISJOINT_IN,
2115 PIXMAN_a8r8g8b8, 0x205ffd0,
2116 PIXMAN_a8r8g8b8, 0xffc22b3b,
2117 PIXMAN_a8r8g8b8, 0x2040000
2118 },
2119 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2120 PIXMAN_a8r8g8b8, 0x1ff0059,
2121 PIXMAN_r5g6b5, 0x74ff,
2122 PIXMAN_a8r8g8b8, 0x1730101
2123 },
2124 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
2125 PIXMAN_a8r8g8b8, 0x29affb8,
2126 PIXMAN_r5g6b5, 0xff,
2127 PIXMAN_a8r8g8b8, 0x2d25cff
2128 },
2129 { PIXMAN_OP_DISJOINT_OUT,
2130 PIXMAN_a8r8g8b8, 0x1ffff8b,
2131 PIXMAN_a4r4g4b4, 0xff7b,
2132 PIXMAN_r5g6b5, 0x3a0
2133 },
2134 { PIXMAN_OP_DISJOINT_IN,
2135 PIXMAN_a8r8g8b8, 0x2a86ad7,
2136 PIXMAN_a4r4g4b4, 0xdc22,
2137 PIXMAN_a8r8g8b8, 0x2860000
2138 },
2139 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2140 PIXMAN_a8r8g8b8, 0x3ff00ff,
2141 PIXMAN_r3g3b2, 0x33,
2142 PIXMAN_r5g6b5, 0x2000
2143 },
2144 { PIXMAN_OP_SATURATE,
2145 PIXMAN_a8r8g8b8, 0x1e50063,
2146 PIXMAN_a8r8g8b8, 0x35ff95d7,
2147 PIXMAN_r3g3b2, 0x20
2148 },
2149 { PIXMAN_OP_DISJOINT_IN,
2150 PIXMAN_a8r8g8b8, 0x2ffe6ff,
2151 PIXMAN_a8r8g8b8, 0x153ef297,
2152 PIXMAN_r5g6b5, 0x6d2
2153 },
2154 { PIXMAN_OP_DISJOINT_IN,
2155 PIXMAN_a8r8g8b8, 0x34ffeff,
2156 PIXMAN_a4r4g4b4, 0x2e,
2157 PIXMAN_r5g6b5, 0x1d
2158 },
2159 { PIXMAN_OP_DISJOINT_XOR,
2160 PIXMAN_a8r8g8b8, 0x2ffeada,
2161 PIXMAN_r5g6b5, 0xabc6,
2162 PIXMAN_a8r8g8b8, 0xfd15b256
2163 },
2164 { PIXMAN_OP_CONJOINT_ATOP,
2165 PIXMAN_a8r8g8b8, 0x100ff00,
2166 PIXMAN_a8r8g8b8, 0xcff3f32,
2167 PIXMAN_a8r8g8b8, 0x3f00
2168 },
2169 { PIXMAN_OP_SATURATE,
2170 PIXMAN_a8r8g8b8, 0x1e1b0f1,
2171 PIXMAN_a8r8g8b8, 0xff63ff54,
2172 PIXMAN_r3g3b2, 0x5d
2173 },
2174 { PIXMAN_OP_DISJOINT_XOR,
2175 PIXMAN_a8r8g8b8, 0x2ffff23,
2176 PIXMAN_a8r8g8b8, 0x380094ff,
2177 PIXMAN_r5g6b5, 0x3a4b
2178 },
2179 { PIXMAN_OP_CONJOINT_ATOP,
2180 PIXMAN_a4r4g4b4, 0x1000,
2181 PIXMAN_r5g6b5, 0xca,
2182 PIXMAN_a8r8g8b8, 0x3434500
2183 },
2184 { PIXMAN_OP_DISJOINT_IN,
2185 PIXMAN_a8r8g8b8, 0x195ffe5,
2186 PIXMAN_a4r4g4b4, 0x3a29,
2187 PIXMAN_a8r8g8b8, 0x0
2188 },
2189 { PIXMAN_OP_DISJOINT_ATOP,
2190 PIXMAN_a8r8g8b8, 0x139007a,
2191 PIXMAN_a4r4g4b4, 0x4979,
2192 PIXMAN_r5g6b5, 0x84
2193 },
2194 { PIXMAN_OP_SOFT_LIGHT,
2195 PIXMAN_a2r2g2b2, 0xa9,
2196 PIXMAN_a4r4g4b4, 0xfa18,
2197 PIXMAN_a8r8g8b8, 0xabff67ff
2198 },
2199 { PIXMAN_OP_SOFT_LIGHT,
2200 PIXMAN_a2r2g2b2, 0x94,
2201 PIXMAN_a4r4g4b4, 0x5109,
2202 PIXMAN_a8r8g8b8, 0x3affffff
2203 },
2204 { PIXMAN_OP_COLOR_BURN,
2205 PIXMAN_r5g6b5, 0xd038,
2206 PIXMAN_r5g6b5, 0xff00,
2207 PIXMAN_r5g6b5, 0xf9a5
2208 },
2209 { PIXMAN_OP_SOFT_LIGHT,
2210 PIXMAN_a8r8g8b8, 0x543128ff,
2211 PIXMAN_a8r8g8b8, 0x7029ff,
2212 PIXMAN_a8r8g8b8, 0x316b1d7
2213 },
2214 { PIXMAN_OP_SOFT_LIGHT,
2215 PIXMAN_r5g6b5, 0x53ff,
2216 PIXMAN_r5g6b5, 0x72ff,
2217 PIXMAN_a8r8g8b8, 0xffffdeff
2218 },
2219 { PIXMAN_OP_SOFT_LIGHT,
2220 PIXMAN_a8r8g8b8, 0x5b00002b,
2221 PIXMAN_a4r4g4b4, 0xc3,
2222 PIXMAN_a8r8g8b8, 0x23530be
2223 },
2224 { PIXMAN_OP_SOFT_LIGHT,
2225 PIXMAN_a8r8g8b8, 0xcefc0041,
2226 PIXMAN_a8r8g8b8, 0xf60d02,
2227 PIXMAN_a8r8g8b8, 0x1f2ffe5
2228 },
2229 { PIXMAN_OP_COLOR_DODGE,
2230 PIXMAN_r5g6b5, 0xffdb,
2231 PIXMAN_r5g6b5, 0xc700,
2232 PIXMAN_r5g6b5, 0x654
2233 },
2234 { PIXMAN_OP_COLOR_DODGE,
2235 PIXMAN_r5g6b5, 0xffc6,
2236 PIXMAN_r5g6b5, 0xff09,
2237 PIXMAN_r5g6b5, 0xfe58
2238 },
2239 { PIXMAN_OP_SOFT_LIGHT,
2240 PIXMAN_a2r2g2b2, 0x95,
2241 PIXMAN_r5g6b5, 0x1b4a,
2242 PIXMAN_a8r8g8b8, 0xab234cff
2243 },
2244 { PIXMAN_OP_SOFT_LIGHT,
2245 PIXMAN_a2r2g2b2, 0x95,
2246 PIXMAN_a4r4g4b4, 0x5e99,
2247 PIXMAN_a8r8g8b8, 0x3b1c1cdd
2248 },
2249 { PIXMAN_OP_COLOR_BURN,
2250 PIXMAN_r5g6b5, 0x22,
2251 PIXMAN_r5g6b5, 0xd00,
2252 PIXMAN_r5g6b5, 0xfbb1
2253 },
2254 { PIXMAN_OP_COLOR_DODGE,
2255 PIXMAN_r5g6b5, 0xffc8,
2256 PIXMAN_a8r8g8b8, 0xa1a3ffff,
2257 PIXMAN_r5g6b5, 0x44a
2258 },
2259 { PIXMAN_OP_SOFT_LIGHT,
2260 PIXMAN_a8r8g8b8, 0xffff7cff,
2261 PIXMAN_r5g6b5, 0x900,
2262 PIXMAN_a8r8g8b8, 0xffff94ec
2263 },
2264 { PIXMAN_OP_SOFT_LIGHT,
2265 PIXMAN_a2r2g2b2, 0xa7,
2266 PIXMAN_r5g6b5, 0xff,
2267 PIXMAN_a8r8g8b8, 0xaa00cffe
2268 },
2269 { PIXMAN_OP_SOFT_LIGHT,
2270 PIXMAN_a2r2g2b2, 0x85,
2271 PIXMAN_r5g6b5, 0xffb3,
2272 PIXMAN_a8r8g8b8, 0xaaffff4a
2273 },
2274 { PIXMAN_OP_SOFT_LIGHT,
2275 PIXMAN_a8r8g8b8, 0x3500a118,
2276 PIXMAN_a4r4g4b4, 0x9942,
2277 PIXMAN_a8r8g8b8, 0x01ff405e
2278 },
2279 { PIXMAN_OP_SOFT_LIGHT,
2280 PIXMAN_a2r2g2b2, 0xb5,
2281 PIXMAN_x4a4, 0xe,
2282 PIXMAN_a8r8g8b8, 0xffbaff
2283 },
2284 { PIXMAN_OP_SOFT_LIGHT,
2285 PIXMAN_a4r4g4b4, 0xe872,
2286 PIXMAN_x2r10g10b10, 0xa648ff00,
2287 PIXMAN_a2r10g10b10, 0x14ff00e8,
2288 },
2289 { PIXMAN_OP_SATURATE,
2290 PIXMAN_a8r8g8b8, 0x4d2db34,
2291 PIXMAN_a8, 0x19,
2292 PIXMAN_r5g6b5, 0x9700,
2293 },
2294 { PIXMAN_OP_SATURATE,
2295 PIXMAN_a8r8g8b8, 0x2ff0076,
2296 PIXMAN_a8r8g8b8, 0x2a0000,
2297 PIXMAN_r3g3b2, 0x0,
2298 },
2299 { PIXMAN_OP_CONJOINT_OVER_REVERSE,
2300 PIXMAN_a8r8g8b8, 0x14f00ff,
2301 PIXMAN_r5g6b5, 0xd48,
2302 PIXMAN_a4r4g4b4, 0x0,
2303 },
2304 { PIXMAN_OP_CONJOINT_OUT,
2305 PIXMAN_a8r8g8b8, 0x3d8bbff,
2306 PIXMAN_r5g6b5, 0x6900,
2307 PIXMAN_a8r8g8b8, 0x0,
2308 },
2309 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2310 PIXMAN_a8r8g8b8, 0x2ff00ff,
2311 PIXMAN_a4r4g4b4, 0x2300,
2312 PIXMAN_r3g3b2, 0x0,
2313 },
2314 { PIXMAN_OP_SATURATE,
2315 PIXMAN_a8r8g8b8, 0x4d2db34,
2316 PIXMAN_a8r8g8b8, 0xff0019ff,
2317 PIXMAN_r5g6b5, 0x9700,
2318 },
2319 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2320 PIXMAN_a8r8g8b8, 0x100ac05,
2321 PIXMAN_r3g3b2, 0xef,
2322 PIXMAN_a2r2g2b2, 0xff,
2323 },
2324 { PIXMAN_OP_EXCLUSION,
2325 PIXMAN_a2r2g2b2, 0xbf,
2326 PIXMAN_null, 0x00,
2327 PIXMAN_r5g6b5, 0x7e
2328 },
2329 { PIXMAN_OP_DIFFERENCE,
2330 PIXMAN_r5g6b5, 0xffff,
2331 PIXMAN_null, 0x00,
2332 PIXMAN_a2r2g2b2, 0x33
2333 },
2334 { PIXMAN_OP_HARD_LIGHT,
2335 PIXMAN_a8r8g8b8, 0x84c4ffd7,
2336 PIXMAN_null, 0x00,
2337 PIXMAN_a8r8g8b8, 0xffddff
2338 },
2339 { PIXMAN_OP_EXCLUSION,
2340 PIXMAN_a8r8g8b8, 0xff6e56,
2341 PIXMAN_null, 0x00,
2342 PIXMAN_a8r8g8b8, 0x20ff1ade
2343 },
2344 { PIXMAN_OP_OVERLAY,
2345 PIXMAN_a4r4g4b4, 0xfe0,
2346 PIXMAN_null, 0x00,
2347 PIXMAN_a4r4g4b4, 0xbdff
2348 },
2349 { PIXMAN_OP_SCREEN,
2350 PIXMAN_a8r8g8b8, 0x9671ff,
2351 PIXMAN_null, 0x00,
2352 PIXMAN_a2r2g2b2, 0x43
2353 },
2354 { PIXMAN_OP_EXCLUSION,
2355 PIXMAN_a2r2g2b2, 0xff,
2356 PIXMAN_null, 0x00,
2357 PIXMAN_a4r4g4b4, 0x39ff
2358 },
2359 { PIXMAN_OP_EXCLUSION,
2360 PIXMAN_r5g6b5, 0xffff,
2361 PIXMAN_null, 0x00,
2362 PIXMAN_a4r4g4b4, 0x1968
2363 },
2364 { PIXMAN_OP_EXCLUSION,
2365 PIXMAN_a4r4g4b4, 0x4247,
2366 PIXMAN_null, 0x00,
2367 PIXMAN_a8r8g8b8, 0xd8ffff
2368 },
2369 { PIXMAN_OP_EXCLUSION,
2370 PIXMAN_r5g6b5, 0xff00,
2371 PIXMAN_null, 0x00,
2372 PIXMAN_a2r2g2b2, 0x79
2373 },
2374 { PIXMAN_OP_DIFFERENCE,
2375 PIXMAN_r3g3b2, 0xe0,
2376 PIXMAN_null, 0x00,
2377 PIXMAN_a2r2g2b2, 0x39
2378 },
2379 { PIXMAN_OP_EXCLUSION,
2380 PIXMAN_a8r8g8b8, 0xfff8,
2381 PIXMAN_null, 0x00,
2382 PIXMAN_r3g3b2, 0xff
2383 },
2384 { PIXMAN_OP_COLOR_DODGE,
2385 PIXMAN_r5g6b5, 0x75fc,
2386 PIXMAN_null, 0x00,
2387 PIXMAN_r5g6b5, 0x11ff,
2388 },
2389 { PIXMAN_OP_COLOR_BURN,
2390 PIXMAN_r3g3b2, 0x52,
2391 PIXMAN_null, 0x00,
2392 PIXMAN_r5g6b5, 0xc627
2393 },
2394 { PIXMAN_OP_HARD_LIGHT,
2395 PIXMAN_r5g6b5, 0x9f2b,
2396 PIXMAN_null, 0x00,
2397 PIXMAN_a8r8g8b8, 0x4b00e7f5
2398 },
2399 { PIXMAN_OP_OVERLAY,
2400 PIXMAN_a8r8g8b8, 0x00dfff5c,
2401 PIXMAN_null, 0x00,
2402 PIXMAN_r5g6b5, 0x5e0f,
2403 },
2404 { PIXMAN_OP_COLOR_BURN,
2405 PIXMAN_a8r8g8b8, 0xff00121b,
2406 PIXMAN_null, 0x00,
2407 PIXMAN_r5g6b5, 0x3776
2408 },
2409 { PIXMAN_OP_SOFT_LIGHT,
2410 PIXMAN_r5g6b5, 0x03e0,
2411 PIXMAN_null, 0x00,
2412 PIXMAN_a8r8g8b8, 0x01003c00,
2413 },
2414 { PIXMAN_OP_OVER,
2415 PIXMAN_a8r8g8b8, 0x0f00c300,
2416 PIXMAN_null, 0x00,
2417 PIXMAN_x14r6g6b6, 0x003c0,
2418 },
2419 { PIXMAN_OP_DISJOINT_XOR,
2420 PIXMAN_a4r4g4b4, 0xd0c0,
2421 PIXMAN_null, 0x00,
2422 PIXMAN_a8r8g8b8, 0x5300ea00,
2423 },
2424 { PIXMAN_OP_OVER,
2425 PIXMAN_a8r8g8b8, 0x20c6bf00,
2426 PIXMAN_null, 0x00,
2427 PIXMAN_r5g6b5, 0xb9ff
2428 },
2429 { PIXMAN_OP_OVER,
2430 PIXMAN_a8r8g8b8, 0x204ac7ff,
2431 PIXMAN_null, 0x00,
2432 PIXMAN_r5g6b5, 0xc1ff
2433 },
2434 { PIXMAN_OP_OVER_REVERSE,
2435 PIXMAN_r5g6b5, 0xffc3,
2436 PIXMAN_null, 0x00,
2437 PIXMAN_a8r8g8b8, 0x102d00dd
2438 },
2439 { PIXMAN_OP_OVER_REVERSE,
2440 PIXMAN_r5g6b5, 0x1f00,
2441 PIXMAN_null, 0x00,
2442 PIXMAN_a8r8g8b8, 0x1bdf0c89
2443 },
2444 { PIXMAN_OP_OVER_REVERSE,
2445 PIXMAN_r5g6b5, 0xf9d2,
2446 PIXMAN_null, 0x00,
2447 PIXMAN_a8r8g8b8, 0x1076bcf7
2448 },
2449 { PIXMAN_OP_OVER_REVERSE,
2450 PIXMAN_r5g6b5, 0x00c3,
2451 PIXMAN_null, 0x00,
2452 PIXMAN_a8r8g8b8, 0x1bfe9ae5
2453 },
2454 { PIXMAN_OP_OVER_REVERSE,
2455 PIXMAN_r5g6b5, 0x09ff,
2456 PIXMAN_null, 0x00,
2457 PIXMAN_a8r8g8b8, 0x0b00c16c
2458 },
2459 { PIXMAN_OP_DISJOINT_ATOP,
2460 PIXMAN_a2r2g2b2, 0xbc,
2461 PIXMAN_null, 0x00,
2462 PIXMAN_a8r8g8b8, 0x9efff1ff
2463 },
2464 { PIXMAN_OP_DISJOINT_ATOP,
2465 PIXMAN_a4r4g4b4, 0xae5f,
2466 PIXMAN_null, 0x00,
2467 PIXMAN_a8r8g8b8, 0xf215b675
2468 },
2469 { PIXMAN_OP_DISJOINT_ATOP_REVERSE,
2470 PIXMAN_a8r8g8b8, 0xce007980,
2471 PIXMAN_null, 0x00,
2472 PIXMAN_a8r8g8b8, 0x80ffe4ad
2473 },
2474 { PIXMAN_OP_DISJOINT_XOR,
2475 PIXMAN_a8r8g8b8, 0xb8b07bea,
2476 PIXMAN_null, 0x00,
2477 PIXMAN_a4r4g4b4, 0x939c
2478 },
2479 { PIXMAN_OP_CONJOINT_ATOP_REVERSE,
2480 PIXMAN_r5g6b5, 0x0063,
2481 PIXMAN_null, 0x00,
2482 PIXMAN_a8r8g8b8, 0x10bb1ed7,
2483 },
2484 { PIXMAN_OP_EXCLUSION,
2485 PIXMAN_a2r2g2b2, 0xbf,
2486 PIXMAN_null, 0x00,
2487 PIXMAN_r5g6b5, 0x7e
2488 },
2489 { PIXMAN_OP_LIGHTEN,
2490 PIXMAN_a8r8g8b8, 0xffffff,
2491 PIXMAN_null, 0x00,
2492 PIXMAN_a8r8g8b8, 0xff3fffff
2493 },
2494 { PIXMAN_OP_SOFT_LIGHT,
2495 PIXMAN_r3g3b2, 0x38,
2496 PIXMAN_null, 0x00,
2497 PIXMAN_a2r2g2b2, 0x5b
2498 },
2499 { PIXMAN_OP_COLOR_DODGE,
2500 PIXMAN_a8r8g8b8, 0x2e9effff,
2501 PIXMAN_null, 0x00,
2502 PIXMAN_a2r2g2b2, 0x77
2503 },
2504 { PIXMAN_OP_DIFFERENCE,
2505 PIXMAN_r5g6b5, 0xffff,
2506 PIXMAN_null, 0x00,
2507 PIXMAN_a2r2g2b2, 0x33
2508 },
2509 { PIXMAN_OP_OVERLAY,
2510 PIXMAN_a8r8g8b8, 0xd0089ff,
2511 PIXMAN_null, 0x00,
2512 PIXMAN_r3g3b2, 0xb1
2513 },
2514 { PIXMAN_OP_OVERLAY,
2515 PIXMAN_r3g3b2, 0x8a,
2516 PIXMAN_null, 0x00,
2517 PIXMAN_a8r8g8b8, 0xcd0004
2518 },
2519 { PIXMAN_OP_COLOR_BURN,
2520 PIXMAN_a8r8g8b8, 0xffff1e3a,
2521 PIXMAN_null, 0x00,
2522 PIXMAN_a4r4g4b4, 0xcf00
2523 },
2524 { PIXMAN_OP_HARD_LIGHT,
2525 PIXMAN_a8r8g8b8, 0x84c4ffd7,
2526 PIXMAN_null, 0x00,
2527 PIXMAN_a8r8g8b8, 0xffddff
2528 },
2529 { PIXMAN_OP_DIFFERENCE,
2530 PIXMAN_a4r4g4b4, 0xfd75,
2531 PIXMAN_null, 0x00,
2532 PIXMAN_a2r2g2b2, 0x7f
2533 },
2534 { PIXMAN_OP_LIGHTEN,
2535 PIXMAN_r3g3b2, 0xff,
2536 PIXMAN_null, 0x00,
2537 PIXMAN_a4r4g4b4, 0x63ff
2538 },
2539 { PIXMAN_OP_EXCLUSION,
2540 PIXMAN_a8r8g8b8, 0xff6e56,
2541 PIXMAN_null, 0x00,
2542 PIXMAN_a8r8g8b8, 0x20ff1ade
2543 },
2544 { PIXMAN_OP_OVERLAY,
2545 PIXMAN_a4r4g4b4, 0xfe0,
2546 PIXMAN_null, 0x00,
2547 PIXMAN_a4r4g4b4, 0xbdff
2548 },
2549 { PIXMAN_OP_OVERLAY,
2550 PIXMAN_r5g6b5, 0x9799,
2551 PIXMAN_null, 0x00,
2552 PIXMAN_a4r4g4b4, 0x8d
2553 },
2554 { PIXMAN_OP_HARD_LIGHT,
2555 PIXMAN_a8r8g8b8, 0xe8ff1c33,
2556 PIXMAN_null, 0x00,
2557 PIXMAN_r5g6b5, 0x6200
2558 },
2559 { PIXMAN_OP_DIFFERENCE,
2560 PIXMAN_a8r8g8b8, 0x22ffffff,
2561 PIXMAN_null, 0x00,
2562 PIXMAN_a2r2g2b2, 0x63
2563 },
2564 { PIXMAN_OP_SCREEN,
2565 PIXMAN_a8r8g8b8, 0x9671ff,
2566 PIXMAN_null, 0x00,
2567 PIXMAN_a2r2g2b2, 0x43
2568 },
2569 { PIXMAN_OP_LIGHTEN,
2570 PIXMAN_a2r2g2b2, 0x83,
2571 PIXMAN_null, 0x00,
2572 PIXMAN_r5g6b5, 0xff
2573 },
2574 { PIXMAN_OP_OVERLAY,
2575 PIXMAN_r3g3b2, 0x0,
2576 PIXMAN_null, 0x00,
2577 PIXMAN_a2r2g2b2, 0x97
2578 },
2579 { PIXMAN_OP_SOFT_LIGHT,
2580 PIXMAN_r5g6b5, 0xb900,
2581 PIXMAN_null, 0x00,
2582 PIXMAN_a8r8g8b8, 0x6800ff00
2583 },
2584 { PIXMAN_OP_OVERLAY,
2585 PIXMAN_a4r4g4b4, 0xff,
2586 PIXMAN_null, 0x00,
2587 PIXMAN_r3g3b2, 0x8e
2588 },
2589 { PIXMAN_OP_SOFT_LIGHT,
2590 PIXMAN_a4r4g4b4, 0xff00,
2591 PIXMAN_null, 0x00,
2592 PIXMAN_a2r2g2b2, 0xbc
2593 },
2594 { PIXMAN_OP_DIFFERENCE,
2595 PIXMAN_r5g6b5, 0xfffe,
2596 PIXMAN_null, 0x00,
2597 PIXMAN_a4r4g4b4, 0x90
2598 },
2599 { PIXMAN_OP_LIGHTEN,
2600 PIXMAN_r3g3b2, 0xff,
2601 PIXMAN_null, 0x00,
2602 PIXMAN_a8r8g8b8, 0xc35f
2603 },
2604 { PIXMAN_OP_EXCLUSION,
2605 PIXMAN_a2r2g2b2, 0xff,
2606 PIXMAN_null, 0x00,
2607 PIXMAN_a4r4g4b4, 0x39ff
2608 },
2609 { PIXMAN_OP_LIGHTEN,
2610 PIXMAN_a2r2g2b2, 0x1e,
2611 PIXMAN_null, 0x00,
2612 PIXMAN_a4r4g4b4, 0xbaff
2613 },
2614 { PIXMAN_OP_LIGHTEN,
2615 PIXMAN_a8r8g8b8, 0xb4ffff26,
2616 PIXMAN_null, 0x00,
2617 PIXMAN_r5g6b5, 0xff
2618 },
2619 { PIXMAN_OP_COLOR_DODGE,
2620 PIXMAN_a4r4g4b4, 0xe3ff,
2621 PIXMAN_null, 0x00,
2622 PIXMAN_a4r4g4b4, 0x878b
2623 },
2624 { PIXMAN_OP_OVERLAY,
2625 PIXMAN_a8r8g8b8, 0xff700044,
2626 PIXMAN_null, 0x00,
2627 PIXMAN_a2r2g2b2, 0x6
2628 },
2629 { PIXMAN_OP_DARKEN,
2630 PIXMAN_a2r2g2b2, 0xb6,
2631 PIXMAN_null, 0x00,
2632 PIXMAN_a4r4g4b4, 0xcd00
2633 },
2634 { PIXMAN_OP_HARD_LIGHT,
2635 PIXMAN_a2r2g2b2, 0xfe,
2636 PIXMAN_null, 0x00,
2637 PIXMAN_a2r2g2b2, 0x12
2638 },
2639 { PIXMAN_OP_LIGHTEN,
2640 PIXMAN_a8r8g8b8, 0xb1ff006c,
2641 PIXMAN_null, 0x00,
2642 PIXMAN_a4r4g4b4, 0xff7c
2643 },
2644 { PIXMAN_OP_HARD_LIGHT,
2645 PIXMAN_r3g3b2, 0x4e,
2646 PIXMAN_null, 0x00,
2647 PIXMAN_a2r2g2b2, 0x3c
2648 },
2649 { PIXMAN_OP_EXCLUSION,
2650 PIXMAN_r5g6b5, 0xffff,
2651 PIXMAN_null, 0x00,
2652 PIXMAN_a4r4g4b4, 0x1968
2653 },
2654 { PIXMAN_OP_COLOR_BURN,
2655 PIXMAN_r3g3b2, 0xe7,
2656 PIXMAN_null, 0x00,
2657 PIXMAN_a8r8g8b8, 0x8cced6ac
2658 },
2659 { PIXMAN_OP_SOFT_LIGHT,
2660 PIXMAN_a4r4g4b4, 0xa500,
2661 PIXMAN_null, 0x00,
2662 PIXMAN_a8r8g8b8, 0x1bff009d
2663 },
2664 { PIXMAN_OP_DIFFERENCE,
2665 PIXMAN_r5g6b5, 0x45ff,
2666 PIXMAN_null, 0x00,
2667 PIXMAN_a2r2g2b2, 0x32
2668 },
2669 { PIXMAN_OP_OVERLAY,
2670 PIXMAN_a2r2g2b2, 0x18,
2671 PIXMAN_null, 0x00,
2672 PIXMAN_r5g6b5, 0xdc00
2673 },
2674 { PIXMAN_OP_EXCLUSION,
2675 PIXMAN_a4r4g4b4, 0x4247,
2676 PIXMAN_null, 0x00,
2677 PIXMAN_a8r8g8b8, 0xd8ffff
2678 },
2679 { PIXMAN_OP_EXCLUSION,
2680 PIXMAN_r5g6b5, 0xff00,
2681 PIXMAN_null, 0x00,
2682 PIXMAN_a2r2g2b2, 0x79
2683 },
2684 { PIXMAN_OP_COLOR_BURN,
2685 PIXMAN_r3g3b2, 0xf,
2686 PIXMAN_null, 0x00,
2687 PIXMAN_a8r8g8b8, 0x9fff00ff
2688 },
2689 { PIXMAN_OP_EXCLUSION,
2690 PIXMAN_a2r2g2b2, 0x93,
2691 PIXMAN_null, 0x00,
2692 PIXMAN_a4r4g4b4, 0xff
2693 },
2694 { PIXMAN_OP_LIGHTEN,
2695 PIXMAN_a2r2g2b2, 0xa3,
2696 PIXMAN_null, 0x00,
2697 PIXMAN_r3g3b2, 0xca
2698 },
2699 { PIXMAN_OP_DIFFERENCE,
2700 PIXMAN_r3g3b2, 0xe0,
2701 PIXMAN_null, 0x00,
2702 PIXMAN_a2r2g2b2, 0x39
2703 },
2704 { PIXMAN_OP_HARD_LIGHT,
2705 PIXMAN_r3g3b2, 0x16,
2706 PIXMAN_null, 0x00,
2707 PIXMAN_a8r8g8b8, 0x98ffff
2708 },
2709 { PIXMAN_OP_LIGHTEN,
2710 PIXMAN_r3g3b2, 0x96,
2711 PIXMAN_null, 0x00,
2712 PIXMAN_a8r8g8b8, 0x225f6c
2713 },
2714 { PIXMAN_OP_HARD_LIGHT,
2715 PIXMAN_a4r4g4b4, 0x12c7,
2716 PIXMAN_null, 0x00,
2717 PIXMAN_a4r4g4b4, 0xb100
2718 },
2719 { PIXMAN_OP_LIGHTEN,
2720 PIXMAN_a8r8g8b8, 0xffda91,
2721 PIXMAN_null, 0x00,
2722 PIXMAN_r3g3b2, 0x6a
2723 },
2724 { PIXMAN_OP_EXCLUSION,
2725 PIXMAN_a8r8g8b8, 0xfff8,
2726 PIXMAN_null, 0x00,
2727 PIXMAN_r3g3b2, 0xff
2728 },
2729 { PIXMAN_OP_SOFT_LIGHT,
2730 PIXMAN_a2r2g2b2, 0xff,
2731 PIXMAN_null, 0x00,
2732 PIXMAN_a8r8g8b8, 0xf0ff48ca
2733 },
2734 { PIXMAN_OP_HARD_LIGHT,
2735 PIXMAN_r5g6b5, 0xf1ff,
2736 PIXMAN_r5g6b5, 0x6eff,
2737 PIXMAN_a8r8g8b8, 0xffffff,
2738 },
2739 { PIXMAN_OP_HARD_LIGHT,
2740 PIXMAN_r5g6b5, 0xf1ff,
2741 PIXMAN_a8, 0xdf,
2742 PIXMAN_a8r8g8b8, 0xffffff,
2743 },
2744 { PIXMAN_OP_HARD_LIGHT,
2745 PIXMAN_r5g6b5, 0xf1ff,
2746 PIXMAN_null, 0x00,
2747 PIXMAN_a8r8g8b8, 0xffffff,
2748 },
2749 { PIXMAN_OP_HARD_LIGHT,
2750 PIXMAN_r5g6b5, 0xb867,
2751 PIXMAN_a4r4g4b4, 0x82d9,
2752 PIXMAN_a8r8g8b8, 0xffc5,
2753 },
2754 { PIXMAN_OP_HARD_LIGHT,
2755 PIXMAN_r5g6b5, 0xa9f5,
2756 PIXMAN_r5g6b5, 0xadff,
2757 PIXMAN_a8r8g8b8, 0xffff00,
2758 },
2759 { PIXMAN_OP_HARD_LIGHT,
2760 PIXMAN_r5g6b5, 0x4900,
2761 PIXMAN_r5g6b5, 0x865c,
2762 PIXMAN_a8r8g8b8, 0xebff,
2763 },
2764 { PIXMAN_OP_HARD_LIGHT,
2765 PIXMAN_r5g6b5, 0xd9ff,
2766 PIXMAN_a8r8g8b8, 0xffffffff,
2767 PIXMAN_a8r8g8b8, 0x8ff0d,
2768 },
2769 { PIXMAN_OP_HARD_LIGHT,
2770 PIXMAN_r5g6b5, 0x41ff,
2771 PIXMAN_a4r4g4b4, 0xcff,
2772 PIXMAN_a8r8g8b8, 0xe1ff00,
2773 },
2774 { PIXMAN_OP_HARD_LIGHT,
2775 PIXMAN_r5g6b5, 0x91ff,
2776 PIXMAN_a2r2g2b2, 0xf3,
2777 PIXMAN_a8r8g8b8, 0xe4ffb4,
2778 },
2779 { PIXMAN_OP_HARD_LIGHT,
2780 PIXMAN_r5g6b5, 0xb9ff,
2781 PIXMAN_a2r2g2b2, 0xff,
2782 PIXMAN_a8r8g8b8, 0xffff,
2783 },
2784 { PIXMAN_OP_OVERLAY,
2785 PIXMAN_a8r8g8b8, 0x473affff,
2786 PIXMAN_r5g6b5, 0x2b00,
2787 PIXMAN_r5g6b5, 0x1ff,
2788 },
2789 { PIXMAN_OP_OVERLAY,
2790 PIXMAN_a8r8g8b8, 0xe4ff,
2791 PIXMAN_r3g3b2, 0xff,
2792 PIXMAN_r5g6b5, 0x89ff,
2793 },
2794 };
2795
2796 static void
fill(pixman_image_t * image,uint32_t pixel)2797 fill (pixman_image_t *image, uint32_t pixel)
2798 {
2799 uint8_t *data = (uint8_t *)pixman_image_get_data (image);
2800 int bytes_per_pixel = PIXMAN_FORMAT_BPP (pixman_image_get_format (image)) / 8;
2801 int n_bytes = pixman_image_get_stride (image) * pixman_image_get_height (image);
2802 int i;
2803
2804 switch (bytes_per_pixel)
2805 {
2806 case 4:
2807 for (i = 0; i < n_bytes / 4; ++i)
2808 ((uint32_t *)data)[i] = pixel;
2809 break;
2810
2811 case 2:
2812 pixel &= 0xffff;
2813 for (i = 0; i < n_bytes / 2; ++i)
2814 ((uint16_t *)data)[i] = pixel;
2815 break;
2816
2817 case 1:
2818 pixel &= 0xff;
2819 for (i = 0; i < n_bytes; ++i)
2820 ((uint8_t *)data)[i] = pixel;
2821 break;
2822
2823 default:
2824 assert (0);
2825 break;
2826 }
2827 }
2828
2829 static uint32_t
access(pixman_image_t * image,int x,int y)2830 access (pixman_image_t *image, int x, int y)
2831 {
2832 int bytes_per_pixel;
2833 int stride;
2834 uint32_t result;
2835 uint8_t *location;
2836
2837 if (x < 0 || x >= image->bits.width || y < 0 || y >= image->bits.height)
2838 return 0;
2839
2840 bytes_per_pixel = PIXMAN_FORMAT_BPP (image->bits.format) / 8;
2841 stride = image->bits.rowstride * 4;
2842
2843 location = (uint8_t *)image->bits.bits + y * stride + x * bytes_per_pixel;
2844
2845 if (bytes_per_pixel == 4)
2846 result = *(uint32_t *)location;
2847 else if (bytes_per_pixel == 2)
2848 result = *(uint16_t *)location;
2849 else if (bytes_per_pixel == 1)
2850 result = *(uint8_t *)location;
2851 else
2852 assert (0);
2853
2854 return result;
2855 }
2856
2857 static pixman_bool_t
verify(int test_no,const pixel_combination_t * combination,int size,pixman_bool_t component_alpha)2858 verify (int test_no, const pixel_combination_t *combination, int size,
2859 pixman_bool_t component_alpha)
2860 {
2861 pixman_image_t *src, *mask, *dest;
2862 pixel_checker_t src_checker, mask_checker, dest_checker;
2863 color_t source_color, mask_color, dest_color, reference_color;
2864 pixman_bool_t have_mask = (combination->mask_format != PIXMAN_null);
2865 pixman_bool_t result = TRUE;
2866 int i, j;
2867
2868 /* Compute reference color */
2869 pixel_checker_init (&src_checker, combination->src_format);
2870 if (have_mask)
2871 pixel_checker_init (&mask_checker, combination->mask_format);
2872 pixel_checker_init (&dest_checker, combination->dest_format);
2873
2874 pixel_checker_convert_pixel_to_color (
2875 &src_checker, combination->src_pixel, &source_color);
2876 if (combination->mask_format != PIXMAN_null)
2877 {
2878 pixel_checker_convert_pixel_to_color (
2879 &mask_checker, combination->mask_pixel, &mask_color);
2880 }
2881 pixel_checker_convert_pixel_to_color (
2882 &dest_checker, combination->dest_pixel, &dest_color);
2883
2884 do_composite (combination->op,
2885 &source_color,
2886 have_mask? &mask_color : NULL,
2887 &dest_color,
2888 &reference_color, component_alpha);
2889
2890 src = pixman_image_create_bits (
2891 combination->src_format, size, size, NULL, -1);
2892 if (have_mask)
2893 {
2894 mask = pixman_image_create_bits (
2895 combination->mask_format, size, size, NULL, -1);
2896
2897 pixman_image_set_component_alpha (mask, component_alpha);
2898 }
2899 dest = pixman_image_create_bits (
2900 combination->dest_format, size, size, NULL, -1);
2901
2902 fill (src, combination->src_pixel);
2903 if (have_mask)
2904 fill (mask, combination->mask_pixel);
2905 fill (dest, combination->dest_pixel);
2906
2907 pixman_image_composite32 (
2908 combination->op, src,
2909 have_mask ? mask : NULL,
2910 dest, 0, 0, 0, 0, 0, 0, size, size);
2911
2912 for (j = 0; j < size; ++j)
2913 {
2914 for (i = 0; i < size; ++i)
2915 {
2916 uint32_t computed = access (dest, i, j);
2917 int32_t a, r, g, b;
2918
2919 if (!pixel_checker_check (&dest_checker, computed, &reference_color))
2920 {
2921 printf ("----------- Test %d failed ----------\n", test_no);
2922
2923 printf (" operator: %s (%s)\n", operator_name (combination->op),
2924 have_mask? component_alpha ? "component alpha" : "unified alpha" : "no mask");
2925 printf (" src format: %s\n", format_name (combination->src_format));
2926 if (have_mask != PIXMAN_null)
2927 printf (" mask format: %s\n", format_name (combination->mask_format));
2928 printf (" dest format: %s\n", format_name (combination->dest_format));
2929
2930 printf (" - source ARGB: %f %f %f %f (pixel: %8x)\n",
2931 source_color.a, source_color.r, source_color.g, source_color.b,
2932 combination->src_pixel);
2933 pixel_checker_split_pixel (&src_checker, combination->src_pixel,
2934 &a, &r, &g, &b);
2935 printf (" %8d %8d %8d %8d\n", a, r, g, b);
2936
2937 if (have_mask)
2938 {
2939 printf (" - mask ARGB: %f %f %f %f (pixel: %8x)\n",
2940 mask_color.a, mask_color.r, mask_color.g, mask_color.b,
2941 combination->mask_pixel);
2942 pixel_checker_split_pixel (&mask_checker, combination->mask_pixel,
2943 &a, &r, &g, &b);
2944 printf (" %8d %8d %8d %8d\n", a, r, g, b);
2945 }
2946
2947 printf (" - dest ARGB: %f %f %f %f (pixel: %8x)\n",
2948 dest_color.a, dest_color.r, dest_color.g, dest_color.b,
2949 combination->dest_pixel);
2950 pixel_checker_split_pixel (&dest_checker, combination->dest_pixel,
2951 &a, &r, &g, &b);
2952 printf (" %8d %8d %8d %8d\n", a, r, g, b);
2953
2954 pixel_checker_split_pixel (&dest_checker, computed, &a, &r, &g, &b);
2955 printf (" - expected ARGB: %f %f %f %f\n",
2956 reference_color.a, reference_color.r, reference_color.g, reference_color.b);
2957
2958 pixel_checker_get_min (&dest_checker, &reference_color, &a, &r, &g, &b);
2959 printf (" min acceptable: %8d %8d %8d %8d\n", a, r, g, b);
2960
2961 pixel_checker_split_pixel (&dest_checker, computed, &a, &r, &g, &b);
2962 printf (" got: %8d %8d %8d %8d (pixel: %8x)\n", a, r, g, b, computed);
2963
2964 pixel_checker_get_max (&dest_checker, &reference_color, &a, &r, &g, &b);
2965 printf (" max acceptable: %8d %8d %8d %8d\n", a, r, g, b);
2966
2967 result = FALSE;
2968 goto done;
2969 }
2970 }
2971 }
2972
2973 done:
2974 pixman_image_unref (src);
2975 pixman_image_unref (dest);
2976
2977 return result;
2978 }
2979
2980 int
main(int argc,char ** argv)2981 main (int argc, char **argv)
2982 {
2983 int result = 0;
2984 int i, j;
2985 int lo, hi;
2986
2987 if (argc > 1)
2988 {
2989 lo = atoi (argv[1]);
2990 hi = lo + 1;
2991 }
2992 else
2993 {
2994 lo = 0;
2995 hi = ARRAY_LENGTH (regressions);
2996 }
2997
2998 for (i = lo; i < hi; ++i)
2999 {
3000 const pixel_combination_t *combination = &(regressions[i]);
3001
3002 for (j = 1; j < 34; ++j)
3003 {
3004 int k, ca;
3005
3006 ca = combination->mask_format == PIXMAN_null ? 1 : 2;
3007
3008 for (k = 0; k < ca; ++k)
3009 {
3010 if (!verify (i, combination, j, k))
3011 {
3012 result = 1;
3013 goto next_regression;
3014 }
3015 }
3016 }
3017
3018 next_regression:
3019 ;
3020 }
3021
3022 return result;
3023 }
3024