[cairo] Re: complex clip regions in cairo & glitz

David Reveman davidr at novell.com
Tue Aug 16 20:07:06 PDT 2005


On Mon, 2005-08-15 at 16:42 -0700, Vladimir Vukicevic wrote:
> Hi,
> 
> Things seem to grind to a halt whenever a complex
> (non-axis/pixel-aligned rectangular region) clip region set.  In
> particular, glitz_composite with a dst surface using an A8 format
> seems to cause nvidia's EXT_framebuffer_object impl to always return
> UNSUPPORTED after the attachment is checked.  Any ideas if this is
> something for nvidia to fix, or if it can be worked around?

Don't know if they'll ever support that, it would nice though.

In some cases the glitz backend could be using RGB or RGBA surfaces for
ALPHA surface but that would waste some memory of course.

The current software fall back path needs to be improved. I imagine that
something like this happens:

create_a8_surface
fill_a8_surface ***UNSUPPORTED***
    software_fall_back
    push_pixels_to_a8_surface
comp_traps_to_a8_surface ***UNSUPPORTED***
    fetch_pixels_from_a8_surface (SLOW)
    software_fall_back
    push_pixels_to_a8_surface
done

making it do the following instead would improve performance a lot:

create_a8_surface
fill_a8_surface FAILED
    software_fall_back
comp_traps_to_a8_surface ***UNSUPPORTED***
    software_fall_back
    push_pixels_to_a8_surface
done

-David



More information about the cairo mailing list