[cairo] recursive quad-tree, or bounding box of changed area
during drawing?
Leon Woestenberg
leonw at mailcan.com
Sat Jun 3 18:54:07 PDT 2006
Hello all,
Soeren Sandmann wrote:
> Carl Worth <cworth at cworth.org> writes:
>
>
>> Those results are aberrant. There is no good reason that the xlib
>> backend should ever be significantly slower than the image backend,
>>
>
> One thing that will cause the exact same code to run much slower in
> the X server, is if the destination ends up in video memory. Reading
> from video memory happens at speeds like 13 MB/s.
>
Exactly, in a more general sense, whatever cairo renders must be brought
to a phyical medium. If there is a bottleneck in that interface, we
might as well ask cairo *what* it has actually rendered, so that we
smartly use the interface bandwidth available.
> As an example, in such a scenario filling three alpha rectangles of
> size 1000 x 1000 x 32 bit will take more than a second to render.
>
Given I render to 1920x1080x32 to video memory, that's exactly why I
asked about querying cairo for a dirty region. I will probably be doing
many things in a image back buffer for the exact same bandwidth problem.
This thread has run off in a different direction considering
optimization of performance of the software above the interface (I am
aware there is much to be done there, but it is irrelevant to what I
asked) and X (which is not what I use). My aim was to see if the
software above (mostly cairo) allows me to query what has to be put
through the interface.
But given the input from the list, the canvas approach seems most
appealing, as its at the same level as the software that manages back
buffers and initiates DMA blits and allows me to stay independent of the
vector rendering engines.
Regards,
Leon.
More information about the cairo
mailing list