Nouveau Companion 43

Written by KoalaBR in Display Drivers on 19 March 2009 at 01:00 AM EDT. Page 4 of 4. 10 Comments.

Q: Well probably that what most of our readers are interested in. Last year NV4x cards were the ones supported best in terms of 3D. Does this still hold true?

A: Yes, although NV30 comes as a close second now, as both can mostly run OpenArena.

Q: What about NV5x and later cards? A bunch of patches came into git since Ben got hired by Red Hat...

It just does the basic stuff for now, i.e. no Quake 3 :) By the way, if you're interested in joining, improving the NV50 driver is probably one of the most feasible tasks at hand right now (Please see our SoC request in the Help section too).

Q: From reading the logs, it seems that one of the last big hurdles is the tiled scan-out buffer...

A: Hopefully, but I don't think you can ever say "last hurdle" in that kind of project :)

Q: Could you give a short overview about the current status of Gallium in general? Are the APIs stable?

A: Ongoing development is happening in the field of texture transfers. Basically these new abstractions will allow more efficient transfers of texture and pixel data to and from texture memory. In order to do so, two main changes were done by the Vmware people (formerly Tungsten Graphics people):

- An in-gallium abstraction for a buffer upload class
- Defining precisely what attributes we expect from the other than that, the APIs have not changed recently.

Q: So what about LLVM, why did we need it at all?

A: Currently, Gallium3D generates shaders and sends them to the card without optimization. As shaders are used everywhere, this results in suboptimal performance. On the other hand, LLVM is a compiling an optimizing framework that's aimed at being re-targetable and flexible.

The plan with LLVM is to have it optimize and compile the shaders for the Nouveau-supported cards at least. For this, we need to have Gallium3D output shaders to LLVM. Then, we have to write LLVM back-ends for the cards we want to support.

Q: And what is the current status?

A: The current status is that we're able to run some vertex shaders on the CPU with SSE code generation (using the git gallium code). Using LLVM and some basic tests it's also possible to detect fixed pipe shaders, and we also have the (unfinished, really) hardware description for NV40 chips. But all this is still in independent programs at the early stages, the code needs to be plugged back into the right places.

Q: As we missed our initial goal for the first working 3D Nouveau slightly (*Ahem*), what are your current thoughts about our schedule?

A: I don't think we should make schedules, we've proved before that we aren't good at it :)

Q: Where are your slides?

A: http://icps.u-strasbg.fr/~marchesin/nvdri/nouveau_update.pdf and http://icps.u-strasbg.fr/~marchesin/nvdri/g3dllvm.pdf

I would really like to thank Marcheu for taking time to answer those questions although he currently is very busy in Real Life (TM). Same for Matthew Garrett who took the time to answer my questions although he was in the middle another project / problem!

Help Needed

Summer of Code is once again coming this year (albeit a bit smaller) and we need suggestions. So if you have ideas or even want to participate, please contact us before April 3rd. If you read this issue, you should a have a few basic ideas of what needs to be done ;)

Darktama is asking for tester of 9xxx cards, which until yet didn't work (see last issue, too). Please let us know if 2D works for you now. We had one report that a 9600 M GT is working, but we would like to have more feedback.

So *BSD fans, here is your chance to help Nouveau on your platform: RNoland has currently an 8800GTS and a 6800GT, both of which are PCI Express. To allow for a wider range of cards and bus systems to test on, he would gladly accept any donation of an NVidia AGP card (>= NV1x).

Finally two requests by malc0:

- In case you are setting Randr12 to "off" in your Xorg.conf: Please refrain from doing so. The old code path is deprecated and will be removed rather sooner than later. If there is a problem using RandR 1.2 mode, please let us know so it can be fixed!
- If anybody UK based has an AGP Gforce7xxx they want to donate, Malc0 would be very interested

If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.


Related Articles