Nouveau Companion 42

Written by KoalaBR in Display Drivers on 20 January 2009 at 03:36 PM EST. Page 2 of 2. 5 Comments.

RNoland came into our channel and asked for help in getting Nouveau ported to *BSD. After some introductory info from stillunknown he started off to get it working. First question was how we managed PCI-IDs, as he was looking for some kind of list or "database" of valid IDs in the driver.

PQ and Stillunknown told him that we don't use the device ID at all. Instead, we ask for all PCI devices that report themselves with NVidia vendor ID, and a graphics card class. To identify the chipset, we read register 0 (NV_PMC_BOOT_0) and find out what chipset (as in NV34, NV50, NV50 etc) the card is from there. We use those IDs to find out whether it is a graphics device or something different, otherwise Nouveau doesn't use these IDs at all.

Some words about the current plans for Nouveau:

There is one major roadblock which needs to be cleared in order to be able to release at least a "Nouveau 2D" version of our driver. This roadblock is called Kernel Mode Setting (KMS).

With an Intel version going into the vanilla kernel, the API for KMS should be mostly stable. Still, every driver using this would need a memory manager. We basically settled for a TTM with a GEM boilerplate, but only our NV50 code uses this and that part of the code is far from being finalized. So the bitter truth is: We currently are working towards getting a memory manager, but it is not there yet.

Additionally, we do have some NV50 and NV40 KMS code which is a prototype. It works under clearly defined circumstances but is not ready for general consumption. Work on it should be resumed soon or is already under way.

As you can see: There is still much to do until we can reach the first release milestone.

We did have a few requests regarding 8200/8300 and 9200/9300. Those chips are onboard and currently have problems with Nouveau (or vice versa, pick your poison :o)). A missing voodoo for those are only the first problem. As even nv doesn't work with those chips yet, we don't even have a hint of what to do.

And finally a few quick notes:

- Marcheu updated our ToDo page, which is used more like a "Don't forget problem(s) xyz" page. If you want to help us out with code, join us in #nouveau and simply ask us. We will gladly give you something to do! :)
- AVRS2 reported a problem with fullscreen apps using resolution smaller than the native monitor's one to be using only the upper part of the screen instead of being really fullscreen. Malc0 had a look and proposed a simple fix. AVRS2 confirmed it was now working correctly and the fix went into our repository.
- If you have font problems with X-Server 1.4.x please try X-Server 1.5.x first before reporting any bugs.
- Darktama fixed a bunch of NV50 bugs. e.g it should now display all 3 gears in glxgears. Citing Darktama: "Still not worth trying yet however!"
- Besides what was hinted at above, ymanton did a bunch of work on both bug fixing, user supper and Gallium video decoding. I can't do him enough justice here.
- After YManton found out how to swizzle textures during upload pmdata was able to get NV3x Gallium working just a bit better. This compared to an older version where the swizzle wasn't working correctly. On January 10th, ymanton updated the swizzle code. Ah, in case you don't know what swizzle is here is a good link.

Help Needed

Not directly related to Nouveau but pq is looking for someone to take over MMioTrace maintainer-ship midterm. If you are interested, please come into #nouveau and ask pq!

FOSDEM is early next months. Not sure if I will be attending, but in any case I am trying to put together yet another special edition. This is a must as there is traditionally a "State of Nouveau" talk by Marcheu. Hope to see you there.

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