diff options
author | Koen Kooi <koen@dominion.thruhere.net> | 2011-05-09 15:48:33 +0200 |
---|---|---|
committer | Koen Kooi <koen@dominion.thruhere.net> | 2011-05-09 15:48:33 +0200 |
commit | 522cd3b82947bfc2841b77143e1c9a94af9c2ac7 (patch) | |
tree | 1b38334380c1c0c02be89b34b506c18887f2bfa5 | |
parent | c28f69fe6274b43286b7583b685f864c745c702e (diff) | |
download | meta-openembedded-522cd3b82947bfc2841b77143e1c9a94af9c2ac7.tar.gz |
pixman: update to 0.22.0 - latest stable
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
10 files changed, 41 insertions, 455 deletions
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0017-add-_pixman_bits_override_accessors.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0017-add-_pixman_bits_override_accessors.patch deleted file mode 100644 index b7983b2081..0000000000 --- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0017-add-_pixman_bits_override_accessors.patch +++ /dev/null | |||
@@ -1,75 +0,0 @@ | |||
1 | From 6593d86679fde724e49efa96b16ca22d9521b288 Mon Sep 17 00:00:00 2001 | ||
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | ||
3 | Date: Thu, 10 Dec 2009 00:51:50 +0200 | ||
4 | Subject: [PATCH 17/24] add _pixman_bits_override_accessors | ||
5 | |||
6 | * from patch ARM: HACK: added NEON optimizations for fetch/store r5g6b5 scanline | ||
7 | * used in | ||
8 | 0005-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch | ||
9 | 0006-ARM-added-NEON-optimizations-for-fetch-store-a8-scan.patch | ||
10 | 0007-ARM-added-NEON-optimizations-for-fetching-x8r8g8b8-s.patch | ||
11 | --- | ||
12 | pixman/pixman-access.c | 23 ++++++++++++++++++++++- | ||
13 | pixman/pixman-private.h | 5 +++++ | ||
14 | 2 files changed, 27 insertions(+), 1 deletions(-) | ||
15 | |||
16 | diff --git a/pixman/pixman-access.c b/pixman/pixman-access.c | ||
17 | index f1ce0ba..b33da29 100644 | ||
18 | --- a/pixman/pixman-access.c | ||
19 | +++ b/pixman/pixman-access.c | ||
20 | @@ -2836,7 +2836,7 @@ typedef struct | ||
21 | store_scanline_ ## format, store_scanline_generic_64 \ | ||
22 | } | ||
23 | |||
24 | -static const format_info_t accessors[] = | ||
25 | +static format_info_t accessors[] = | ||
26 | { | ||
27 | /* 32 bpp formats */ | ||
28 | FORMAT_INFO (a8r8g8b8), | ||
29 | @@ -2978,6 +2978,27 @@ _pixman_bits_image_setup_accessors (bits_image_t *image) | ||
30 | setup_accessors (image); | ||
31 | } | ||
32 | |||
33 | +void | ||
34 | +_pixman_bits_override_accessors (pixman_format_code_t format, | ||
35 | + fetch_scanline_t fetch_func, | ||
36 | + store_scanline_t store_func) | ||
37 | +{ | ||
38 | + format_info_t *info = accessors; | ||
39 | + | ||
40 | + while (info->format != PIXMAN_null) | ||
41 | + { | ||
42 | + if (info->format == format) | ||
43 | + { | ||
44 | + if (fetch_func) | ||
45 | + info->fetch_scanline_32 = fetch_func; | ||
46 | + if (store_func) | ||
47 | + info->store_scanline_32 = store_func; | ||
48 | + return; | ||
49 | + } | ||
50 | + info++; | ||
51 | + } | ||
52 | +} | ||
53 | + | ||
54 | #else | ||
55 | |||
56 | void | ||
57 | diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h | ||
58 | index 1662d2c..c0f9af4 100644 | ||
59 | --- a/pixman/pixman-private.h | ||
60 | +++ b/pixman/pixman-private.h | ||
61 | @@ -256,6 +256,11 @@ _pixman_conical_gradient_iter_init (pixman_image_t *image, | ||
62 | int x, int y, int width, int height, | ||
63 | uint8_t *buffer, iter_flags_t flags); | ||
64 | |||
65 | +void | ||
66 | +_pixman_bits_override_accessors (pixman_format_code_t format, | ||
67 | + fetch_scanline_t fetch_func, | ||
68 | + store_scanline_t store_func); | ||
69 | + | ||
70 | pixman_image_t * | ||
71 | _pixman_image_allocate (void); | ||
72 | |||
73 | -- | ||
74 | 1.7.4.rc2 | ||
75 | |||
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0022-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0022-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch deleted file mode 100644 index 129c1f1bb6..0000000000 --- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0022-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch +++ /dev/null | |||
@@ -1,109 +0,0 @@ | |||
1 | From 60d972afbae8613d700d3a6b3cb107429d7e11c6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | ||
3 | Date: Thu, 10 Dec 2009 00:51:50 +0200 | ||
4 | Subject: [PATCH 22/24] ARM: added NEON optimizations for fetch/store r5g6b5 scanline | ||
5 | |||
6 | --- | ||
7 | pixman/pixman-arm-neon-asm.S | 20 ++++++++++++++++++++ | ||
8 | pixman/pixman-arm-neon.c | 40 ++++++++++++++++++++++++++++++++++++++++ | ||
9 | 2 files changed, 60 insertions(+), 0 deletions(-) | ||
10 | |||
11 | diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S | ||
12 | index cf014fa..25f7bf0 100644 | ||
13 | --- a/pixman/pixman-arm-neon-asm.S | ||
14 | +++ b/pixman/pixman-arm-neon-asm.S | ||
15 | @@ -459,6 +459,16 @@ generate_composite_function \ | ||
16 | pixman_composite_src_8888_0565_process_pixblock_tail, \ | ||
17 | pixman_composite_src_8888_0565_process_pixblock_tail_head | ||
18 | |||
19 | +generate_composite_function_single_scanline \ | ||
20 | + pixman_store_scanline_r5g6b5_asm_neon, 32, 0, 16, \ | ||
21 | + FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \ | ||
22 | + 8, /* number of pixels, processed in a single block */ \ | ||
23 | + default_init, \ | ||
24 | + default_cleanup, \ | ||
25 | + pixman_composite_src_8888_0565_process_pixblock_head, \ | ||
26 | + pixman_composite_src_8888_0565_process_pixblock_tail, \ | ||
27 | + pixman_composite_src_8888_0565_process_pixblock_tail_head | ||
28 | + | ||
29 | /******************************************************************************/ | ||
30 | |||
31 | .macro pixman_composite_src_0565_8888_process_pixblock_head | ||
32 | @@ -494,6 +504,16 @@ generate_composite_function \ | ||
33 | pixman_composite_src_0565_8888_process_pixblock_tail, \ | ||
34 | pixman_composite_src_0565_8888_process_pixblock_tail_head | ||
35 | |||
36 | +generate_composite_function_single_scanline \ | ||
37 | + pixman_fetch_scanline_r5g6b5_asm_neon, 16, 0, 32, \ | ||
38 | + FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \ | ||
39 | + 8, /* number of pixels, processed in a single block */ \ | ||
40 | + default_init, \ | ||
41 | + default_cleanup, \ | ||
42 | + pixman_composite_src_0565_8888_process_pixblock_head, \ | ||
43 | + pixman_composite_src_0565_8888_process_pixblock_tail, \ | ||
44 | + pixman_composite_src_0565_8888_process_pixblock_tail_head | ||
45 | + | ||
46 | /******************************************************************************/ | ||
47 | |||
48 | .macro pixman_composite_add_8_8_process_pixblock_head | ||
49 | diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c | ||
50 | index 74316a8..f773e92 100644 | ||
51 | --- a/pixman/pixman-arm-neon.c | ||
52 | +++ b/pixman/pixman-arm-neon.c | ||
53 | @@ -448,6 +448,42 @@ BIND_COMBINE_U (over) | ||
54 | BIND_COMBINE_U (add) | ||
55 | BIND_COMBINE_U (out_reverse) | ||
56 | |||
57 | +void | ||
58 | +pixman_fetch_scanline_r5g6b5_asm_neon (int width, | ||
59 | + uint32_t *buffer, | ||
60 | + const uint16_t *pixel); | ||
61 | +void | ||
62 | +pixman_store_scanline_r5g6b5_asm_neon (int width, | ||
63 | + uint16_t *pixel, | ||
64 | + const uint32_t *values); | ||
65 | + | ||
66 | +static void | ||
67 | +neon_fetch_scanline_r5g6b5 (pixman_image_t *image, | ||
68 | + int x, | ||
69 | + int y, | ||
70 | + int width, | ||
71 | + uint32_t * buffer, | ||
72 | + const uint32_t *mask) | ||
73 | +{ | ||
74 | + const uint32_t *bits = image->bits.bits + y * image->bits.rowstride; | ||
75 | + const uint16_t *pixel = (const uint16_t *)bits + x; | ||
76 | + | ||
77 | + pixman_fetch_scanline_r5g6b5_asm_neon (width, buffer, pixel); | ||
78 | +} | ||
79 | + | ||
80 | +static void | ||
81 | +neon_store_scanline_r5g6b5 (bits_image_t * image, | ||
82 | + int x, | ||
83 | + int y, | ||
84 | + int width, | ||
85 | + const uint32_t *values) | ||
86 | +{ | ||
87 | + uint32_t *bits = image->bits + image->rowstride * y; | ||
88 | + uint16_t *pixel = ((uint16_t *) bits) + x; | ||
89 | + | ||
90 | + pixman_store_scanline_r5g6b5_asm_neon (width, pixel, values); | ||
91 | +} | ||
92 | + | ||
93 | pixman_implementation_t * | ||
94 | _pixman_implementation_create_arm_neon (void) | ||
95 | { | ||
96 | @@ -463,6 +499,10 @@ _pixman_implementation_create_arm_neon (void) | ||
97 | imp->combine_32[PIXMAN_OP_ADD] = neon_combine_add_u; | ||
98 | imp->combine_32[PIXMAN_OP_OUT_REVERSE] = neon_combine_out_reverse_u; | ||
99 | |||
100 | + _pixman_bits_override_accessors (PIXMAN_r5g6b5, | ||
101 | + neon_fetch_scanline_r5g6b5, | ||
102 | + neon_store_scanline_r5g6b5); | ||
103 | + | ||
104 | imp->blt = arm_neon_blt; | ||
105 | imp->fill = arm_neon_fill; | ||
106 | |||
107 | -- | ||
108 | 1.6.6.1 | ||
109 | |||
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0023-ARM-added-NEON-optimizations-for-fetch-store-a8-scan.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0023-ARM-added-NEON-optimizations-for-fetch-store-a8-scan.patch deleted file mode 100644 index 7724f5433e..0000000000 --- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0023-ARM-added-NEON-optimizations-for-fetch-store-a8-scan.patch +++ /dev/null | |||
@@ -1,148 +0,0 @@ | |||
1 | From cc99d8d6fcbabd7f9f3ed99e65c78a2fb71792fa Mon Sep 17 00:00:00 2001 | ||
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | ||
3 | Date: Thu, 23 Sep 2010 21:10:56 +0300 | ||
4 | Subject: [PATCH 23/24] ARM: added NEON optimizations for fetch/store a8 scanline | ||
5 | |||
6 | --- | ||
7 | pixman/pixman-arm-neon-asm.S | 64 ++++++++++++++++++++++++++++++++++++++++++ | ||
8 | pixman/pixman-arm-neon.c | 42 +++++++++++++++++++++++++++ | ||
9 | 2 files changed, 106 insertions(+), 0 deletions(-) | ||
10 | |||
11 | diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S | ||
12 | index 25f7bf0..439b06b 100644 | ||
13 | --- a/pixman/pixman-arm-neon-asm.S | ||
14 | +++ b/pixman/pixman-arm-neon-asm.S | ||
15 | @@ -418,6 +418,70 @@ generate_composite_function \ | ||
16 | |||
17 | /******************************************************************************/ | ||
18 | |||
19 | +.macro pixman_composite_src_8_8888_process_pixblock_head | ||
20 | + /* This is tricky part: we can't set these values just once in 'init' macro | ||
21 | + * because leading/trailing pixels handling part uses VZIP.8 instructions, | ||
22 | + * and they operate on values in-place and destroy original registers | ||
23 | + * content. Think about it like VST4.8 instruction corrupting NEON | ||
24 | + * registers after write in 'tail_head' macro. Except that 'tail_head' | ||
25 | + * macro itself actually does not need these extra VMOVs because it uses | ||
26 | + * real VST4.8 instruction. | ||
27 | + */ | ||
28 | + vmov.u8 q0, #0 | ||
29 | + vmov.u8 d2, #0 | ||
30 | +.endm | ||
31 | + | ||
32 | +.macro pixman_composite_src_8_8888_process_pixblock_tail | ||
33 | +.endm | ||
34 | + | ||
35 | +.macro pixman_composite_src_8_8888_process_pixblock_tail_head | ||
36 | + vst4.8 {d0, d1, d2, d3}, [DST_W, :128]! | ||
37 | + vld1.8 {d3}, [SRC]! | ||
38 | +.endm | ||
39 | + | ||
40 | +generate_composite_function_single_scanline \ | ||
41 | + pixman_fetch_scanline_a8_asm_neon, 8, 0, 32, \ | ||
42 | + FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \ | ||
43 | + 8, /* number of pixels, processed in a single block */ \ | ||
44 | + default_init, \ | ||
45 | + default_cleanup, \ | ||
46 | + pixman_composite_src_8_8888_process_pixblock_head, \ | ||
47 | + pixman_composite_src_8_8888_process_pixblock_tail, \ | ||
48 | + pixman_composite_src_8_8888_process_pixblock_tail_head, \ | ||
49 | + 0, /* dst_w_basereg */ \ | ||
50 | + 0, /* dst_r_basereg */ \ | ||
51 | + 3, /* src_basereg */ \ | ||
52 | + 0 /* mask_basereg */ | ||
53 | + | ||
54 | +/******************************************************************************/ | ||
55 | + | ||
56 | +.macro pixman_composite_src_8888_8_process_pixblock_head | ||
57 | +.endm | ||
58 | + | ||
59 | +.macro pixman_composite_src_8888_8_process_pixblock_tail | ||
60 | +.endm | ||
61 | + | ||
62 | +.macro pixman_composite_src_8888_8_process_pixblock_tail_head | ||
63 | + vst1.8 {d3}, [DST_W, :64]! | ||
64 | + vld4.8 {d0, d1, d2, d3}, [SRC]! | ||
65 | +.endm | ||
66 | + | ||
67 | +generate_composite_function_single_scanline \ | ||
68 | + pixman_store_scanline_a8_asm_neon, 32, 0, 8, \ | ||
69 | + FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \ | ||
70 | + 8, /* number of pixels, processed in a single block */ \ | ||
71 | + default_init, \ | ||
72 | + default_cleanup, \ | ||
73 | + pixman_composite_src_8888_8_process_pixblock_head, \ | ||
74 | + pixman_composite_src_8888_8_process_pixblock_tail, \ | ||
75 | + pixman_composite_src_8888_8_process_pixblock_tail_head, \ | ||
76 | + 3, /* dst_w_basereg */ \ | ||
77 | + 0, /* dst_r_basereg */ \ | ||
78 | + 0, /* src_basereg */ \ | ||
79 | + 0 /* mask_basereg */ | ||
80 | + | ||
81 | +/******************************************************************************/ | ||
82 | + | ||
83 | .macro pixman_composite_src_8888_0565_process_pixblock_head | ||
84 | vshll.u8 q8, d1, #8 | ||
85 | vshll.u8 q14, d2, #8 | ||
86 | diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c | ||
87 | index f773e92..55219b3 100644 | ||
88 | --- a/pixman/pixman-arm-neon.c | ||
89 | +++ b/pixman/pixman-arm-neon.c | ||
90 | @@ -484,6 +484,45 @@ neon_store_scanline_r5g6b5 (bits_image_t * image, | ||
91 | pixman_store_scanline_r5g6b5_asm_neon (width, pixel, values); | ||
92 | } | ||
93 | |||
94 | +void | ||
95 | +pixman_fetch_scanline_a8_asm_neon (int width, | ||
96 | + uint32_t *buffer, | ||
97 | + const uint8_t *pixel); | ||
98 | + | ||
99 | + | ||
100 | +void | ||
101 | +pixman_store_scanline_a8_asm_neon (int width, | ||
102 | + uint8_t *pixel, | ||
103 | + const uint32_t *values); | ||
104 | + | ||
105 | +static void | ||
106 | +neon_fetch_scanline_a8 (pixman_image_t *image, | ||
107 | + int x, | ||
108 | + int y, | ||
109 | + int width, | ||
110 | + uint32_t * buffer, | ||
111 | + const uint32_t *mask) | ||
112 | +{ | ||
113 | + const uint32_t *bits = image->bits.bits + y * image->bits.rowstride; | ||
114 | + const uint8_t *pixel = (const uint8_t *) bits + x; | ||
115 | + | ||
116 | + pixman_fetch_scanline_a8_asm_neon (width, buffer, pixel); | ||
117 | +} | ||
118 | + | ||
119 | +static void | ||
120 | +neon_store_scanline_a8 (bits_image_t * image, | ||
121 | + int x, | ||
122 | + int y, | ||
123 | + int width, | ||
124 | + const uint32_t *values) | ||
125 | +{ | ||
126 | + uint32_t *bits = image->bits + image->rowstride * y; | ||
127 | + uint8_t *pixel = (uint8_t *) bits + x; | ||
128 | + | ||
129 | + pixman_store_scanline_a8_asm_neon (width, pixel, values); | ||
130 | +} | ||
131 | + | ||
132 | + | ||
133 | pixman_implementation_t * | ||
134 | _pixman_implementation_create_arm_neon (void) | ||
135 | { | ||
136 | @@ -502,6 +541,9 @@ _pixman_implementation_create_arm_neon (void) | ||
137 | _pixman_bits_override_accessors (PIXMAN_r5g6b5, | ||
138 | neon_fetch_scanline_r5g6b5, | ||
139 | neon_store_scanline_r5g6b5); | ||
140 | + _pixman_bits_override_accessors (PIXMAN_a8, | ||
141 | + neon_fetch_scanline_a8, | ||
142 | + neon_store_scanline_a8); | ||
143 | |||
144 | imp->blt = arm_neon_blt; | ||
145 | imp->fill = arm_neon_fill; | ||
146 | -- | ||
147 | 1.6.6.1 | ||
148 | |||
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0024-ARM-added-NEON-optimizations-for-fetching-x8r8g8b8-s.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0024-ARM-added-NEON-optimizations-for-fetching-x8r8g8b8-s.patch deleted file mode 100644 index 8253f41b8f..0000000000 --- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0024-ARM-added-NEON-optimizations-for-fetching-x8r8g8b8-s.patch +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | From cf3b8fdc53144ff62c4054996559d3a1a4d62b75 Mon Sep 17 00:00:00 2001 | ||
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | ||
3 | Date: Fri, 24 Sep 2010 18:22:44 +0300 | ||
4 | Subject: [PATCH 24/24] ARM: added NEON optimizations for fetching x8r8g8b8 scanline | ||
5 | |||
6 | --- | ||
7 | pixman/pixman-arm-neon-asm.S | 14 ++++++++++++++ | ||
8 | pixman/pixman-arm-neon.c | 21 +++++++++++++++++++++ | ||
9 | 2 files changed, 35 insertions(+), 0 deletions(-) | ||
10 | |||
11 | diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S | ||
12 | index 439b06b..3e0dcfe 100644 | ||
13 | --- a/pixman/pixman-arm-neon-asm.S | ||
14 | +++ b/pixman/pixman-arm-neon-asm.S | ||
15 | @@ -1257,6 +1257,20 @@ generate_composite_function \ | ||
16 | 0, /* src_basereg */ \ | ||
17 | 0 /* mask_basereg */ | ||
18 | |||
19 | +generate_composite_function_single_scanline \ | ||
20 | + pixman_fetch_scanline_x888_asm_neon, 32, 0, 32, \ | ||
21 | + FLAG_DST_WRITEONLY, \ | ||
22 | + 8, /* number of pixels, processed in a single block */ \ | ||
23 | + pixman_composite_src_x888_8888_init, \ | ||
24 | + default_cleanup, \ | ||
25 | + pixman_composite_src_x888_8888_process_pixblock_head, \ | ||
26 | + pixman_composite_src_x888_8888_process_pixblock_tail, \ | ||
27 | + pixman_composite_src_x888_8888_process_pixblock_tail_head, \ | ||
28 | + 0, /* dst_w_basereg */ \ | ||
29 | + 0, /* dst_r_basereg */ \ | ||
30 | + 0, /* src_basereg */ \ | ||
31 | + 0 /* mask_basereg */ | ||
32 | + | ||
33 | /******************************************************************************/ | ||
34 | |||
35 | .macro pixman_composite_over_n_8_8888_process_pixblock_head | ||
36 | diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c | ||
37 | index 55219b3..8cef414 100644 | ||
38 | --- a/pixman/pixman-arm-neon.c | ||
39 | +++ b/pixman/pixman-arm-neon.c | ||
40 | @@ -522,6 +522,24 @@ neon_store_scanline_a8 (bits_image_t * image, | ||
41 | pixman_store_scanline_a8_asm_neon (width, pixel, values); | ||
42 | } | ||
43 | |||
44 | +void | ||
45 | +pixman_fetch_scanline_x888_asm_neon (int width, | ||
46 | + uint32_t *buffer, | ||
47 | + const uint32_t *pixel); | ||
48 | + | ||
49 | +static void | ||
50 | +neon_fetch_scanline_x888 (pixman_image_t *image, | ||
51 | + int x, | ||
52 | + int y, | ||
53 | + int width, | ||
54 | + uint32_t * buffer, | ||
55 | + const uint32_t *mask) | ||
56 | +{ | ||
57 | + const uint32_t *bits = image->bits.bits + y * image->bits.rowstride; | ||
58 | + const uint32_t *pixel = (const uint32_t *) bits + x; | ||
59 | + | ||
60 | + pixman_fetch_scanline_x888_asm_neon (width, buffer, pixel); | ||
61 | +} | ||
62 | |||
63 | pixman_implementation_t * | ||
64 | _pixman_implementation_create_arm_neon (void) | ||
65 | @@ -544,6 +562,9 @@ _pixman_implementation_create_arm_neon (void) | ||
66 | _pixman_bits_override_accessors (PIXMAN_a8, | ||
67 | neon_fetch_scanline_a8, | ||
68 | neon_store_scanline_a8); | ||
69 | + _pixman_bits_override_accessors (PIXMAN_x8r8g8b8, | ||
70 | + neon_fetch_scanline_x888, | ||
71 | + NULL); | ||
72 | |||
73 | imp->blt = arm_neon_blt; | ||
74 | imp->fill = arm_neon_fill; | ||
75 | -- | ||
76 | 1.6.6.1 | ||
77 | |||
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0018-Generic-C-implementation-of-pixman_blt-with-overlapp.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch index 5b1c1089ed..d925930898 100644 --- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0018-Generic-C-implementation-of-pixman_blt-with-overlapp.patch +++ b/meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch | |||
@@ -1,7 +1,7 @@ | |||
1 | From 8e8b2809b505486001dc213becab0d50bfd96c1b Mon Sep 17 00:00:00 2001 | 1 | From e17f676f1f42239fb4304d75191f373bb06e8fc0 Mon Sep 17 00:00:00 2001 |
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | 2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> |
3 | Date: Tue, 16 Mar 2010 16:55:28 +0100 | 3 | Date: Tue, 16 Mar 2010 16:55:28 +0100 |
4 | Subject: [PATCH 18/24] Generic C implementation of pixman_blt with overlapping support | 4 | Subject: [PATCH 1/4] Generic C implementation of pixman_blt with overlapping support |
5 | 5 | ||
6 | Uses memcpy/memmove functions to copy pixels, can handle the | 6 | Uses memcpy/memmove functions to copy pixels, can handle the |
7 | case when both source and destination areas are in the same | 7 | case when both source and destination areas are in the same |
@@ -19,10 +19,10 @@ unrealistic case anyway). | |||
19 | 2 files changed, 61 insertions(+), 3 deletions(-) | 19 | 2 files changed, 61 insertions(+), 3 deletions(-) |
20 | 20 | ||
21 | diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c | 21 | diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c |
22 | index 4d234a0..c4d2c14 100644 | 22 | index 727affc..fa448f7 100644 |
23 | --- a/pixman/pixman-general.c | 23 | --- a/pixman/pixman-general.c |
24 | +++ b/pixman/pixman-general.c | 24 | +++ b/pixman/pixman-general.c |
25 | @@ -280,9 +280,24 @@ general_blt (pixman_implementation_t *imp, | 25 | @@ -238,9 +238,24 @@ general_blt (pixman_implementation_t *imp, |
26 | int width, | 26 | int width, |
27 | int height) | 27 | int height) |
28 | { | 28 | { |
@@ -51,7 +51,7 @@ index 4d234a0..c4d2c14 100644 | |||
51 | 51 | ||
52 | static pixman_bool_t | 52 | static pixman_bool_t |
53 | diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h | 53 | diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h |
54 | index 969dfab..352bceb 100644 | 54 | index 60060a9..5369ad9 100644 |
55 | --- a/pixman/pixman-private.h | 55 | --- a/pixman/pixman-private.h |
56 | +++ b/pixman/pixman-private.h | 56 | +++ b/pixman/pixman-private.h |
57 | @@ -10,6 +10,7 @@ | 57 | @@ -10,6 +10,7 @@ |
@@ -62,7 +62,7 @@ index 969dfab..352bceb 100644 | |||
62 | #include <assert.h> | 62 | #include <assert.h> |
63 | #include <stdio.h> | 63 | #include <stdio.h> |
64 | #include <string.h> | 64 | #include <string.h> |
65 | @@ -869,4 +870,46 @@ void pixman_timer_register (pixman_timer_t *timer); | 65 | @@ -899,4 +900,46 @@ void pixman_timer_register (pixman_timer_t *timer); |
66 | 66 | ||
67 | #endif /* PIXMAN_TIMERS */ | 67 | #endif /* PIXMAN_TIMERS */ |
68 | 68 | ||
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0019-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch index 5193d38f74..45de8ec7ee 100644 --- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0019-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch +++ b/meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch | |||
@@ -1,14 +1,14 @@ | |||
1 | From f5a54f7d5eb1169bc79f0e445e2998e98080ef13 Mon Sep 17 00:00:00 2001 | 1 | From 6d8b811414c73df7f75cc192e3b1f1d777615bdc Mon Sep 17 00:00:00 2001 |
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | 2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> |
3 | Date: Thu, 22 Oct 2009 05:45:47 +0300 | 3 | Date: Thu, 22 Oct 2009 05:45:47 +0300 |
4 | Subject: [PATCH 19/24] Support of overlapping src/dst for pixman_blt_mmx | 4 | Subject: [PATCH 2/4] Support of overlapping src/dst for pixman_blt_mmx |
5 | 5 | ||
6 | --- | 6 | --- |
7 | pixman/pixman-mmx.c | 55 +++++++++++++++++++++++++++++--------------------- | 7 | pixman/pixman-mmx.c | 55 +++++++++++++++++++++++++++++--------------------- |
8 | 1 files changed, 32 insertions(+), 23 deletions(-) | 8 | 1 files changed, 32 insertions(+), 23 deletions(-) |
9 | 9 | ||
10 | diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c | 10 | diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c |
11 | index 34637a4..f9dd473 100644 | 11 | index 0272347..5bcbd0e 100644 |
12 | --- a/pixman/pixman-mmx.c | 12 | --- a/pixman/pixman-mmx.c |
13 | +++ b/pixman/pixman-mmx.c | 13 | +++ b/pixman/pixman-mmx.c |
14 | @@ -2996,34 +2996,43 @@ pixman_blt_mmx (uint32_t *src_bits, | 14 | @@ -2996,34 +2996,43 @@ pixman_blt_mmx (uint32_t *src_bits, |
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0020-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch index f5c0e12f24..7bb2fb60ff 100644 --- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0020-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch +++ b/meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch | |||
@@ -1,17 +1,17 @@ | |||
1 | From c8755294fa9ea396f7113370230b17c424a93be1 Mon Sep 17 00:00:00 2001 | 1 | From c9ca9dc0f345fa3e2e0f16b2627150e0b696fd7a Mon Sep 17 00:00:00 2001 |
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | 2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> |
3 | Date: Thu, 22 Oct 2009 05:45:54 +0300 | 3 | Date: Thu, 22 Oct 2009 05:45:54 +0300 |
4 | Subject: [PATCH 20/24] Support of overlapping src/dst for pixman_blt_sse2 | 4 | Subject: [PATCH 3/4] Support of overlapping src/dst for pixman_blt_sse2 |
5 | 5 | ||
6 | --- | 6 | --- |
7 | pixman/pixman-sse2.c | 55 +++++++++++++++++++++++++++++-------------------- | 7 | pixman/pixman-sse2.c | 55 +++++++++++++++++++++++++++++-------------------- |
8 | 1 files changed, 32 insertions(+), 23 deletions(-) | 8 | 1 files changed, 32 insertions(+), 23 deletions(-) |
9 | 9 | ||
10 | diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c | 10 | diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c |
11 | index 5907de0..25015ae 100644 | 11 | index 533b858..9fa7191 100644 |
12 | --- a/pixman/pixman-sse2.c | 12 | --- a/pixman/pixman-sse2.c |
13 | +++ b/pixman/pixman-sse2.c | 13 | +++ b/pixman/pixman-sse2.c |
14 | @@ -5027,34 +5027,43 @@ pixman_blt_sse2 (uint32_t *src_bits, | 14 | @@ -4691,34 +4691,43 @@ pixman_blt_sse2 (uint32_t *src_bits, |
15 | { | 15 | { |
16 | uint8_t * src_bytes; | 16 | uint8_t * src_bytes; |
17 | uint8_t * dst_bytes; | 17 | uint8_t * dst_bytes; |
@@ -77,7 +77,7 @@ index 5907de0..25015ae 100644 | |||
77 | } | 77 | } |
78 | 78 | ||
79 | while (height--) | 79 | while (height--) |
80 | @@ -5064,7 +5073,7 @@ pixman_blt_sse2 (uint32_t *src_bits, | 80 | @@ -4728,7 +4737,7 @@ pixman_blt_sse2 (uint32_t *src_bits, |
81 | uint8_t *d = dst_bytes; | 81 | uint8_t *d = dst_bytes; |
82 | src_bytes += src_stride; | 82 | src_bytes += src_stride; |
83 | dst_bytes += dst_stride; | 83 | dst_bytes += dst_stride; |
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0021-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch index 0eb9d88eba..6bcc2fa30a 100644 --- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0021-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch +++ b/meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch | |||
@@ -1,17 +1,17 @@ | |||
1 | From 86c8198598ef6d639e656c04644015795cc249aa Mon Sep 17 00:00:00 2001 | 1 | From 604f22b515d4d678df4c301ecec3c7da4987ee16 Mon Sep 17 00:00:00 2001 |
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | 2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> |
3 | Date: Wed, 18 Nov 2009 06:08:48 +0200 | 3 | Date: Wed, 18 Nov 2009 06:08:48 +0200 |
4 | Subject: [PATCH 21/24] Support of overlapping src/dst for pixman_blt_neon | 4 | Subject: [PATCH 4/4] Support of overlapping src/dst for pixman_blt_neon |
5 | 5 | ||
6 | --- | 6 | --- |
7 | pixman/pixman-arm-neon.c | 62 +++++++++++++++++++++++++++++++++++++-------- | 7 | pixman/pixman-arm-neon.c | 62 +++++++++++++++++++++++++++++++++++++-------- |
8 | 1 files changed, 51 insertions(+), 11 deletions(-) | 8 | 1 files changed, 51 insertions(+), 11 deletions(-) |
9 | 9 | ||
10 | diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c | 10 | diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c |
11 | index e3eca2b..74316a8 100644 | 11 | index e5127a6..b67fed9 100644 |
12 | --- a/pixman/pixman-arm-neon.c | 12 | --- a/pixman/pixman-arm-neon.c |
13 | +++ b/pixman/pixman-arm-neon.c | 13 | +++ b/pixman/pixman-arm-neon.c |
14 | @@ -199,26 +199,66 @@ pixman_blt_neon (uint32_t *src_bits, | 14 | @@ -234,26 +234,66 @@ pixman_blt_neon (uint32_t *src_bits, |
15 | int width, | 15 | int width, |
16 | int height) | 16 | int height) |
17 | { | 17 | { |
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman_0.21.4.bb b/meta-oe/recipes-graphics/xorg-lib/pixman_0.21.4.bb deleted file mode 100644 index 237e4efa69..0000000000 --- a/meta-oe/recipes-graphics/xorg-lib/pixman_0.21.4.bb +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | require pixman.inc | ||
2 | |||
3 | SRC_URI[md5sum] = "e50975ace979cd416a505827c15191b4" | ||
4 | SRC_URI[sha256sum] = "57783330ee2f96121dc267b7f25b98356fd09fe9de185cd39e72e906b6444013" | ||
5 | |||
6 | LICENSE = "MIT & MIT-style & Public Domain" | ||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3\ | ||
8 | file://pixman/pixman-matrix.c;endline=25;md5=ba6e8769bfaaee2c41698755af04c4be \ | ||
9 | file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \ | ||
10 | file://pixman/pixman-x64-mmx-emulation.h;beginline=4;endline=9;md5=4e32716f2efaa6c4659222667c339bb8" | ||
11 | |||
12 | PR = "${INC_PR}.0" | ||
13 | |||
14 | SRC_URI += "\ | ||
15 | file://0017-add-_pixman_bits_override_accessors.patch \ | ||
16 | file://0018-Generic-C-implementation-of-pixman_blt-with-overlapp.patch \ | ||
17 | file://0019-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch \ | ||
18 | file://0020-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch \ | ||
19 | file://0021-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch \ | ||
20 | file://0022-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch \ | ||
21 | file://0023-ARM-added-NEON-optimizations-for-fetch-store-a8-scan.patch \ | ||
22 | file://0024-ARM-added-NEON-optimizations-for-fetching-x8r8g8b8-s.patch \ | ||
23 | " | ||
24 | |||
25 | NEON = " --disable-arm-neon " | ||
26 | NEON_armv7a = " " | ||
27 | |||
28 | EXTRA_OECONF = "${NEON} --disable-gtk" | ||
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman_0.22.0.bb b/meta-oe/recipes-graphics/xorg-lib/pixman_0.22.0.bb new file mode 100644 index 0000000000..d256e6812e --- /dev/null +++ b/meta-oe/recipes-graphics/xorg-lib/pixman_0.22.0.bb | |||
@@ -0,0 +1,23 @@ | |||
1 | require pixman.inc | ||
2 | |||
3 | LICENSE = "MIT & MIT-style & Public Domain" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3\ | ||
5 | file://pixman/pixman-matrix.c;endline=25;md5=ba6e8769bfaaee2c41698755af04c4be \ | ||
6 | file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \ | ||
7 | file://pixman/pixman-x64-mmx-emulation.h;beginline=4;endline=9;md5=4e32716f2efaa6c4659222667c339bb8" | ||
8 | |||
9 | PR = "${INC_PR}.0" | ||
10 | |||
11 | SRC_URI = "http://xorg.freedesktop.org/archive/individual/lib/${BPN}-${PV}.tar.gz \ | ||
12 | file://0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch \ | ||
13 | file://0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch \ | ||
14 | file://0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch \ | ||
15 | file://0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch \ | ||
16 | " | ||
17 | SRC_URI[md5sum] = "cb8f3cb5ce2c8d7294f73ecb7021fda6" | ||
18 | SRC_URI[sha256sum] = "6b7622256e43912fb77fd456b0753f407268d450f5990c8f86e7c6f006e30da0" | ||
19 | |||
20 | NEON = " --disable-arm-neon " | ||
21 | NEON_armv7a = " " | ||
22 | |||
23 | EXTRA_OECONF = "${NEON} --disable-gtk" | ||