In the thirty-seventh edition of the Nouveau Companion, the
topics covered largely come down to Gallium3D, the status of the Nouveau driver
for each of the NVIDIA product families (primarily the GeForce 8 series), and
of interest is that RandR 1.2 should soon be enabled by default for this reverse-engineered
open-source 2D/3D NVIDIA driver. The Nouveau developers are working on Gallium3D
extensively and recent David Airlie had tried the Nouveau Gallium3D driver for
PowerPC, but there is a problem with depth buffers. The GeForce 8 (NV50) status
is continuing to improve but there's still work to be done, as these GPUs have
no NV40 compatibility mode. Read the rest in this edition of the Nouveau Companion.
Hello, you are going to read issue #37 of TiNDC. If you expect
this issue to be as long as the last one, please prepare for some disappointment.
We will get back to the normal length this time.
All in all, not much obvious progress to report, as people try
to get to grips with Gallium or are working to get Gallium working on their cards.
If you feel brave, you can try it out according to Hanno
Boeck's blog or have a look at our
Please note that we can't and won't give you any support for this
yet. If it works, you are lucky, if not, please don't complain. There are known
bugs in both Nouveau and Gallium and we are working on it. But we have just started...
The question was raised whether Nouveau would be manipulating
things like fan speed. Answer is: No, please use Thunderbirds NVClock for that
kind of work.
Last topic for this introduction: We got an 8400 card donated
by kho. This card won't leave the greedy little hands of Marcheu who will join
Darktama's efforts to get 3D on NV50 cards going. Thanks you very much kho for
your generous donation!
GSoC 2008 saw Xorg accepted as a mentor organization. Depending
on the results from the last two years we are not that optimistic that we could
get a slot with Xorg mentoring us. If it works out, we would like to work on NV5x,
so if you have a spare 8x00 card you could donate, please come forward. And no,
we don't expect you to donate a 8800 GTS or 9x00 card. Another 8400 or 8500 card
And as this got asked a few times on IRC: We consider the latest
G92 cards to be part of the NV50 family and we will support them in the future.
Please note, that currently there are drawbacks (more on this in the next chapter).
The Current Status
As we hinted at in the last issue, kernel mode-setting is going
mainstream soon. Fedora 9 will be there first, getting the
Stillunknown and Malc0 continued cleaning up and fixing Randr1.2.
Its code path for NV50 was cleaned up to as there was much cruft accumulated.
The new edition is now more in tune with the code for the others cards. However,
no new functionality was added, only obvious problems were fixed (please note,
that neither Malc0 nor Stillunknown have an NV5x card available). So, the code
works as well (or as bad) as before.
Still there seems to be some hope: The Xorg-NV got code to parse
the BIOS tables of the NV50 based cards. Maybe malc0 will be able to adapt it
to our code base. What comes out of it remains to be seen, though.
Beyond that, the time frame was for Randr1.2 was mainly confirmed
if no real showstoppers rear their ugly head. By the way, Nouveau does not crash
when exiting X. It simply tries to restore text mode and fails horribly, leaving
an unusable text console.
PPC Gallium and had some problems with the depth buffer. Further inspection by
Darktama and Marcheu hinted at a possible problem in Mesa for PPC. There seems
to be a problem with the depth buffers. Look at the green gear for the problem:
Darktama did some work on NV30 helping pmdata to get the card
init going. "I just put the NV30GL in for the fun of it, and fixed the main
issues, the rest is up to pmdata now :)"
Benkai is still working on summarizing options, problems and possible
solutions barring suspend support for Nouveau. After that he started working on
testing suspend / resume functionality on NV04 by hacking the code for suspend
into EnterVT (Switch to text console) and for resume into LeaveVT. So when entering
text console, the status was saved and restored when switching back to X.
For that functionality, an ioctl() was added to the DRM and PGRAPH
proved trivial on NV04: Nouveau simply allocates a channel and calls engine->graph.save_context()
before PGRAPH init. For resume a call to engine->graph.restore_context()
was sufficient. After that Nouveau was working after a LeaveVT/EnterVT (with PMC/PTIMER/PFB/GPRAPH
After that success, benkai added save/restore of all PFIFO registers
to the ioctl(). Nouveau now gets a PGRATH context switch interrupt after
X starts sending commands through the FIFO again. Unfortunately, the card emits
weird errors after wards.
As already noted in an earlier issue, find the current
status here. After seeing his power bill, Ahuillet expressed interest too.
And now for some information about the NV50. Originally, we had
hoped that the NV50 would have a NV40 compatibility mode, but that hopes were
shattered early on. With reverse engineering being a bit behind and tasked to
find his way around Gallium, Darktama decided to work on NV4x where most things
needed were already known.