summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoen Kooi <koen@dominion.thruhere.net>2011-05-09 15:48:33 +0200
committerKoen Kooi <koen@dominion.thruhere.net>2011-05-09 15:48:33 +0200
commit522cd3b82947bfc2841b77143e1c9a94af9c2ac7 (patch)
tree1b38334380c1c0c02be89b34b506c18887f2bfa5
parentc28f69fe6274b43286b7583b685f864c745c702e (diff)
downloadmeta-openembedded-522cd3b82947bfc2841b77143e1c9a94af9c2ac7.tar.gz
pixman: update to 0.22.0 - latest stable
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0017-add-_pixman_bits_override_accessors.patch75
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0022-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch109
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0023-ARM-added-NEON-optimizations-for-fetch-store-a8-scan.patch148
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0024-ARM-added-NEON-optimizations-for-fetching-x8r8g8b8-s.patch77
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch (renamed from meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0018-Generic-C-implementation-of-pixman_blt-with-overlapp.patch)12
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch (renamed from meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0019-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch)6
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch (renamed from meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0020-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch)10
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.22.0/0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch (renamed from meta-oe/recipes-graphics/xorg-lib/pixman-0.21.4/0021-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch)8
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman_0.21.4.bb28
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman_0.22.0.bb23
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 @@
1From 6593d86679fde724e49efa96b16ca22d9521b288 Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Thu, 10 Dec 2009 00:51:50 +0200
4Subject: [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
16diff --git a/pixman/pixman-access.c b/pixman/pixman-access.c
17index 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
57diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h
58index 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--
741.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 @@
1From 60d972afbae8613d700d3a6b3cb107429d7e11c6 Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Thu, 10 Dec 2009 00:51:50 +0200
4Subject: [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
11diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
12index 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
49diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
50index 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--
1081.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 @@
1From cc99d8d6fcbabd7f9f3ed99e65c78a2fb71792fa Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Thu, 23 Sep 2010 21:10:56 +0300
4Subject: [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
11diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
12index 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
86diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
87index 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--
1471.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 @@
1From cf3b8fdc53144ff62c4054996559d3a1a4d62b75 Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Fri, 24 Sep 2010 18:22:44 +0300
4Subject: [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
11diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
12index 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
36diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
37index 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--
761.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 @@
1From 8e8b2809b505486001dc213becab0d50bfd96c1b Mon Sep 17 00:00:00 2001 1From e17f676f1f42239fb4304d75191f373bb06e8fc0 Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com> 2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Tue, 16 Mar 2010 16:55:28 +0100 3Date: Tue, 16 Mar 2010 16:55:28 +0100
4Subject: [PATCH 18/24] Generic C implementation of pixman_blt with overlapping support 4Subject: [PATCH 1/4] Generic C implementation of pixman_blt with overlapping support
5 5
6Uses memcpy/memmove functions to copy pixels, can handle the 6Uses memcpy/memmove functions to copy pixels, can handle the
7case when both source and destination areas are in the same 7case 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
21diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c 21diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
22index 4d234a0..c4d2c14 100644 22index 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
53diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h 53diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h
54index 969dfab..352bceb 100644 54index 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 @@
1From f5a54f7d5eb1169bc79f0e445e2998e98080ef13 Mon Sep 17 00:00:00 2001 1From 6d8b811414c73df7f75cc192e3b1f1d777615bdc Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com> 2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Thu, 22 Oct 2009 05:45:47 +0300 3Date: Thu, 22 Oct 2009 05:45:47 +0300
4Subject: [PATCH 19/24] Support of overlapping src/dst for pixman_blt_mmx 4Subject: [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
10diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c 10diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
11index 34637a4..f9dd473 100644 11index 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 @@
1From c8755294fa9ea396f7113370230b17c424a93be1 Mon Sep 17 00:00:00 2001 1From c9ca9dc0f345fa3e2e0f16b2627150e0b696fd7a Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com> 2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Thu, 22 Oct 2009 05:45:54 +0300 3Date: Thu, 22 Oct 2009 05:45:54 +0300
4Subject: [PATCH 20/24] Support of overlapping src/dst for pixman_blt_sse2 4Subject: [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
10diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c 10diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c
11index 5907de0..25015ae 100644 11index 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 @@
1From 86c8198598ef6d639e656c04644015795cc249aa Mon Sep 17 00:00:00 2001 1From 604f22b515d4d678df4c301ecec3c7da4987ee16 Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com> 2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Wed, 18 Nov 2009 06:08:48 +0200 3Date: Wed, 18 Nov 2009 06:08:48 +0200
4Subject: [PATCH 21/24] Support of overlapping src/dst for pixman_blt_neon 4Subject: [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
10diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c 10diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
11index e3eca2b..74316a8 100644 11index 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 @@
1require pixman.inc
2
3SRC_URI[md5sum] = "e50975ace979cd416a505827c15191b4"
4SRC_URI[sha256sum] = "57783330ee2f96121dc267b7f25b98356fd09fe9de185cd39e72e906b6444013"
5
6LICENSE = "MIT & MIT-style & Public Domain"
7LIC_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
12PR = "${INC_PR}.0"
13
14SRC_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
25NEON = " --disable-arm-neon "
26NEON_armv7a = " "
27
28EXTRA_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 @@
1require pixman.inc
2
3LICENSE = "MIT & MIT-style & Public Domain"
4LIC_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
9PR = "${INC_PR}.0"
10
11SRC_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"
17SRC_URI[md5sum] = "cb8f3cb5ce2c8d7294f73ecb7021fda6"
18SRC_URI[sha256sum] = "6b7622256e43912fb77fd456b0753f407268d450f5990c8f86e7c6f006e30da0"
19
20NEON = " --disable-arm-neon "
21NEON_armv7a = " "
22
23EXTRA_OECONF = "${NEON} --disable-gtk"