[FrontPage] [TitleIndex] [WordIndex

The irregular Nouveau-Development companion

Issue for November, 25th

1. Intro

Well, after getting over the major hurdle, which was named "context switch" development speed is picking up and needs to be covered by a new issue of our TiNDC.

Seems as if I owe an apology to jkolb, which I labeled "new to the project". This was wrong, he is supporting our project much longer than me. Darktama fixed my oversight in the Wiki, but still...

2. Current status

Well, just after I finished my review of the IRC logs for the last TiNDC, a maintainer from Fedora Core (ajax) popped in and asked whether we would be strongly against nouveau as an additional driver in Fedora Core 7 to get more testing. Consensus was reached that as long as this is not the default for NVidia cards in Fedora Core, we would really like to get some more exposure. Ajax started merging our driver but got some smaller problems because our version and the FC version of DRM differed and needed some more manual merge work.

More work was done by marcheu and pmdata in order to unify the naming of the objects and constants in renouveau. Although not much work is done anymore in renouveau, because reengineering is mostly done (yes, our feature matrix says something different), we still use the constants in renouveau in order to autogenerate nouveau_reg.h.

Apropos "autogenerating": pq started work on an pci id parser in order to generate nouveau_cards.c from the pci id list (plain text version available here: http://pci-ids.ucw.cz). He used Perl for this tasks, hit some problems with notation, duplicated entries as well as bugs on our side. So he did some redesign and imported it into cvs. Currently he is at version 3, trying to optimize GPU classification.

Well, mirage-pt read our plea for help regarding and offered to test his new 8800 Nvidia card with both renouveau and nouveau. His card didn't work under Linux neither with the X11 nv (no devices detected) driver nor with the newest NVidia binary driver (system freeze). So he asked us for help. Marcheu created some patches which added some support but although the card was recognized correctly the monitor just got no signal from the card. Further investigation revealed that the 8800 uses a new chip for signal generation which probably needs some additional initialisation.

Marcheu finished his work on software transforming, clipping and lighting (often called: "swtcl"). This is used for two cases:

If you read our last issue, you most probably have noticed that I said that work on graphics context switching would be next. This is not implemented yet and still needed. But the developers really wanted to see results, like hardware rendered triangles and some such. So they setup two FIFOs: one for X and one for 3D and try carefully not to stomp over the other context. This way, simple 3D acceleration (only 1 openGL client possible right now) would be possible, which seems to be more fun than context switching of any type :)

First visible result was darktama's mini test which ignored all windows and other boundaries and simply blitted hardware accelerated triangles onto the screen:
pretty.jpg

Yes, not much to see, but a first: The first screen shot of nouveau working in TiNDC. More importantly, it proves that the driver is setting up and using more than 1 FIFO.

Next thing we needed was a working glxinfo. Prior to further work done by darktama, glxinfo would simply refuse to work, because some structures in the driver were not correctly initialised. Although some values aren't calculated yet but fixed, it is enough to get glxinfo to spit out correct info about nouveau.

Next topic which was attacked by marcheu is state caching. A state is property with a limited set of valid values like Lighting (Enable/Disable), Blending (Enable/disable) and so on. Now GL programs could emit something like:

Now the second time this is unnecessary. If you cache the state, the driver will only emit Blending(Enable) once which is good for performance as most GL programs are not optimal in this regard. More work for plugging nouveau into Mesa's state management was done by jkolb.

Next target after glxinfo seems to be glxgears. As glxgears is using lighting, we needed more information on how to setup the parameters. Pmdata did the grunt work and found out how each parameter needs to be calculated.

3. Help needed

We always need help, just drop into #nouveau on freenode.org and offer your help. Currently we would really like someone with the newly released NVidia 8800 to come to our channel and offer testing help. It seems as if some new objects were introduced with this new generation of cards.

<<< Previous Issue | Next Issue >>>


2013-03-24 13:16