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 _______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman