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?
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to