[Pixman] [PATCH 25/37 v2] armv6: Add src_1555_8888 fast path
Ben Avison
bavison at riscosopen.org
Mon Apr 20 17:10:52 PDT 2015
lowlevel-blt-bench results, compared to using the armv6 1555 fetcher:
Before After
Mean StdDev Mean StdDev Confidence Change
L1 57.0 1.1 70.1 0.6 100.0% +23.1%
L2 41.4 1.0 44.1 1.4 100.0% +6.3%
M 49.8 0.1 59.0 0.2 100.0% +18.5%
HT 21.4 0.3 32.3 0.3 100.0% +50.9%
VT 21.0 0.3 30.2 0.3 100.0% +43.8%
R 19.7 0.2 27.0 0.2 100.0% +37.4%
RT 7.0 0.2 10.9 0.3 100.0% +56.6%
---
pixman/pixman-arm-simd-asm.S | 10 ++++++++++
pixman/pixman-arm-simd.c | 9 +++++++++
2 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/pixman/pixman-arm-simd-asm.S b/pixman/pixman-arm-simd-asm.S
index 6674a9d..118cdf4 100644
--- a/pixman/pixman-arm-simd-asm.S
+++ b/pixman/pixman-arm-simd-asm.S
@@ -2803,6 +2803,16 @@ generate_composite_function_single_scanline \
.endif
.endm
+generate_composite_function \
+ pixman_composite_src_1555_8888_asm_armv6, 16, 0, 32, \
+ FLAG_DST_WRITEONLY | FLAG_BRANCH_OVER, \
+ 3, /* prefetch distance */ \
+ src_1555_8888_init, \
+ nop_macro, /* newline */ \
+ nop_macro, /* cleanup */ \
+ src_1555_8888_process_head, \
+ src_1555_8888_process_tail
+
generate_composite_function_single_scanline \
pixman_get_scanline_a1r5g5b5_asm_armv6, 16, 0, 32, \
FLAG_DST_WRITEONLY | FLAG_BRANCH_OVER, \
diff --git a/pixman/pixman-arm-simd.c b/pixman/pixman-arm-simd.c
index e6c5d81..ccb13fd 100644
--- a/pixman/pixman-arm-simd.c
+++ b/pixman/pixman-arm-simd.c
@@ -43,6 +43,8 @@ PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, src_0565_8888,
uint16_t, 1, uint32_t, 1)
PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, src_x888_0565,
uint32_t, 1, uint16_t, 1)
+PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, src_1555_8888,
+ uint16_t, 1, uint32_t, 1)
PIXMAN_ARM_BIND_FAST_PATH_SRC_DST (armv6, add_8_8,
uint8_t, 1, uint8_t, 1)
@@ -277,6 +279,13 @@ static const pixman_fast_path_t arm_simd_fast_paths[] =
PIXMAN_STD_FAST_PATH (SRC, a8b8g8r8, null, b5g6r5, armv6_composite_src_x888_0565),
PIXMAN_STD_FAST_PATH (SRC, x8b8g8r8, null, b5g6r5, armv6_composite_src_x888_0565),
+ PIXMAN_STD_FAST_PATH (SRC, x1r5g5b5, null, x8r8g8b8, armv6_composite_src_1555_8888),
+ PIXMAN_STD_FAST_PATH (SRC, a1r5g5b5, null, x8r8g8b8, armv6_composite_src_1555_8888),
+ PIXMAN_STD_FAST_PATH (SRC, x1b5g5r5, null, x8b8g8r8, armv6_composite_src_1555_8888),
+ PIXMAN_STD_FAST_PATH (SRC, a1b5g5r5, null, x8b8g8r8, armv6_composite_src_1555_8888),
+ PIXMAN_STD_FAST_PATH (SRC, a1r5g5b5, null, a8r8g8b8, armv6_composite_src_1555_8888),
+ PIXMAN_STD_FAST_PATH (SRC, a1b5g5r5, null, a8b8g8r8, armv6_composite_src_1555_8888),
+
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, a8r8g8b8, armv6_composite_over_8888_8888),
PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, x8r8g8b8, armv6_composite_over_8888_8888),
PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, a8b8g8r8, armv6_composite_over_8888_8888),
--
1.7.5.4
More information about the Pixman
mailing list