diff options
author | Koen Kooi <koen@dominion.thruhere.net> | 2010-12-04 21:40:49 +0100 |
---|---|---|
committer | Koen Kooi <koen@dominion.thruhere.net> | 2010-12-04 21:40:49 +0100 |
commit | 39fb00c188032075a0a8298e333e6914bd88e53a (patch) | |
tree | ccb10a0b7064862bcce144316b9392614d355b2d /recipes-graphics/xorg-lib/pixman-0.21.2/0015-ARM-added-flags-parameter-to-some-asm-fast-path-wrap.patch | |
parent | 1857df74ac9bfec16d0274fe972fda7bb1f99e6b (diff) | |
download | meta-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.patch | 153 |
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 @@ | |||
1 | From af7a69d90ea2b43a4e850870727723d719f09a1c Mon Sep 17 00:00:00 2001 | ||
2 | From: Siarhei Siamashka <siarhei.siamashka@nokia.com> | ||
3 | Date: Mon, 29 Nov 2010 09:00:46 +0200 | ||
4 | Subject: [PATCH 15/24] ARM: added flags parameter to some asm fast path wrapper macros | ||
5 | |||
6 | Not all types of operations can be skipped when having transparent | ||
7 | solid source or transparent solid mask. Add an extra flags parameter | ||
8 | for 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 | |||
15 | diff --git a/pixman/pixman-arm-common.h b/pixman/pixman-arm-common.h | ||
16 | index 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, \ | ||
83 | diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c | ||
84 | index 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, | ||
134 | diff --git a/pixman/pixman-arm-simd.c b/pixman/pixman-arm-simd.c | ||
135 | index 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 | -- | ||
152 | 1.6.6.1 | ||
153 | |||