Nouveau Companion 30
Once again, more than 2 weeks have passed and it is time for yet another issue of the TiNDC.
So we are fighting to get a first "stable" release of nouveau out as soon as possible. This release will include 2D, Xv and EXA acceleration for all cards from NV05 to NV4x. Owners of NV04 won't get EXA due to hardware limitations, while NV5x cards (GeForce 8x00) won't get much more than working 2D and hopefully working mode setting for the common cases.
NV5x is seriously understaffed with only Darktama (who is limited in his time due to real life concerns) and two novice developers trying to get the hang of it. KoalaBR is basically restricted to some reverse engineering and testing due to real life concerns.
We do often get reports that our driver is working slowly with GNOME or KDE in that icon rendering seems to be delayed. All cases we got so far have been traced back to an Xserver 1.3 installation. Moving to the recent Xserver 1.4.1 fixes the issue. Please do not use Xserver 1.4, which had some issue with EXA and in the input department.
By the way, for every new issue I do annoy different developers to check for factual errors and typos. I would like to say "Thank you" for their help.
The Current Status
Marcheu fixed most outstanding issues with EXA NV3x and even got PPC working again. Still with composite there are outstanding bugs, one that makes text in QT applications disappear.
Next thing we want to do, is say "thank you" IronPeter who is working to get 3D working on the PS3 (a big endian machine). He did ask for help and as far as possible, we were glad to help. So he did get 3D vertex and fragment shader programs to work. But best thing is he found our problem with the missing glxgears colors too: fragment shaders need 32-bit constants swapped 16-bit wise (ABCD would be CDAB). Darktama immediately changed our code for DDX to reflect that, airlied did some testing on his G5, and it worked. So NV4x EXA is now accelerated on PPC too!
Seeing that, airlied added the bug fix to the DRI driver too. In addition, this got rid of the "no colors" gears. Later tests on different hardware however were conflicting for 2D: some said it worked, some claimed crashes. Links: Airlied blog, IRC log, DRI patch, DDX patches (here and here).
But still non-NV4x EXA was either not working on PPC or working slowly. So both Airlied and Marcheu approached the PPC guru benh and asked for help. He volunteered to have a look at the code and audit it for typical endian bugs. This work is still ongoing, but at least we didn't commit any obvious PPC crimes, even benh needs to take a deeper look.
AndrewR tested EXA on NV11 and reported the same problem (missing fonts) on NV11. p0g investigated the issue and got confused with the values for X/Y position on screen handed to nouveau by EXA. Later he found the problem and fixed it.
Ahuillet and p0g tried to get the final hurdle for fast EXA on NV1x cleared: Finding a way to implement the A8+A8 PictOp. That proved difficult, as they couldn't find a hardware supported way to do it. Options were discussed (like convert to a known texture format, where to convert etc.), but no immediate solution came out of it. After a few tests, which yielded problems, if width, destination x/y positions weren't even, a discussion between ahuillet, p0g and marcheu started. Ahuillet's hacks were scrapped and an enhancement patch for EXA was sketched out. IRC log. So both tried various yet unknown values to the texture format in order to find a fitting texture mode but yet without luck.