Card level differences between XAA and EXA hooks?

Connor Behan connor.behan at gmail.com
Fri Apr 6 23:36:48 PDT 2012


I am trying to port my driver to EXA (r128 if that matters 
https://bugs.freedesktop.org/show_bug.cgi?id=47866) and I've hit a brick 
wall trying to make it pass rendercheck tests. Specifically, the tests I 
am running are the quick ones: fill, dcoords, scoords, mcoords, 
tscoords, tmcoords, triangles and bug7366. With XAA, all tests are 
passed. With EXA I get 129/160, 2/2, 0/1, 0/1, 0/2, 0/2, 1710/1938 and 
1/1 respectively.

I'm wondering why that is. Obviously the answer is "I did it wrong" but 
I'm doing things very similar to what other drivers do. I'm only 
accelerating Solid and Copy right now. My EXA PrepareSolid sends the 
same bytes to the same registers as the XAA SetupForSolidFill. My EXA 
Solid sends the same bytes to the same registers as XAA 
SubsequentSolidFillRect. Same with (PrepareCopy, 
SetupForScreenToScreenCopy) and (Copy, SubsequentScreenToScreenCopy). I 
also made a conservative guess for what my EXA flags have to be - the 
flags saying that my card has as few features as possible. Do you think 
there are extra bytes that I have to OUTREG if I want to use EXA? Or is 
the problem more likely to be a subtlety of how I initialize it?


More information about the xorg-devel mailing list