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 |
basic 2D (EXA) | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | TODO | TODO |
fast 2D (XRender) | N/A1 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | TODO | TODO |
play videos (Xv2) | DONE9 | DONE9 | DONE9 | DONE9 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | TODO | TODO |
video decoding accel (VDPAU/XvMC) |
N/A | TODO | N/A | STALLED | DONE | EXTFW | EXTFW | EXTFW | EXTFW | TODO | TODO | TODO | TODO |
3D features | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 |
Primitives | MOSTLY8 | MOSTLY8 | MOSTLY8 | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
Textures | MOSTLY8 | MOSTLY8 | MOSTLY8 | 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 |
Vertex programs | N/A | N/A | TODO | DONE | DONE | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE | DONE |
Fragment programs | N/A | N/A | N/A | DONE | DONE | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE | DONE |
Geometry programs | N/A | N/A | N/A | N/A | N/A | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE | DONE |
Tessellation programs | N/A | N/A | N/A | N/A | N/A | N/A | DONE7 | DONE7 | DONE7 | DONE7 | DONE7 | DONE | DONE |
Output | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 |
Dual-link DVI | BIOS | BIOS | BIOS | BIOS | DONE3 | DONE3 | DONE3 | DONE3 | DONE | DONE | DONE | TODO | TODO |
Dual head (Randr 1.2) | 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 |
TVout | STALLED4 | MOSTLY4 | STALLED4 | DONE | MOSTLY | TODO | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Other | NV04/05 | NV10 | NV20 | NV30 | NV40 | NV50 | NVC0 | NVE0 | NVF0 | NV110 | NV130 | NV140 | NV160 |
Multicard | 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 |
Power management | N/A | TODO | TODO | TODO | STALLED | WIP | WIP | WIP | WIP | WIP | TODO | TODO | TODO |
Suspend | 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 |
HDMI audio | N/A | N/A | N/A | N/A | TODO | DONE10 | DONE | DONE | DONE | DONE | DONE | DONE | DONE |
Compute | N/A | N/A | N/A | N/A | N/A | 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.
Note : Disable Composite on low-end cards for better XVideo performance.