diff options
Diffstat (limited to 'pixman/pixman/pixman-arm-neon.c')
-rw-r--r-- | pixman/pixman/pixman-arm-neon.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/pixman/pixman/pixman-arm-neon.c b/pixman/pixman/pixman-arm-neon.c index 3e0c0d1c2..c7c025418 100644 --- a/pixman/pixman/pixman-arm-neon.c +++ b/pixman/pixman/pixman-arm-neon.c @@ -232,6 +232,47 @@ pixman_blt_neon (uint32_t *src_bits, } } +void +pixman_scaled_bilinear_scanline_8888_8888_SRC_asm_neon (uint32_t * out, + const uint32_t * top, + const uint32_t * bottom, + int wt, + int wb, + pixman_fixed_t x, + pixman_fixed_t ux, + int width); + +static force_inline void +scaled_bilinear_scanline_neon_8888_8888_SRC (uint32_t * dst, + const uint32_t * mask, + const uint32_t * src_top, + const uint32_t * src_bottom, + int32_t w, + int wt, + int wb, + pixman_fixed_t vx, + pixman_fixed_t unit_x, + pixman_fixed_t max_vx, + pixman_bool_t zero_src) +{ + pixman_scaled_bilinear_scanline_8888_8888_SRC_asm_neon (dst, src_top, + src_bottom, wt, wb, + vx, unit_x, w); +} + +FAST_BILINEAR_MAINLOOP_COMMON (neon_8888_8888_cover_SRC, + scaled_bilinear_scanline_neon_8888_8888_SRC, + uint32_t, uint32_t, uint32_t, + COVER, FALSE, FALSE) +FAST_BILINEAR_MAINLOOP_COMMON (neon_8888_8888_pad_SRC, + scaled_bilinear_scanline_neon_8888_8888_SRC, + uint32_t, uint32_t, uint32_t, + PAD, FALSE, FALSE) +FAST_BILINEAR_MAINLOOP_COMMON (neon_8888_8888_none_SRC, + scaled_bilinear_scanline_neon_8888_8888_SRC, + uint32_t, uint32_t, uint32_t, + NONE, FALSE, FALSE) + static const pixman_fast_path_t arm_neon_fast_paths[] = { PIXMAN_STD_FAST_PATH (SRC, r5g6b5, null, r5g6b5, neon_composite_src_0565_0565), @@ -343,6 +384,10 @@ static const pixman_fast_path_t arm_neon_fast_paths[] = PIXMAN_ARM_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, r5g6b5, r5g6b5, neon_0565_8_0565), PIXMAN_ARM_SIMPLE_NEAREST_A8_MASK_FAST_PATH (OVER, b5g6r5, b5g6r5, neon_0565_8_0565), + SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, a8r8g8b8, neon_8888_8888), + SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, neon_8888_8888), + SIMPLE_BILINEAR_FAST_PATH (SRC, x8r8g8b8, x8r8g8b8, neon_8888_8888), + { PIXMAN_OP_NONE }, }; |