Before jumping to the Linux 2.6.39 kernel changes, it's first worth noting the open-source AMD Fusion support in the Linux 2.6.38 kernel. As I mentioned last week, the open-source DRM/KMS Fusion support is broken. Fortunately, a trivial patch was quick to emerge. However, over the weekend I discovered another show-stopping problem that led to the AMD E-350 (Fusion) graphics failing due to a TTM memory management problem. A patch to fix this latest issue has already been written by David Airlie and gone through a few revisions, but I haven't yet tested the patch. David though did send in yet another pull request this morning to Linus Torvalds for Linux 2.6.38 final that provides last week's trivial Fusion page-flipping patch plus the most recent patch from this weekend for the TTM memory management problem. The DRM/KMS support for the AMD Radeon HD 6870 on the Linux 2.6.38 kernel is also shoddy even with today's Git kernel and can lead to a hard lock-up, but I digress.
In regards to the Linux 2.6.39 kernel, I received a note over the weekend from a reader that said, "pls report about the changes in drm-next. i tested it with several mesa and libdrm git versions. with the drm-next kernel instead of stock 2.6.38 kernel fps in heroes of newerth with full details went from 10 to 30 on and hd4850. on windows with latest drivers and opengl renderer 37 fps. thats almost over 75 percent performance. even lightsmark 2008 went from 50 to 97 fps.i did not bisect the commits in drm-next cause i dont wanna compile so many kernels. im using colortiling pageflipping swapbuffers off and metacity." The Phoronix reader additionally mentioned "and fyi everything rendered correctly. in general i reach about 70% of fglrx...awesome nexuiz went from 20-50 to 100-200 fps."
I did run a few quick tests last night on an AMD RV730 graphics card with Mesa/DDX Git and the latest from the drm-next tree. However, at least when Compiz is enabled and not disabling the SwapBuffersWait option, there wasn't any major change when going from the Linux 2.6.38 Git to the drm-next kernel. Of course, when Radeon users go from Linux 2.6.37 (or earlier) to Linux 2.6.38 there are huge performance improvements thanks to KMS page-flipping landing and other work. Over the coming days I'll try to substantiate this reader's claims of such extraordinary improvements in drm-next.
Among the features queued up in drm-next for the Linux 2.6.39 kernel are:
- AMD Cayman GPU KMS support (the AMD Radeon HD 6900 series), but this currently doesn't have the DRM bits for EXA/X-Video acceleration nor for 3D acceleration (there is also no Gallium3D user-space support yet)... Hopefully the kernel changes are able to be pushed prior to the 2.6.39 merge window closing.
- NV50/Fermi KMS page-flipping in the Nouveau driver.
- NV50 support for compression and various other features primarily for NV50 and NVC0 (Fermi) hardware.
- An overhaul to the Radeon DRM texture checking to support block formats like S3TC.
- A USB framework has been added to the Direct Rendering Manager code so that USB-based graphics devices can plug into DRM/KMS. This is quite interesting and will allow for USB graphics devices like those from DisplayLink to have a kernel mode-setting driver. David Airlie has already started work on such a DisplayLink DRM driver.
Though some of what's not found in drm-next right now for the Linux 2.6.39 kernel is:
- The VIA TTM/GEM and KMS patches by James Simmons. These are still being worked on, but it appears no effort has been made yet to push them into the mainline tree.
- No acceleration support for NVIDIA GeForce 400 / 500 "Fermi" graphics cards when there is no firmware available / there is no "free" firmware yet for these GPUs with the Nouveau driver.
- Again, no AMD Cayman acceleration support quite yet.
- No Intel G45 VA-API support.