Not getting expected performance improvement after accelerating bitBlit through KAA

Adam Jackson ajax at
Mon Nov 9 08:08:00 PST 2009

On Thu, 2009-11-05 at 14:55 +0530, prudhvi raj wrote:

> I have developed my driver using KAA in the same lines as ATI and
> Mach64 drivers, for example in order to implement hardware fillrect, i
> have implemented the corresponding hooks provided by kaa PrepareSolid,
> Solid and DoneSolid. In "Solid" hook i have placed my hardware
> fillrect api.For blit also i have placed the hardware blit call in
> "Copy" hook of KAA.
> But even though some calls are getting called through these kaa hooks
> i am not getting much performance improvement.

I wish to point out here that mach64 is never going to be a fast chip.

> So my queries are,
> 1. Am i placing my hardware API calls at right places in order to
> accelerate fillrect, blit operations?? As the number of hw calls are
> very fes compared to software calls i doubt whether the way to acheive
> hardware acceleration is this only or do i miss some more
> implementation??

You have implemented the hooks KAA gives you.  This does not mean that
the hooks KAA gives you are sufficient.

> 2. If placing the harware calls in the hooks provided by kaa should be
> enough to attain acceleration, why is the performance is not getting
> improved?? As the 'blit' operation happens huge number of times, by
> accelerating blit the performace should be improved drasticly.

Like I said last time: KAA does not accelerate all paths.  fbBlt is used
for both screen-to-screen and host-to-screen copies (and screen-to-host
for that matter).  Host-to-screen is not something KAA accelerates.

> 3. As per your comments, if the reason for not getting performance
> improvement lies inside KAA architecture itself, should i move to EXA
> to attain better performance improvement?? Using EXA would help to
> improve the performance??

It might.  It might not.  There are no silver bullets.

> 4. Can you provide some sample drivers (as ATI, Mach64 in case of KAA)
> thst uses EXA for acceleration?? Please provide any documentation
> resources that explain the design and imeplementation details of KAA,
> EXA, XServer and how to acheive hardware acceleration in tinyx etc.

The radeon and nouveau drivers both implement EXA backends, as does the
Xephyr server in kdrive.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
Url : 

More information about the xorg-devel mailing list