Replace xf86-video-nv with xf86-video-nouveau as default for NVIDIA GPUs
Nv is an open-source driver maintained by NVIDIA. While this driver has some measure of support from the manufacturer itself, it is very limited in terms of the features it supports.
Nouveau is an effort by the community to produce an alternative open-source NVIDIA driver which can provide the features that are required for a modern desktop experience. The major benefits nouveau currently provides over nv are:
- Supports a few chipsets that nv does not.
- RANDR 1.2 support available across all card families.
- Accelerated XRENDER supported from NV10 (GeForce 3) onwards
- NV40 onwards (Geforce 6/7/8/9) accelerate the majority of XRENDER that is exposed by EXA
- Textured video supported on all chipsets from NV30 onwards.
- Nv doesn't support any form accelerated XVIDEO on G80 and above
- Name: Ben Skeggs
- email: firstname.lastname@example.org
- Targeted release: Fedora 38
- Last updated: 2009-01-28
- Percentage of completion: 70%
- Modify xserver autoconfiguration code to select nouveau on supported chipsets before trying nv.
- nv for NV03 (RIVA 128) series
- vesa for a couple of known not-working chipsets (in both nouveau and nv), until support appears
- nouveau for everything else
- Ensure nouveau is functional across all supported card families.
- Make sure performance on earlier cards is adequate for desktop use.
- Ensure manpage is accurate and up-to-date
- If kernel module initialisation fails (ie. chipsets missing ctxprog), fallback to shadowfb
- See about implementing multi-master support in the nouveau kernel module, to enable the use of fast user switching features.
- xf86-video-nv supports all chipsets from NV03 onwards. Nouveau only supports from NV04 as previous chipsets are vastly different and beyond the scope of what nouveau aimed to support. xf86-video-nv will still need to be used here.
- From GeForce 6 onwards NVIDIA GPUs require a small program to be uploaded to the GPU in order to control multiple hardware contexts. Nouveau cannot operate without this information, and limitations in the current understanding of this program prevent us from being able to write our own. As such, this information is currently extracted from traces provided by users of the NVIDIA binary driver initialisation.
- GeForce 8200/8300 unsupported, this is also the case with nv
- 3D support will not be provided, it's not ready for end-users on any chipset.
Testing will occur on at least the following chipsets:
- 10de:002d: TNT2 - NV05
- 10de:XXXX: GeForce 4 MX440 - NV18
- 10de:0281: GeForce 4 Ti4280 - NV28
- 10de:0330: GeForce 5900 Ultra - NV35
- 10de:XXXX: Quadro ??? - NV30GL
- 10de:XXXX: GeForce 7600(GT?) - G7x (NV4B)
- 10de:0191: GeForce 8800GTX - G80 (NV50)
- 10de:0402: GeForce 8600GT - G84 (NV84)
- 10de:040c: Quadro FX 570M - G84GL (NV84GL)
- Verify that X starts
- Verify that rendercheck passes, which should show up a lot of potential misrendering issues that may otherwise go unnoticed immediately.
- Verify that rendering is as expected across a variety of applications
- Verify that XVideo is operational on all provided adaptors
- Verify that all supported outputs, and combinations of outputs are operational
- Including outputs that haven't been initialised previously by the VBIOS
- Verify that performance in general desktop tasks is acceptable
- Verify that X will successfully shutdown and restart
- Verify that the GPU doesn't report any errors to the kernel module during the above tests.
Revert to xf86-video-nv.
Comments and Discussion