On Thursday 26 August 2010 15:09:32 Soeren Sandmann wrote:
> Siarhei Siamashka <siarhei.siamas...@gmail.com> writes:
> > +.macro pixman_composite_src_n_8_0565_process_pixblock_head
> > +    /* in */
> > +    vmull.u8    q15, d24, d2
> > +    vmull.u8    q3,  d24, d1
> > +    vmull.u8    q2,  d24, d0
> > +    vrshr.u16   q12, q15, #8
> > +    vrshr.u16   q11, q3,  #8
> > +    vrshr.u16   q10, q2,  #8
> > +    vraddhn.u16 d16, q15, q12
> > +    vraddhn.u16 d19, q3,  q11
> > +    vraddhn.u16 d18, q2,  q10
> > +.endm
> > +
> > +.macro pixman_composite_src_n_8_0565_process_pixblock_tail
> > +    /* convert to r5g6b5 */
> > +    vshll.u8    q14, d16, #8
> > +    vshll.u8    q8,  d19, #8
> > +    vshll.u8    q9,  d18, #8
> > +    vsri.u16    q14, q8,  #5
> > +    vsri.u16    q14, q9,  #11
> > +.endm
> 
> It's remarkable how much NEON can do with so few instructions.

ARM NEON is indeed very nice to work with, it's probably one of the best SIMD
extensions around.

> >  static const pixman_fast_path_t arm_neon_fast_paths[] =
> >  {
> > 
> > +    PIXMAN_STD_FAST_PATH (SRC,  a8r8g8b8, a8,       r5g6b5,  
> > neon_composite_src_8888_8_0565), +    PIXMAN_STD_FAST_PATH (SRC, 
> > a8b8g8r8, a8,       b5g6r5,   neon_composite_src_8888_8_0565),
> 
> It seems like this fast path will work as src_x888_8_0565 as well
> since the alpha channel is completely ignored.

Right. That's a good catch.

-- 
Best regards,
Siarhei Siamashka

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to