summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/xorg-lib/pixman-0.21.2/0015-ARM-added-flags-parameter-to-some-asm-fast-path-wrap.patch
diff options
context:
space:
mode:
authorKoen Kooi <koen@dominion.thruhere.net>2010-12-04 21:40:49 +0100
committerKoen Kooi <koen@dominion.thruhere.net>2010-12-04 21:40:49 +0100
commit39fb00c188032075a0a8298e333e6914bd88e53a (patch)
treeccb10a0b7064862bcce144316b9392614d355b2d /recipes-graphics/xorg-lib/pixman-0.21.2/0015-ARM-added-flags-parameter-to-some-asm-fast-path-wrap.patch
parent1857df74ac9bfec16d0274fe972fda7bb1f99e6b (diff)
downloadmeta-openembedded-39fb00c188032075a0a8298e333e6914bd88e53a.tar.gz
meta-openembedded: import pixman 0.21.2 from OE
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Diffstat (limited to 'recipes-graphics/xorg-lib/pixman-0.21.2/0015-ARM-added-flags-parameter-to-some-asm-fast-path-wrap.patch')
-rw-r--r--recipes-graphics/xorg-lib/pixman-0.21.2/0015-ARM-added-flags-parameter-to-some-asm-fast-path-wrap.patch153
1 files changed, 153 insertions, 0 deletions
diff --git a/recipes-graphics/xorg-lib/pixman-0.21.2/0015-ARM-added-flags-parameter-to-some-asm-fast-path-wrap.patch b/recipes-graphics/xorg-lib/pixman-0.21.2/0015-ARM-added-flags-parameter-to-some-asm-fast-path-wrap.patch
new file mode 100644
index 0000000000..5f2448191d
--- /dev/null
+++ b/recipes-graphics/xorg-lib/pixman-0.21.2/0015-ARM-added-flags-parameter-to-some-asm-fast-path-wrap.patch
@@ -0,0 +1,153 @@
1From af7a69d90ea2b43a4e850870727723d719f09a1c Mon Sep 17 00:00:00 2001
2From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
3Date: Mon, 29 Nov 2010 09:00:46 +0200
4Subject: [PATCH 15/24] ARM: added flags parameter to some asm fast path wrapper macros
5
6Not all types of operations can be skipped when having transparent
7solid source or transparent solid mask. Add an extra flags parameter
8for providing this information to the wrappers.
9---
10 pixman/pixman-arm-common.h | 15 +++++++++------
11 pixman/pixman-arm-neon.c | 26 +++++++++++++-------------
12 pixman/pixman-arm-simd.c | 4 ++--
13 3 files changed, 24 insertions(+), 21 deletions(-)
14
15diff --git a/pixman/pixman-arm-common.h b/pixman/pixman-arm-common.h
16index 2cff6c8..66f448d 100644
17--- a/pixman/pixman-arm-common.h
18+++ b/pixman/pixman-arm-common.h
19@@ -47,6 +47,9 @@
20 * or mask), the corresponding stride argument is unused.
21 */
22
23+#define SKIP_ZERO_SRC 1
24+#define SKIP_ZERO_MASK 2
25+
26 #define PIXMAN_ARM_BIND_FAST_PATH_SRC_DST(cputype, name, \
27 src_type, src_cnt, \
28 dst_type, dst_cnt) \
29@@ -87,7 +90,7 @@ cputype##_composite_##name (pixman_implementation_t *imp, \
30 src_line, src_stride); \
31 }
32
33-#define PIXMAN_ARM_BIND_FAST_PATH_N_DST(cputype, name, \
34+#define PIXMAN_ARM_BIND_FAST_PATH_N_DST(flags, cputype, name, \
35 dst_type, dst_cnt) \
36 void \
37 pixman_composite_##name##_asm_##cputype (int32_t w, \
38@@ -117,7 +120,7 @@ cputype##_composite_##name (pixman_implementation_t *imp, \
39 \
40 src = _pixman_image_get_solid (src_image, dst_image->bits.format); \
41 \
42- if (src == 0) \
43+ if ((flags & SKIP_ZERO_SRC) && src == 0) \
44 return; \
45 \
46 PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, dst_type, \
47@@ -128,7 +131,7 @@ cputype##_composite_##name (pixman_implementation_t *imp, \
48 src); \
49 }
50
51-#define PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST(cputype, name, \
52+#define PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST(flags, cputype, name, \
53 mask_type, mask_cnt, \
54 dst_type, dst_cnt) \
55 void \
56@@ -163,7 +166,7 @@ cputype##_composite_##name (pixman_implementation_t *imp, \
57 \
58 src = _pixman_image_get_solid (src_image, dst_image->bits.format); \
59 \
60- if (src == 0) \
61+ if ((flags & SKIP_ZERO_SRC) && src == 0) \
62 return; \
63 \
64 PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, dst_type, \
65@@ -177,7 +180,7 @@ cputype##_composite_##name (pixman_implementation_t *imp, \
66 mask_line, mask_stride); \
67 }
68
69-#define PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST(cputype, name, \
70+#define PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST(flags, cputype, name, \
71 src_type, src_cnt, \
72 dst_type, dst_cnt) \
73 void \
74@@ -211,7 +214,7 @@ cputype##_composite_##name (pixman_implementation_t *imp, \
75 \
76 mask = _pixman_image_get_solid (mask_image, dst_image->bits.format);\
77 \
78- if (mask == 0) \
79+ if ((flags & SKIP_ZERO_MASK) && mask == 0) \
80 return; \
81 \
82 PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, dst_type, \
83diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
84index f0dc111..1a3741c 100644
85--- a/pixman/pixman-arm-neon.c
86+++ b/pixman/pixman-arm-neon.c
87@@ -63,33 +63,33 @@ PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (neon, over_8888_8888,
88 PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (neon, out_reverse_8_0565,
89 uint8_t, 1, uint16_t, 1)
90
91-PIXMAN_ARM_BIND_FAST_PATH_N_DST (neon, over_n_0565,
92+PIXMAN_ARM_BIND_FAST_PATH_N_DST (SKIP_ZERO_SRC, neon, over_n_0565,
93 uint16_t, 1)
94-PIXMAN_ARM_BIND_FAST_PATH_N_DST (neon, over_n_8888,
95+PIXMAN_ARM_BIND_FAST_PATH_N_DST (SKIP_ZERO_SRC, neon, over_n_8888,
96 uint32_t, 1)
97-PIXMAN_ARM_BIND_FAST_PATH_N_DST (neon, over_reverse_n_8888,
98+PIXMAN_ARM_BIND_FAST_PATH_N_DST (SKIP_ZERO_SRC, neon, over_reverse_n_8888,
99 uint32_t, 1)
100
101-PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (neon, over_n_8_0565,
102+PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, neon, over_n_8_0565,
103 uint8_t, 1, uint16_t, 1)
104-PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (neon, over_n_8_8888,
105+PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, neon, over_n_8_8888,
106 uint8_t, 1, uint32_t, 1)
107-PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (neon, over_n_8888_8888_ca,
108+PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, neon, over_n_8888_8888_ca,
109 uint32_t, 1, uint32_t, 1)
110-PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (neon, over_n_8_8,
111+PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, neon, over_n_8_8,
112 uint8_t, 1, uint8_t, 1)
113-PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (neon, add_n_8_8,
114+PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, neon, add_n_8_8,
115 uint8_t, 1, uint8_t, 1)
116-PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (neon, add_n_8_8888,
117+PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, neon, add_n_8_8888,
118 uint8_t, 1, uint32_t, 1)
119
120-PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (neon, over_8888_n_8888,
121+PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, neon, over_8888_n_8888,
122 uint32_t, 1, uint32_t, 1)
123-PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (neon, over_8888_n_0565,
124+PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, neon, over_8888_n_0565,
125 uint32_t, 1, uint16_t, 1)
126-PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (neon, over_0565_n_0565,
127+PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, neon, over_0565_n_0565,
128 uint16_t, 1, uint16_t, 1)
129-PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (neon, add_8888_n_8888,
130+PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, neon, add_8888_n_8888,
131 uint32_t, 1, uint32_t, 1)
132
133 PIXMAN_ARM_BIND_FAST_PATH_SRC_MASK_DST (neon, add_8_8_8,
134diff --git a/pixman/pixman-arm-simd.c b/pixman/pixman-arm-simd.c
135index 3b05007..dc2f471 100644
136--- a/pixman/pixman-arm-simd.c
137+++ b/pixman/pixman-arm-simd.c
138@@ -381,10 +381,10 @@ PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, add_8_8,
139 PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, over_8888_8888,
140 uint32_t, 1, uint32_t, 1)
141
142-PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (armv6, over_8888_n_8888,
143+PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (SKIP_ZERO_MASK, armv6, over_8888_n_8888,
144 uint32_t, 1, uint32_t, 1)
145
146-PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (armv6, over_n_8_8888,
147+PIXMAN_ARM_BIND_FAST_PATH_N_MASK_DST (SKIP_ZERO_SRC, armv6, over_n_8_8888,
148 uint8_t, 1, uint32_t, 1)
149
150 PIXMAN_ARM_BIND_SCALED_NEAREST_SRC_DST (armv6, 0565_0565, SRC,
151--
1521.6.6.1
153