Strange speed differences on composite
Adam Jackson
ajax at nwnk.net
Mon Feb 20 07:24:18 PST 2006
On Monday 20 February 2006 00:18, Torgeir Veimo wrote:
> On Tue, 2006-02-14 at 12:07 -0500, Adam Jackson wrote:
> > When Render is accelerated in hardware, you can simply load the 1 and
> > (1-srca) blend factors into the hardware and it runs like a normal
> > screen-to-screen blit; you can think of a plain blit as one where the
> > source blend factor is 1 but the dest blend factor is 0. When it's
> > not accelerated in hardware, you have to compute each output pixel by
> > reading the dst_color pixel from the framebuffer, blending it with the
> > src_color pixel in the CPU, and then writing that result back to the
> > framebuffer.
>
> Wouldn't it make sense to do _all_ client based rendering in software
> and only hardware accelerate the copy to framebuffer memory operations
> that the compositor needs to do in the case when exa isn't sufficient
> implemented?
This is basically the shadowfb model, which kinda works. Currently, using
shadowfb means giving up DRI and Xv, and most people aren't willing to give
that up. Also shadowfb has at least one known bug in the presence of the
Composite extension, which is admittedly fixable.
The problem is, unless you keep a full copy of the front buffer in host
memory, it _will_ be possible for the user to ask you to do a blend whose
destination pixels only exist in the front buffer, which is to say, on the
card. So you'd still need to do readouts.
EXA scoring should more or less handle this, with the advantage that since the
driver gave you a DownloadFromScreen hook for DMA, you can get the pixels out
of the framebuffer as fast as possible and en masse.
- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20060220/bcff3b1c/attachment.pgp>
More information about the xorg
mailing list