keeleysam / tenfourfox

Automatically exported from code.google.com/p/tenfourfox
0 stars 0 forks source link

pixman-vmx does not support blt #163

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Blitting would probably significantly improve our software compositing 
performance. Right now it falls through; there is no vmx_blt.

The mmx implementation in pixman_blt_mmx is the most direct version, but we 
might want to do it like ARM's because it implements some subcomponent routines 
we should in pixman_blt_neon.

Original issue reported on code.google.com by classi...@floodgap.com on 5 Jun 2012 at 9:50

GoogleCodeExporter commented 9 years ago
This needs to wait until the new pixman is working in 14.

Original comment by classi...@floodgap.com on 5 Jun 2012 at 9:57

GoogleCodeExporter commented 9 years ago
pixman-sse2's blitter is probably even simpler to implement. As a followup, we 
should then implement all the missing functions in -vmx and upstream that, but 
this first pass gives us blt and composite_copy_area (which just calls blt). We 
then hack this into the main libpixman.

Original comment by classi...@floodgap.com on 5 Jun 2012 at 10:04

GoogleCodeExporter commented 9 years ago
I can't find where this is called, so we need to profile this.

Original comment by classi...@floodgap.com on 6 Jun 2012 at 1:23

GoogleCodeExporter commented 9 years ago
Comparing pixman-sse2 to pixman-vmx, we are missing

imp->combine_32[PIXMAN_OP_SATURATE] = sse2_combine_saturate_u;
// should be easy, AltiVec has very good saturation support

    imp->blt = sse2_blt;
    imp->fill = sse2_fill;

    imp->src_iter_init = sse2_src_iter_init;

First step is to see how much _blt and _fill get called.

Original comment by classi...@floodgap.com on 7 Jun 2012 at 4:48

GoogleCodeExporter commented 9 years ago
_blt and _fill don't get called!

Let's look at _combine_saturate_u and _src_iter_init.

Original comment by classi...@floodgap.com on 7 Jun 2012 at 1:20

GoogleCodeExporter commented 9 years ago
Nope.

The compositing operators Cairo uses are already implemented in pixman-vmx, and 
our blitting goes through cairo-quartz-surface, so there is no opportunity for 
improvement after all in our own pipeline.

Original comment by classi...@floodgap.com on 7 Jun 2012 at 1:27

GoogleCodeExporter commented 9 years ago

Original comment by classi...@floodgap.com on 23 Jul 2012 at 1:47