Please note that items in the matrix represent big pieces of functionality, so the matrix is updated rarely. For a better view of daily progress, please see the logs of the source code repositories.
Key
- DONE means that developers think it is fully implemented. It may however contain bugs.
- MOSTLY means that it is mostly implemented and may have known bugs.
- WIP means that someone has started on the initial implementation.
- TODO means that someone needs to write the code. The required knowledge to write the code may or may not be known. Please ask on #nouveau if you want to get your feet wet on this.
- STALLED means that whatever code has been written is accumulating color and texture similar to that 3 week old slice of pizza in your fridge.
- BIOS means "if supported by your BIOS". No software support yet.
- SLOW means that the feature is implemented, but it is slow. Improvements may or may not be planned.
- EXTFW means that the feature is usable, but requires firmware from the binary driver.
Features
2D features | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 | NV170 | NV190 |
basic 2D (EXA)11 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | TODO | TODO | TODO | TODO |
fast 2D (XRender)11 | N/A1 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | TODO | TODO | TODO | TODO |
play videos (Xv2) | DONE9 | DONE9 | DONE9 | DONE9 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | TODO | TODO | TODO | TODO |
video decoding accel (VDPAU/XvMC) |
N/A | TODO | N/A | STALLED | DONE | EXTFW | EXTFW | EXTFW | EXTFW | TODO | TODO | TODO | TODO | TODO | TODO |
3D features | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 | NV170 | NV190 |
Primitives | MOSTLY8 | MOSTLY8 | MOSTLY8 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
Textures | MOSTLY8 | MOSTLY8 | MOSTLY8 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
Fixed pipe TCL | N/A | MOSTLY8 | MOSTLY8 | NOT USED | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Vertex programs | N/A | N/A | TODO | DONE | DONE | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE | DONE | DONE | DONE |
Fragment programs | N/A | N/A | N/A | DONE | DONE | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE | DONE | DONE | DONE |
Geometry programs | N/A | N/A | N/A | N/A | N/A | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE | DONE | DONE | DONE |
Tessellation programs | N/A | N/A | N/A | N/A | N/A | N/A | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE | DONE | DONE | DONE |
Output | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 | NV170 | NV190 |
Dual-link DVI | BIOS | BIOS | BIOS | BIOS | DONE3 | DONE3 | DONE3 | DONE3 | DONE | DONE | DONE | N/A | N/A | N/A | N/A |
Dual head (Randr 1.2) | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
Kernel Mode Setting | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
TVout | STALLED4 | MOSTLY4 | STALLED4 | DONE | MOSTLY | TODO | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
HDR | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | TODO | N/A | TODO | TODO | TODO |
Laptop discrete graphics13 | N/A | N/A | N/A | N/A | N/A | DONE | DONE | DONE | DONE | DONE | DONE | N/A | DONE | DONE | MOSTLY14 |
Laptop hybrid graphics outputs15 | N/A | N/A | N/A | N/A | N/A | DONE | DONE | DONE | DONE | DONE | DONE | N/A | DONE | DONE | DONE |
Laptop display muxing16 | N/A | N/A | N/A | N/A | N/A | DONE | DONE | DONE | DONE | N/A | N/A | N/A | N/A | TODO17 | TODO17 |
DisplayPort features | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 | NV170 | NV190 |
SST (Single-stream) | N/A | N/A | N/A | N/A | TODO | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
SST Audio | N/A | N/A | N/A | N/A | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO |
SST DSC | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | TODO | TODO | TODO |
MST (Multi-stream) | N/A | N/A | N/A | N/A | N/A | N/A | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
MST Audio | N/A | N/A | N/A | N/A | N/A | N/A | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO |
MST DSC | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | TODO | TODO | TODO |
HDMI Features | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 | NV170 | NV190 |
Display | N/A | N/A | N/A | N/A | TODO | DONE10 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
Audio | N/A | N/A | N/A | N/A | TODO | DONE10 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
DSC | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | TODO | TODO | TODO |
FRL | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | TODO | TODO | TODO |
Other | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 | NV170 | NV190 |
Multicard | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
SLI6 | N/A | N/A | N/A | N/A | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO |
Power management | N/A | TODO | TODO | TODO | STALLED | WIP | WIP | WIP | WIP | WIP | TODO | TODO | DONE12 | DONE12 | DONE |
Suspend | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
Video input | N/A | TODO | TODO | TODO | TODO | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Compute | N/A | N/A | N/A | N/A | N/A | WIP | WIP | WIP | WIP | WIP | WIP | WIP | WIP | WIP | WIP |
Notes
1 NV0x family only supports swizzled textures, which we can't use for 2D stuff for various reasons. So no acceleration of XRENDER on those.
2 Note Xv, not XvMC. See the "video decoding accel" line for accelerated decoding.
3 Works, if the VBIOS gives enough memory bandwidth by default. That is, usually yes.
4 nv0x-nv2x (nv17-nv19 excluded) need an external, third-party manufactured TV encoder. Only some Chrontel branded chips are currently supported. For the rest, you cay try nvtv; make sure to set X to the right resolution first.
6 SLI or even multicard setups are very rare among developers. You should start hacking with us, if you have such a setup.
7 It's slow, because proper power management isn't finished yet.
8 nouveau_vieux supports everything that the hardware supports (except nv20 shaders), but there are some parts of OpenGL not directly supported by the hardware (e.g. glClipPlane)
9 The hardware overlay isn't used, which is suboptimal (esp on pre-NV30). Work was done in a pre-KMS driver to support hardware overlays by ArthurHuillet. This support currently exists as KMS planes, but the DDX does not take advantage of them (yet).
10 HDMI Audio only works for NVA3/A5/A8 (GT21x) GPUs. Some pre-NVA3 setups have been reported, but it's no thanks to nouveau.
11 Use modesetting DDX for 2D acceleration.
12 Boot with nouveau.config=NvGspRm=1
13 "Discrete mode" means using the discrete Nvidia GPU in a hybrid GPU laptop to drive the internal display (and possibly other display connectors, depending on the laptop).
14 Things mostly work, but some laptop displays (possibly ones which use DSC?) have been observed not to work.
15 This feature refers to whether or not nouveau can properly use external display connectors on a hybrid-GPU laptop, where certain display outputs may be routed to the Nvidia GPU.
16 Some laptops with hybrid graphics feature a "display mux" which can be programmed to route display connectors to either the integrated GPU, or the discrete GPU.
17 The muxes present on these machines are much different from the old-style muxes on older laptops. These muxes can be changed dynamically at runtime by the driver, and can usually also reroute the internal display on the laptop as well. Muxing of the internal display makes use of PSR, in order to prevent flickering on configuration changes.
Note : Disable Composite on low-end cards for better XVideo performance.