aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/xorg-lib/pixman-0.19.4/0007-ARM-added-neon_composite_add_0565_8_0565-fast-path.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/xorg-lib/pixman-0.19.4/0007-ARM-added-neon_composite_add_0565_8_0565-fast-path.patch')
-rw-r--r--recipes/xorg-lib/pixman-0.19.4/0007-ARM-added-neon_composite_add_0565_8_0565-fast-path.patch96
1 files changed, 0 insertions, 96 deletions
diff --git a/recipes/xorg-lib/pixman-0.19.4/0007-ARM-added-neon_composite_add_0565_8_0565-fast-path.patch b/recipes/xorg-lib/pixman-0.19.4/0007-ARM-added-neon_composite_add_0565_8_0565-fast-path.patch
deleted file mode 100644
index d62f12dd5c..0000000000
--- a/recipes/xorg-lib/pixman-0.19.4/0007-ARM-added-neon_composite_add_0565_8_0565-fast-path.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From c3f1715c4698e90396d02f7b5acc314d99780941 Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Thu, 23 Sep 2010 22:28:55 +0300
-Subject: [PATCH 7/9] ARM: added 'neon_composite_add_0565_8_0565' fast path
-
-TODO: That's an initial variant, needs performance tuning
----
- pixman/pixman-arm-neon-asm.S | 52 ++++++++++++++++++++++++++++++++++++++++++
- pixman/pixman-arm-neon.c | 4 +++
- 2 files changed, 56 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index e1a697e..23ddae9 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -1890,3 +1890,55 @@ generate_composite_function \
- 10, /* dst_r_basereg */ \
- 8, /* src_basereg */ \
- 15 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_add_0565_8_0565_process_pixblock_head
-+ /* mask is in d15 */
-+ convert_0565_to_x888 q4, d2, d1, d0
-+ convert_0565_to_x888 q5, d6, d5, d4
-+ /* source pixel data is in {d0, d1, d2, XX} */
-+ /* destination pixel data is in {d4, d5, d6, XX} */
-+ vmull.u8 q6, d15, d2
-+ vmull.u8 q5, d15, d1
-+ vmull.u8 q4, d15, d0
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q11, q5, #8
-+ vrshr.u16 q10, q4, #8
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d1, q5, q11
-+ vraddhn.u16 d0, q4, q10
-+.endm
-+
-+.macro pixman_composite_add_0565_8_0565_process_pixblock_tail
-+ vqadd.u8 q0, q0, q2
-+ vqadd.u8 q1, q1, q3
-+ /* 32bpp result is in {d0, d1, d2, XX} */
-+ convert_8888_to_0565 d2, d1, d0, q14, q15, q3
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_add_0565_8_0565_process_pixblock_tail_head
-+ vld1.8 {d15}, [MASK]!
-+ pixman_composite_add_0565_8_0565_process_pixblock_tail
-+ vld1.16 {d8, d9}, [SRC]!
-+ vld1.16 {d10, d11}, [DST_R, :128]!
-+ cache_preload 8, 8
-+ pixman_composite_add_0565_8_0565_process_pixblock_head
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_add_0565_8_0565_asm_neon, 16, 8, 16, \
-+ FLAG_DST_READWRITE, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ default_init_need_all_regs, \
-+ default_cleanup_need_all_regs, \
-+ pixman_composite_add_0565_8_0565_process_pixblock_head, \
-+ pixman_composite_add_0565_8_0565_process_pixblock_tail, \
-+ pixman_composite_add_0565_8_0565_process_pixblock_tail_head, \
-+ 28, /* dst_w_basereg */ \
-+ 10, /* dst_r_basereg */ \
-+ 8, /* src_basereg */ \
-+ 15 /* mask_basereg */
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index db1c2df..a8be7e4 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -82,6 +82,8 @@ PIXMAN_ARM_BIND_FAST_PATH_SRC_N_DST (neon, over_8888_n_8888,
-
- PIXMAN_ARM_BIND_FAST_PATH_SRC_MASK_DST (neon, add_8_8_8,
- uint8_t, 1, uint8_t, 1, uint8_t, 1)
-+PIXMAN_ARM_BIND_FAST_PATH_SRC_MASK_DST (neon, add_0565_8_0565,
-+ uint16_t, 1, uint8_t, 1, uint16_t, 1)
- PIXMAN_ARM_BIND_FAST_PATH_SRC_MASK_DST (neon, add_8888_8888_8888,
- uint32_t, 1, uint32_t, 1, uint32_t, 1)
- PIXMAN_ARM_BIND_FAST_PATH_SRC_MASK_DST (neon, over_8888_8_8888,
-@@ -296,6 +298,8 @@ static const pixman_fast_path_t arm_neon_fast_paths[] =
- PIXMAN_STD_FAST_PATH (OVER, x8b8g8r8, null, a8b8g8r8, neon_composite_src_x888_8888),
- PIXMAN_STD_FAST_PATH (ADD, solid, a8, a8, neon_composite_add_n_8_8),
- PIXMAN_STD_FAST_PATH (ADD, a8, a8, a8, neon_composite_add_8_8_8),
-+ PIXMAN_STD_FAST_PATH (ADD, r5g6b5, a8, r5g6b5, neon_composite_add_0565_8_0565),
-+ PIXMAN_STD_FAST_PATH (ADD, b5g6r5, a8, b5g6r5, neon_composite_add_0565_8_0565),
- PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, a8r8g8b8, a8r8g8b8, neon_composite_add_8888_8888_8888),
- PIXMAN_STD_FAST_PATH (ADD, a8, null, a8, neon_composite_add_8000_8000),
- PIXMAN_STD_FAST_PATH (ADD, a8r8g8b8, null, a8r8g8b8, neon_composite_add_8888_8888),
---
-1.6.6.1
-