mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-05-31 01:10:08 +00:00
pixman: update to 0.22.0 - latest stable
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
-75
@@ -1,75 +0,0 @@
|
|||||||
From 6593d86679fde724e49efa96b16ca22d9521b288 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
|
||||||
Date: Thu, 10 Dec 2009 00:51:50 +0200
|
|
||||||
Subject: [PATCH 17/24] add _pixman_bits_override_accessors
|
|
||||||
|
|
||||||
* from patch ARM: HACK: added NEON optimizations for fetch/store r5g6b5 scanline
|
|
||||||
* used in
|
|
||||||
0005-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch
|
|
||||||
0006-ARM-added-NEON-optimizations-for-fetch-store-a8-scan.patch
|
|
||||||
0007-ARM-added-NEON-optimizations-for-fetching-x8r8g8b8-s.patch
|
|
||||||
---
|
|
||||||
pixman/pixman-access.c | 23 ++++++++++++++++++++++-
|
|
||||||
pixman/pixman-private.h | 5 +++++
|
|
||||||
2 files changed, 27 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pixman/pixman-access.c b/pixman/pixman-access.c
|
|
||||||
index f1ce0ba..b33da29 100644
|
|
||||||
--- a/pixman/pixman-access.c
|
|
||||||
+++ b/pixman/pixman-access.c
|
|
||||||
@@ -2836,7 +2836,7 @@ typedef struct
|
|
||||||
store_scanline_ ## format, store_scanline_generic_64 \
|
|
||||||
}
|
|
||||||
|
|
||||||
-static const format_info_t accessors[] =
|
|
||||||
+static format_info_t accessors[] =
|
|
||||||
{
|
|
||||||
/* 32 bpp formats */
|
|
||||||
FORMAT_INFO (a8r8g8b8),
|
|
||||||
@@ -2978,6 +2978,27 @@ _pixman_bits_image_setup_accessors (bits_image_t *image)
|
|
||||||
setup_accessors (image);
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+_pixman_bits_override_accessors (pixman_format_code_t format,
|
|
||||||
+ fetch_scanline_t fetch_func,
|
|
||||||
+ store_scanline_t store_func)
|
|
||||||
+{
|
|
||||||
+ format_info_t *info = accessors;
|
|
||||||
+
|
|
||||||
+ while (info->format != PIXMAN_null)
|
|
||||||
+ {
|
|
||||||
+ if (info->format == format)
|
|
||||||
+ {
|
|
||||||
+ if (fetch_func)
|
|
||||||
+ info->fetch_scanline_32 = fetch_func;
|
|
||||||
+ if (store_func)
|
|
||||||
+ info->store_scanline_32 = store_func;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ info++;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#else
|
|
||||||
|
|
||||||
void
|
|
||||||
diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h
|
|
||||||
index 1662d2c..c0f9af4 100644
|
|
||||||
--- a/pixman/pixman-private.h
|
|
||||||
+++ b/pixman/pixman-private.h
|
|
||||||
@@ -256,6 +256,11 @@ _pixman_conical_gradient_iter_init (pixman_image_t *image,
|
|
||||||
int x, int y, int width, int height,
|
|
||||||
uint8_t *buffer, iter_flags_t flags);
|
|
||||||
|
|
||||||
+void
|
|
||||||
+_pixman_bits_override_accessors (pixman_format_code_t format,
|
|
||||||
+ fetch_scanline_t fetch_func,
|
|
||||||
+ store_scanline_t store_func);
|
|
||||||
+
|
|
||||||
pixman_image_t *
|
|
||||||
_pixman_image_allocate (void);
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.4.rc2
|
|
||||||
|
|
||||||
-109
@@ -1,109 +0,0 @@
|
|||||||
From 60d972afbae8613d700d3a6b3cb107429d7e11c6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
|
||||||
Date: Thu, 10 Dec 2009 00:51:50 +0200
|
|
||||||
Subject: [PATCH 22/24] ARM: added NEON optimizations for fetch/store r5g6b5 scanline
|
|
||||||
|
|
||||||
---
|
|
||||||
pixman/pixman-arm-neon-asm.S | 20 ++++++++++++++++++++
|
|
||||||
pixman/pixman-arm-neon.c | 40 ++++++++++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 60 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
|
|
||||||
index cf014fa..25f7bf0 100644
|
|
||||||
--- a/pixman/pixman-arm-neon-asm.S
|
|
||||||
+++ b/pixman/pixman-arm-neon-asm.S
|
|
||||||
@@ -459,6 +459,16 @@ generate_composite_function \
|
|
||||||
pixman_composite_src_8888_0565_process_pixblock_tail, \
|
|
||||||
pixman_composite_src_8888_0565_process_pixblock_tail_head
|
|
||||||
|
|
||||||
+generate_composite_function_single_scanline \
|
|
||||||
+ pixman_store_scanline_r5g6b5_asm_neon, 32, 0, 16, \
|
|
||||||
+ FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \
|
|
||||||
+ 8, /* number of pixels, processed in a single block */ \
|
|
||||||
+ default_init, \
|
|
||||||
+ default_cleanup, \
|
|
||||||
+ pixman_composite_src_8888_0565_process_pixblock_head, \
|
|
||||||
+ pixman_composite_src_8888_0565_process_pixblock_tail, \
|
|
||||||
+ pixman_composite_src_8888_0565_process_pixblock_tail_head
|
|
||||||
+
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
.macro pixman_composite_src_0565_8888_process_pixblock_head
|
|
||||||
@@ -494,6 +504,16 @@ generate_composite_function \
|
|
||||||
pixman_composite_src_0565_8888_process_pixblock_tail, \
|
|
||||||
pixman_composite_src_0565_8888_process_pixblock_tail_head
|
|
||||||
|
|
||||||
+generate_composite_function_single_scanline \
|
|
||||||
+ pixman_fetch_scanline_r5g6b5_asm_neon, 16, 0, 32, \
|
|
||||||
+ FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \
|
|
||||||
+ 8, /* number of pixels, processed in a single block */ \
|
|
||||||
+ default_init, \
|
|
||||||
+ default_cleanup, \
|
|
||||||
+ pixman_composite_src_0565_8888_process_pixblock_head, \
|
|
||||||
+ pixman_composite_src_0565_8888_process_pixblock_tail, \
|
|
||||||
+ pixman_composite_src_0565_8888_process_pixblock_tail_head
|
|
||||||
+
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
.macro pixman_composite_add_8_8_process_pixblock_head
|
|
||||||
diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
|
|
||||||
index 74316a8..f773e92 100644
|
|
||||||
--- a/pixman/pixman-arm-neon.c
|
|
||||||
+++ b/pixman/pixman-arm-neon.c
|
|
||||||
@@ -448,6 +448,42 @@ BIND_COMBINE_U (over)
|
|
||||||
BIND_COMBINE_U (add)
|
|
||||||
BIND_COMBINE_U (out_reverse)
|
|
||||||
|
|
||||||
+void
|
|
||||||
+pixman_fetch_scanline_r5g6b5_asm_neon (int width,
|
|
||||||
+ uint32_t *buffer,
|
|
||||||
+ const uint16_t *pixel);
|
|
||||||
+void
|
|
||||||
+pixman_store_scanline_r5g6b5_asm_neon (int width,
|
|
||||||
+ uint16_t *pixel,
|
|
||||||
+ const uint32_t *values);
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+neon_fetch_scanline_r5g6b5 (pixman_image_t *image,
|
|
||||||
+ int x,
|
|
||||||
+ int y,
|
|
||||||
+ int width,
|
|
||||||
+ uint32_t * buffer,
|
|
||||||
+ const uint32_t *mask)
|
|
||||||
+{
|
|
||||||
+ const uint32_t *bits = image->bits.bits + y * image->bits.rowstride;
|
|
||||||
+ const uint16_t *pixel = (const uint16_t *)bits + x;
|
|
||||||
+
|
|
||||||
+ pixman_fetch_scanline_r5g6b5_asm_neon (width, buffer, pixel);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+neon_store_scanline_r5g6b5 (bits_image_t * image,
|
|
||||||
+ int x,
|
|
||||||
+ int y,
|
|
||||||
+ int width,
|
|
||||||
+ const uint32_t *values)
|
|
||||||
+{
|
|
||||||
+ uint32_t *bits = image->bits + image->rowstride * y;
|
|
||||||
+ uint16_t *pixel = ((uint16_t *) bits) + x;
|
|
||||||
+
|
|
||||||
+ pixman_store_scanline_r5g6b5_asm_neon (width, pixel, values);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
pixman_implementation_t *
|
|
||||||
_pixman_implementation_create_arm_neon (void)
|
|
||||||
{
|
|
||||||
@@ -463,6 +499,10 @@ _pixman_implementation_create_arm_neon (void)
|
|
||||||
imp->combine_32[PIXMAN_OP_ADD] = neon_combine_add_u;
|
|
||||||
imp->combine_32[PIXMAN_OP_OUT_REVERSE] = neon_combine_out_reverse_u;
|
|
||||||
|
|
||||||
+ _pixman_bits_override_accessors (PIXMAN_r5g6b5,
|
|
||||||
+ neon_fetch_scanline_r5g6b5,
|
|
||||||
+ neon_store_scanline_r5g6b5);
|
|
||||||
+
|
|
||||||
imp->blt = arm_neon_blt;
|
|
||||||
imp->fill = arm_neon_fill;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.6.6.1
|
|
||||||
|
|
||||||
-148
@@ -1,148 +0,0 @@
|
|||||||
From cc99d8d6fcbabd7f9f3ed99e65c78a2fb71792fa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
|
||||||
Date: Thu, 23 Sep 2010 21:10:56 +0300
|
|
||||||
Subject: [PATCH 23/24] ARM: added NEON optimizations for fetch/store a8 scanline
|
|
||||||
|
|
||||||
---
|
|
||||||
pixman/pixman-arm-neon-asm.S | 64 ++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
pixman/pixman-arm-neon.c | 42 +++++++++++++++++++++++++++
|
|
||||||
2 files changed, 106 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
|
|
||||||
index 25f7bf0..439b06b 100644
|
|
||||||
--- a/pixman/pixman-arm-neon-asm.S
|
|
||||||
+++ b/pixman/pixman-arm-neon-asm.S
|
|
||||||
@@ -418,6 +418,70 @@ generate_composite_function \
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
+.macro pixman_composite_src_8_8888_process_pixblock_head
|
|
||||||
+ /* This is tricky part: we can't set these values just once in 'init' macro
|
|
||||||
+ * because leading/trailing pixels handling part uses VZIP.8 instructions,
|
|
||||||
+ * and they operate on values in-place and destroy original registers
|
|
||||||
+ * content. Think about it like VST4.8 instruction corrupting NEON
|
|
||||||
+ * registers after write in 'tail_head' macro. Except that 'tail_head'
|
|
||||||
+ * macro itself actually does not need these extra VMOVs because it uses
|
|
||||||
+ * real VST4.8 instruction.
|
|
||||||
+ */
|
|
||||||
+ vmov.u8 q0, #0
|
|
||||||
+ vmov.u8 d2, #0
|
|
||||||
+.endm
|
|
||||||
+
|
|
||||||
+.macro pixman_composite_src_8_8888_process_pixblock_tail
|
|
||||||
+.endm
|
|
||||||
+
|
|
||||||
+.macro pixman_composite_src_8_8888_process_pixblock_tail_head
|
|
||||||
+ vst4.8 {d0, d1, d2, d3}, [DST_W, :128]!
|
|
||||||
+ vld1.8 {d3}, [SRC]!
|
|
||||||
+.endm
|
|
||||||
+
|
|
||||||
+generate_composite_function_single_scanline \
|
|
||||||
+ pixman_fetch_scanline_a8_asm_neon, 8, 0, 32, \
|
|
||||||
+ FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \
|
|
||||||
+ 8, /* number of pixels, processed in a single block */ \
|
|
||||||
+ default_init, \
|
|
||||||
+ default_cleanup, \
|
|
||||||
+ pixman_composite_src_8_8888_process_pixblock_head, \
|
|
||||||
+ pixman_composite_src_8_8888_process_pixblock_tail, \
|
|
||||||
+ pixman_composite_src_8_8888_process_pixblock_tail_head, \
|
|
||||||
+ 0, /* dst_w_basereg */ \
|
|
||||||
+ 0, /* dst_r_basereg */ \
|
|
||||||
+ 3, /* src_basereg */ \
|
|
||||||
+ 0 /* mask_basereg */
|
|
||||||
+
|
|
||||||
+/******************************************************************************/
|
|
||||||
+
|
|
||||||
+.macro pixman_composite_src_8888_8_process_pixblock_head
|
|
||||||
+.endm
|
|
||||||
+
|
|
||||||
+.macro pixman_composite_src_8888_8_process_pixblock_tail
|
|
||||||
+.endm
|
|
||||||
+
|
|
||||||
+.macro pixman_composite_src_8888_8_process_pixblock_tail_head
|
|
||||||
+ vst1.8 {d3}, [DST_W, :64]!
|
|
||||||
+ vld4.8 {d0, d1, d2, d3}, [SRC]!
|
|
||||||
+.endm
|
|
||||||
+
|
|
||||||
+generate_composite_function_single_scanline \
|
|
||||||
+ pixman_store_scanline_a8_asm_neon, 32, 0, 8, \
|
|
||||||
+ FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \
|
|
||||||
+ 8, /* number of pixels, processed in a single block */ \
|
|
||||||
+ default_init, \
|
|
||||||
+ default_cleanup, \
|
|
||||||
+ pixman_composite_src_8888_8_process_pixblock_head, \
|
|
||||||
+ pixman_composite_src_8888_8_process_pixblock_tail, \
|
|
||||||
+ pixman_composite_src_8888_8_process_pixblock_tail_head, \
|
|
||||||
+ 3, /* dst_w_basereg */ \
|
|
||||||
+ 0, /* dst_r_basereg */ \
|
|
||||||
+ 0, /* src_basereg */ \
|
|
||||||
+ 0 /* mask_basereg */
|
|
||||||
+
|
|
||||||
+/******************************************************************************/
|
|
||||||
+
|
|
||||||
.macro pixman_composite_src_8888_0565_process_pixblock_head
|
|
||||||
vshll.u8 q8, d1, #8
|
|
||||||
vshll.u8 q14, d2, #8
|
|
||||||
diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
|
|
||||||
index f773e92..55219b3 100644
|
|
||||||
--- a/pixman/pixman-arm-neon.c
|
|
||||||
+++ b/pixman/pixman-arm-neon.c
|
|
||||||
@@ -484,6 +484,45 @@ neon_store_scanline_r5g6b5 (bits_image_t * image,
|
|
||||||
pixman_store_scanline_r5g6b5_asm_neon (width, pixel, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+pixman_fetch_scanline_a8_asm_neon (int width,
|
|
||||||
+ uint32_t *buffer,
|
|
||||||
+ const uint8_t *pixel);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+pixman_store_scanline_a8_asm_neon (int width,
|
|
||||||
+ uint8_t *pixel,
|
|
||||||
+ const uint32_t *values);
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+neon_fetch_scanline_a8 (pixman_image_t *image,
|
|
||||||
+ int x,
|
|
||||||
+ int y,
|
|
||||||
+ int width,
|
|
||||||
+ uint32_t * buffer,
|
|
||||||
+ const uint32_t *mask)
|
|
||||||
+{
|
|
||||||
+ const uint32_t *bits = image->bits.bits + y * image->bits.rowstride;
|
|
||||||
+ const uint8_t *pixel = (const uint8_t *) bits + x;
|
|
||||||
+
|
|
||||||
+ pixman_fetch_scanline_a8_asm_neon (width, buffer, pixel);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+neon_store_scanline_a8 (bits_image_t * image,
|
|
||||||
+ int x,
|
|
||||||
+ int y,
|
|
||||||
+ int width,
|
|
||||||
+ const uint32_t *values)
|
|
||||||
+{
|
|
||||||
+ uint32_t *bits = image->bits + image->rowstride * y;
|
|
||||||
+ uint8_t *pixel = (uint8_t *) bits + x;
|
|
||||||
+
|
|
||||||
+ pixman_store_scanline_a8_asm_neon (width, pixel, values);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
pixman_implementation_t *
|
|
||||||
_pixman_implementation_create_arm_neon (void)
|
|
||||||
{
|
|
||||||
@@ -502,6 +541,9 @@ _pixman_implementation_create_arm_neon (void)
|
|
||||||
_pixman_bits_override_accessors (PIXMAN_r5g6b5,
|
|
||||||
neon_fetch_scanline_r5g6b5,
|
|
||||||
neon_store_scanline_r5g6b5);
|
|
||||||
+ _pixman_bits_override_accessors (PIXMAN_a8,
|
|
||||||
+ neon_fetch_scanline_a8,
|
|
||||||
+ neon_store_scanline_a8);
|
|
||||||
|
|
||||||
imp->blt = arm_neon_blt;
|
|
||||||
imp->fill = arm_neon_fill;
|
|
||||||
--
|
|
||||||
1.6.6.1
|
|
||||||
|
|
||||||
-77
@@ -1,77 +0,0 @@
|
|||||||
From cf3b8fdc53144ff62c4054996559d3a1a4d62b75 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
|
||||||
Date: Fri, 24 Sep 2010 18:22:44 +0300
|
|
||||||
Subject: [PATCH 24/24] ARM: added NEON optimizations for fetching x8r8g8b8 scanline
|
|
||||||
|
|
||||||
---
|
|
||||||
pixman/pixman-arm-neon-asm.S | 14 ++++++++++++++
|
|
||||||
pixman/pixman-arm-neon.c | 21 +++++++++++++++++++++
|
|
||||||
2 files changed, 35 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
|
|
||||||
index 439b06b..3e0dcfe 100644
|
|
||||||
--- a/pixman/pixman-arm-neon-asm.S
|
|
||||||
+++ b/pixman/pixman-arm-neon-asm.S
|
|
||||||
@@ -1257,6 +1257,20 @@ generate_composite_function \
|
|
||||||
0, /* src_basereg */ \
|
|
||||||
0 /* mask_basereg */
|
|
||||||
|
|
||||||
+generate_composite_function_single_scanline \
|
|
||||||
+ pixman_fetch_scanline_x888_asm_neon, 32, 0, 32, \
|
|
||||||
+ FLAG_DST_WRITEONLY, \
|
|
||||||
+ 8, /* number of pixels, processed in a single block */ \
|
|
||||||
+ pixman_composite_src_x888_8888_init, \
|
|
||||||
+ default_cleanup, \
|
|
||||||
+ pixman_composite_src_x888_8888_process_pixblock_head, \
|
|
||||||
+ pixman_composite_src_x888_8888_process_pixblock_tail, \
|
|
||||||
+ pixman_composite_src_x888_8888_process_pixblock_tail_head, \
|
|
||||||
+ 0, /* dst_w_basereg */ \
|
|
||||||
+ 0, /* dst_r_basereg */ \
|
|
||||||
+ 0, /* src_basereg */ \
|
|
||||||
+ 0 /* mask_basereg */
|
|
||||||
+
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
.macro pixman_composite_over_n_8_8888_process_pixblock_head
|
|
||||||
diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
|
|
||||||
index 55219b3..8cef414 100644
|
|
||||||
--- a/pixman/pixman-arm-neon.c
|
|
||||||
+++ b/pixman/pixman-arm-neon.c
|
|
||||||
@@ -522,6 +522,24 @@ neon_store_scanline_a8 (bits_image_t * image,
|
|
||||||
pixman_store_scanline_a8_asm_neon (width, pixel, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+pixman_fetch_scanline_x888_asm_neon (int width,
|
|
||||||
+ uint32_t *buffer,
|
|
||||||
+ const uint32_t *pixel);
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+neon_fetch_scanline_x888 (pixman_image_t *image,
|
|
||||||
+ int x,
|
|
||||||
+ int y,
|
|
||||||
+ int width,
|
|
||||||
+ uint32_t * buffer,
|
|
||||||
+ const uint32_t *mask)
|
|
||||||
+{
|
|
||||||
+ const uint32_t *bits = image->bits.bits + y * image->bits.rowstride;
|
|
||||||
+ const uint32_t *pixel = (const uint32_t *) bits + x;
|
|
||||||
+
|
|
||||||
+ pixman_fetch_scanline_x888_asm_neon (width, buffer, pixel);
|
|
||||||
+}
|
|
||||||
|
|
||||||
pixman_implementation_t *
|
|
||||||
_pixman_implementation_create_arm_neon (void)
|
|
||||||
@@ -544,6 +562,9 @@ _pixman_implementation_create_arm_neon (void)
|
|
||||||
_pixman_bits_override_accessors (PIXMAN_a8,
|
|
||||||
neon_fetch_scanline_a8,
|
|
||||||
neon_store_scanline_a8);
|
|
||||||
+ _pixman_bits_override_accessors (PIXMAN_x8r8g8b8,
|
|
||||||
+ neon_fetch_scanline_x888,
|
|
||||||
+ NULL);
|
|
||||||
|
|
||||||
imp->blt = arm_neon_blt;
|
|
||||||
imp->fill = arm_neon_fill;
|
|
||||||
--
|
|
||||||
1.6.6.1
|
|
||||||
|
|
||||||
+6
-6
@@ -1,7 +1,7 @@
|
|||||||
From 8e8b2809b505486001dc213becab0d50bfd96c1b Mon Sep 17 00:00:00 2001
|
From e17f676f1f42239fb4304d75191f373bb06e8fc0 Mon Sep 17 00:00:00 2001
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
||||||
Date: Tue, 16 Mar 2010 16:55:28 +0100
|
Date: Tue, 16 Mar 2010 16:55:28 +0100
|
||||||
Subject: [PATCH 18/24] Generic C implementation of pixman_blt with overlapping support
|
Subject: [PATCH 1/4] Generic C implementation of pixman_blt with overlapping support
|
||||||
|
|
||||||
Uses memcpy/memmove functions to copy pixels, can handle the
|
Uses memcpy/memmove functions to copy pixels, can handle the
|
||||||
case when both source and destination areas are in the same
|
case when both source and destination areas are in the same
|
||||||
@@ -19,10 +19,10 @@ unrealistic case anyway).
|
|||||||
2 files changed, 61 insertions(+), 3 deletions(-)
|
2 files changed, 61 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
|
diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
|
||||||
index 4d234a0..c4d2c14 100644
|
index 727affc..fa448f7 100644
|
||||||
--- a/pixman/pixman-general.c
|
--- a/pixman/pixman-general.c
|
||||||
+++ b/pixman/pixman-general.c
|
+++ b/pixman/pixman-general.c
|
||||||
@@ -280,9 +280,24 @@ general_blt (pixman_implementation_t *imp,
|
@@ -238,9 +238,24 @@ general_blt (pixman_implementation_t *imp,
|
||||||
int width,
|
int width,
|
||||||
int height)
|
int height)
|
||||||
{
|
{
|
||||||
@@ -51,7 +51,7 @@ index 4d234a0..c4d2c14 100644
|
|||||||
|
|
||||||
static pixman_bool_t
|
static pixman_bool_t
|
||||||
diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h
|
diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h
|
||||||
index 969dfab..352bceb 100644
|
index 60060a9..5369ad9 100644
|
||||||
--- a/pixman/pixman-private.h
|
--- a/pixman/pixman-private.h
|
||||||
+++ b/pixman/pixman-private.h
|
+++ b/pixman/pixman-private.h
|
||||||
@@ -10,6 +10,7 @@
|
@@ -10,6 +10,7 @@
|
||||||
@@ -62,7 +62,7 @@ index 969dfab..352bceb 100644
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -869,4 +870,46 @@ void pixman_timer_register (pixman_timer_t *timer);
|
@@ -899,4 +900,46 @@ void pixman_timer_register (pixman_timer_t *timer);
|
||||||
|
|
||||||
#endif /* PIXMAN_TIMERS */
|
#endif /* PIXMAN_TIMERS */
|
||||||
|
|
||||||
+3
-3
@@ -1,14 +1,14 @@
|
|||||||
From f5a54f7d5eb1169bc79f0e445e2998e98080ef13 Mon Sep 17 00:00:00 2001
|
From 6d8b811414c73df7f75cc192e3b1f1d777615bdc Mon Sep 17 00:00:00 2001
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
||||||
Date: Thu, 22 Oct 2009 05:45:47 +0300
|
Date: Thu, 22 Oct 2009 05:45:47 +0300
|
||||||
Subject: [PATCH 19/24] Support of overlapping src/dst for pixman_blt_mmx
|
Subject: [PATCH 2/4] Support of overlapping src/dst for pixman_blt_mmx
|
||||||
|
|
||||||
---
|
---
|
||||||
pixman/pixman-mmx.c | 55 +++++++++++++++++++++++++++++---------------------
|
pixman/pixman-mmx.c | 55 +++++++++++++++++++++++++++++---------------------
|
||||||
1 files changed, 32 insertions(+), 23 deletions(-)
|
1 files changed, 32 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
|
diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
|
||||||
index 34637a4..f9dd473 100644
|
index 0272347..5bcbd0e 100644
|
||||||
--- a/pixman/pixman-mmx.c
|
--- a/pixman/pixman-mmx.c
|
||||||
+++ b/pixman/pixman-mmx.c
|
+++ b/pixman/pixman-mmx.c
|
||||||
@@ -2996,34 +2996,43 @@ pixman_blt_mmx (uint32_t *src_bits,
|
@@ -2996,34 +2996,43 @@ pixman_blt_mmx (uint32_t *src_bits,
|
||||||
+5
-5
@@ -1,17 +1,17 @@
|
|||||||
From c8755294fa9ea396f7113370230b17c424a93be1 Mon Sep 17 00:00:00 2001
|
From c9ca9dc0f345fa3e2e0f16b2627150e0b696fd7a Mon Sep 17 00:00:00 2001
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
||||||
Date: Thu, 22 Oct 2009 05:45:54 +0300
|
Date: Thu, 22 Oct 2009 05:45:54 +0300
|
||||||
Subject: [PATCH 20/24] Support of overlapping src/dst for pixman_blt_sse2
|
Subject: [PATCH 3/4] Support of overlapping src/dst for pixman_blt_sse2
|
||||||
|
|
||||||
---
|
---
|
||||||
pixman/pixman-sse2.c | 55 +++++++++++++++++++++++++++++--------------------
|
pixman/pixman-sse2.c | 55 +++++++++++++++++++++++++++++--------------------
|
||||||
1 files changed, 32 insertions(+), 23 deletions(-)
|
1 files changed, 32 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c
|
diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c
|
||||||
index 5907de0..25015ae 100644
|
index 533b858..9fa7191 100644
|
||||||
--- a/pixman/pixman-sse2.c
|
--- a/pixman/pixman-sse2.c
|
||||||
+++ b/pixman/pixman-sse2.c
|
+++ b/pixman/pixman-sse2.c
|
||||||
@@ -5027,34 +5027,43 @@ pixman_blt_sse2 (uint32_t *src_bits,
|
@@ -4691,34 +4691,43 @@ pixman_blt_sse2 (uint32_t *src_bits,
|
||||||
{
|
{
|
||||||
uint8_t * src_bytes;
|
uint8_t * src_bytes;
|
||||||
uint8_t * dst_bytes;
|
uint8_t * dst_bytes;
|
||||||
@@ -77,7 +77,7 @@ index 5907de0..25015ae 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (height--)
|
while (height--)
|
||||||
@@ -5064,7 +5073,7 @@ pixman_blt_sse2 (uint32_t *src_bits,
|
@@ -4728,7 +4737,7 @@ pixman_blt_sse2 (uint32_t *src_bits,
|
||||||
uint8_t *d = dst_bytes;
|
uint8_t *d = dst_bytes;
|
||||||
src_bytes += src_stride;
|
src_bytes += src_stride;
|
||||||
dst_bytes += dst_stride;
|
dst_bytes += dst_stride;
|
||||||
+4
-4
@@ -1,17 +1,17 @@
|
|||||||
From 86c8198598ef6d639e656c04644015795cc249aa Mon Sep 17 00:00:00 2001
|
From 604f22b515d4d678df4c301ecec3c7da4987ee16 Mon Sep 17 00:00:00 2001
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
|
||||||
Date: Wed, 18 Nov 2009 06:08:48 +0200
|
Date: Wed, 18 Nov 2009 06:08:48 +0200
|
||||||
Subject: [PATCH 21/24] Support of overlapping src/dst for pixman_blt_neon
|
Subject: [PATCH 4/4] Support of overlapping src/dst for pixman_blt_neon
|
||||||
|
|
||||||
---
|
---
|
||||||
pixman/pixman-arm-neon.c | 62 +++++++++++++++++++++++++++++++++++++--------
|
pixman/pixman-arm-neon.c | 62 +++++++++++++++++++++++++++++++++++++--------
|
||||||
1 files changed, 51 insertions(+), 11 deletions(-)
|
1 files changed, 51 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
|
diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
|
||||||
index e3eca2b..74316a8 100644
|
index e5127a6..b67fed9 100644
|
||||||
--- a/pixman/pixman-arm-neon.c
|
--- a/pixman/pixman-arm-neon.c
|
||||||
+++ b/pixman/pixman-arm-neon.c
|
+++ b/pixman/pixman-arm-neon.c
|
||||||
@@ -199,26 +199,66 @@ pixman_blt_neon (uint32_t *src_bits,
|
@@ -234,26 +234,66 @@ pixman_blt_neon (uint32_t *src_bits,
|
||||||
int width,
|
int width,
|
||||||
int height)
|
int height)
|
||||||
{
|
{
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
require pixman.inc
|
|
||||||
|
|
||||||
SRC_URI[md5sum] = "e50975ace979cd416a505827c15191b4"
|
|
||||||
SRC_URI[sha256sum] = "57783330ee2f96121dc267b7f25b98356fd09fe9de185cd39e72e906b6444013"
|
|
||||||
|
|
||||||
LICENSE = "MIT & MIT-style & Public Domain"
|
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3\
|
|
||||||
file://pixman/pixman-matrix.c;endline=25;md5=ba6e8769bfaaee2c41698755af04c4be \
|
|
||||||
file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \
|
|
||||||
file://pixman/pixman-x64-mmx-emulation.h;beginline=4;endline=9;md5=4e32716f2efaa6c4659222667c339bb8"
|
|
||||||
|
|
||||||
PR = "${INC_PR}.0"
|
|
||||||
|
|
||||||
SRC_URI += "\
|
|
||||||
file://0017-add-_pixman_bits_override_accessors.patch \
|
|
||||||
file://0018-Generic-C-implementation-of-pixman_blt-with-overlapp.patch \
|
|
||||||
file://0019-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch \
|
|
||||||
file://0020-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch \
|
|
||||||
file://0021-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch \
|
|
||||||
file://0022-ARM-added-NEON-optimizations-for-fetch-store-r5g6b5-.patch \
|
|
||||||
file://0023-ARM-added-NEON-optimizations-for-fetch-store-a8-scan.patch \
|
|
||||||
file://0024-ARM-added-NEON-optimizations-for-fetching-x8r8g8b8-s.patch \
|
|
||||||
"
|
|
||||||
|
|
||||||
NEON = " --disable-arm-neon "
|
|
||||||
NEON_armv7a = " "
|
|
||||||
|
|
||||||
EXTRA_OECONF = "${NEON} --disable-gtk"
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
require pixman.inc
|
||||||
|
|
||||||
|
LICENSE = "MIT & MIT-style & Public Domain"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3\
|
||||||
|
file://pixman/pixman-matrix.c;endline=25;md5=ba6e8769bfaaee2c41698755af04c4be \
|
||||||
|
file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \
|
||||||
|
file://pixman/pixman-x64-mmx-emulation.h;beginline=4;endline=9;md5=4e32716f2efaa6c4659222667c339bb8"
|
||||||
|
|
||||||
|
PR = "${INC_PR}.0"
|
||||||
|
|
||||||
|
SRC_URI = "http://xorg.freedesktop.org/archive/individual/lib/${BPN}-${PV}.tar.gz \
|
||||||
|
file://0001-Generic-C-implementation-of-pixman_blt-with-overlapp.patch \
|
||||||
|
file://0002-Support-of-overlapping-src-dst-for-pixman_blt_mmx.patch \
|
||||||
|
file://0003-Support-of-overlapping-src-dst-for-pixman_blt_sse2.patch \
|
||||||
|
file://0004-Support-of-overlapping-src-dst-for-pixman_blt_neon.patch \
|
||||||
|
"
|
||||||
|
SRC_URI[md5sum] = "cb8f3cb5ce2c8d7294f73ecb7021fda6"
|
||||||
|
SRC_URI[sha256sum] = "6b7622256e43912fb77fd456b0753f407268d450f5990c8f86e7c6f006e30da0"
|
||||||
|
|
||||||
|
NEON = " --disable-arm-neon "
|
||||||
|
NEON_armv7a = " "
|
||||||
|
|
||||||
|
EXTRA_OECONF = "${NEON} --disable-gtk"
|
||||||
Reference in New Issue
Block a user