NVIDIA Maxwell GPU Support On Nouveau Still Requires More Work
For NVIDIA Maxwell support within the open-source driver there's basic support within recent Linux kernel releases, the user-space code for Maxwell has landed within Nouveau's NVC0 Gallium3D driver, and there's xf86-video-nouveau support using GLAMOR. With the GLAMOR-required acceleration for Maxwell, the Nouveau DDX depends upon the built-in GLAMOR of X.Org Server 1.16 and newer (rather than the earlier independent GLAMOR acceleration library). With Ubuntu 14.10 now having X.Org Server 1.16 and is running the Linux 3.16 kernel (though with my tests for this Maxwell trial I already switched to Linux 3.17 Git), I pulled in the latest Mesa 10.4-devel packages and other updated components via the Oibaf PPA On Ubuntu 14.10.
With the Linux 3.17 + Mesa 10.4-dev + Nouveau DDX Git configuration, booting the GTX 750 and GTX 750 Ti both led to failures with the display not lighting up. When checking out the Xorg log, using the Nouveau DDX failed and was falling back to VESA. When looking at the dmesg for the Nouveau DRM kernel report, it was missing external firmware files.
Like with previous generations of NVIDIA hardware, there's external firmware files needed for initializing the GPU with hardware acceleration. These firmware files must be manually made by running MMIOtrace on the particular system when loading and running the proprietary NVIDIA Linux graphics driver. Those unfamiliar with the process can read the NVC0 Firmware Wiki page for assembling the "FUC" files. The good news is that after a few kernel cycles, the newer NVIDIA hardware ends up having support within Nouveau DRM for being able to effectively self-generate the firmware so you don't need to go through the mess of manually creating these non-redistributable firmware blobs. Kepler, Fermi, and previous generations of hardware are already covered (sans the firmware files for video acceleration), but Maxwell doesn't yet have this self-programmed ability within the Nouveau DRM.
Unfortunately even when doing an MMIOtrace with the NVIDIA 331 driver on Ubuntu 14.10 with the EVGA GeForce GTX 750, the GPU still didn't initialize properly and were left with PGRAPH issues on booting Linux 3.17. Hopefully Nouveau will be able to self-initialize Maxwell hardware correctly soon without the need for the external firmware files. The support isn't yet in place for drm-next in Linux 3.18 -- and the drm-next merge window is closing soon -- so that important support might be left until Linux 3.19 or later.
Once the open-source Maxwell support is in better state, I'll benchmark the GTX 750 and GTX 750 Ti under the open and closed-source drivers together, but chances are the GTX 900 series will be out by then. Once the hardware is initialized correctly for hardware acceleration, there's also the extremely difficult task for Nouveau of handing GPU/memory re-clocking. For now, at least NVIDIA's proprietary Linux graphics driver thankfully tends to be first-rate...
Update: It looks like part of the Maxwell failure may have been due to running the MMIOtrace on an older version of the NVIDIA driver than what the MMIOtrace/Nouveau needs, per this message post. I will be re-running it on the 340.32 driver to see if things change; in which case, stay tuned for an additional article on Phoronix.