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
patch, DDX patches (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
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.