It's time for another issue of the Nouveau Companion, which talks about the development work done on the open-source 2D/3D NVIDIA driver over the past two weeks. Among the topics talked about in this issue include PlayStation 3 graphics via Nouveau, using TTM memory manager, and the Gallium3D architecture. A stable 2D Nouveau driver is about completed with EXA support but currently lacks an EXA implementation on the older NVIDIA hardware and there are still problems with NVIDIA's GeForce 8 hardware.
Back with issue 28 about nouveau, the free driver project for NVidia cards.
No, we are not working on our own just for the sake of getting a driver, we do get help and do help other projects too. Haiku on the input side of things and MMioTrace on the output side are some examples and it seems during the last 2 week we saw the birth of just another one: Support for PS3 graphics.
It all started when IronPeter came into our channel and asked whether we knew anything about PS3 development and how to address NVidia cards there. We gave him some pointers (but had to admit that we couldn't help much with PS3 specific things as none of our developers has a PS3) and during the next days he came back asking for more information about how Nvidia cards work which we happily supplied.
After some work he finally got simple 2D blits working on PS3, avoiding at least one severe limitation of Linux on PS3. But see for yourself. All-important work was done by IronPeter, we only gave him some technical hints.
Reading this issue you'll probably notice that not much is written about the 3D part of the driver. That is mostly due to the fact that we need to bite the bullet and use TTM (which should be as good as "finished" as mentioned in the last issue). And a second "problem" is the new driver architecture "Gallium3D".
It depends heavily on newer features (like vertex programs, shaders etc.) and tries to take away much burden from the driver writer and put supporting infrastructure into Mesa. Of course old drivers and new drivers are not very similar. Gallium3D is bleeding edge and may as yet see a few revisions until it gets a stable API. And additionally, Gallium3D depends on those new card features. Writing a driver for older cards isn't that easy.
So we are once again waiting. This time however we have a plan: Get 2D working for all cards up to NV4x and perhaps do a first "release". The release would have to be taken with a grain of salt though, as the binary API may still be broken after that.