summaryrefslogtreecommitdiff
path: root/FeatureMatrix.mdwn
blob: 0b2783695b5398838c5c1079848c041999afa751 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<meta name="google-translate-customization" content="38b387022ed0f4d4-a4eb7ef5c10c8ae0-g2870fab75904ce51-18"></meta>
<div id="google_translate_element"></div>
<script type="text/javascript" src="/wiki/translate.js"></script>

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
[[!table header="no" class="ColorTable" data="""
 **2D features** | **[[NV04/05|CodeNames]]** | **[[NV10|CodeNames]]** | **[[NV20|CodeNames]]** | **[[NV30|CodeNames]]** | **[[NV40|CodeNames]]** | **[[NV50|CodeNames]]** | **[[NVC0|CodeNames]]** | **[[NVE0|CodeNames]]** | **[[NVF0|CodeNames]]** | **[[NV110|CodeNames]]** | **[[NV130|CodeNames]]** | **[[NV140|CodeNames]]** | **[[NV160|CodeNames]]**
basic 2D (EXA) | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]]
fast 2D (XRender) | N/A<sup>1</sup>  | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]]
play videos (Xv<sup>2</sup>) | [[!color background=palegreen text=DONE<sup>9</sup> ]] | [[!color background=palegreen text=DONE<sup>9</sup> ]] | [[!color background=palegreen text=DONE<sup>9</sup> ]] | [[!color background=palegreen text=DONE<sup>9</sup> ]] | [[!color background=palegreen text=DONE ]] |  [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]]
[[video decoding accel|VideoAcceleration]]<br>(VDPAU/XvMC) | N/A | [[!color background=red text=TODO ]] | N/A | [[!color background=skyblue text=STALLED ]] | [[!color background=palegreen text=DONE ]] | [[!color background=slateblue text=EXTFW ]] | [[!color background=slateblue text=EXTFW ]] | [[!color background=slateblue text=EXTFW ]] | [[!color background=slateblue text=EXTFW ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]]
 **3D features** | **[[NV04/05|CodeNames]]** | **[[NV10|CodeNames]]** | **[[NV20|CodeNames]]** | **[[NV30|CodeNames]]** | **[[NV40|CodeNames]]** | **[[NV50|CodeNames]]** | **[[NVC0|CodeNames]]** | **[[NVE0|CodeNames]]** | **[[NVF0|CodeNames]]** | **[[NV110|CodeNames]]** | **[[NV130|CodeNames]]** | **[[NV140|CodeNames]]** | **[[NV160|CodeNames]]**
Primitives | [[!color background=yellow text=MOSTLY<sup>8</sup> ]] | [[!color background=yellow text=MOSTLY<sup>8</sup> ]] | [[!color background=yellow text=MOSTLY<sup>8</sup> ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
Textures | [[!color background=yellow text=MOSTLY<sup>8</sup> ]] | [[!color background=yellow text=MOSTLY<sup>8</sup> ]] | [[!color background=yellow text=MOSTLY<sup>8</sup> ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
Fixed pipe TCL| N/A | [[!color background=yellow text=MOSTLY<sup>8</sup> ]] | [[!color background=yellow text=MOSTLY<sup>8</sup> ]] | 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 | [[!color background=red text=TODO ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text="DONE<sup>7</sup>" ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
Fragment programs| N/A | N/A | N/A | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
Geometry programs| N/A | N/A | N/A | N/A | N/A | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
Tessellation programs | N/A | N/A | N/A | N/A | N/A | N/A | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE<sup>7</sup> ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
 **Output** | **[[NV04/05|CodeNames]]** | **[[NV10|CodeNames]]** | **[[NV20|CodeNames]]** | **[[NV30|CodeNames]]** | **[[NV40|CodeNames]]** | **[[NV50|CodeNames]]** | **[[NVC0|CodeNames]]** | **[[NVE0|CodeNames]]** | **[[NVF0|CodeNames]]** | **[[NV110|CodeNames]]** | **[[NV130|CodeNames]]** | **[[NV140|CodeNames]]** | **[[NV160|CodeNames]]**
Dual-link DVI | BIOS | BIOS | BIOS | BIOS | [[!color background=palegreen text=DONE<sup>3</sup> ]] | [[!color background=palegreen text=DONE<sup>3</sup> ]] | [[!color background=palegreen text=DONE<sup>3</sup> ]] | [[!color background=palegreen text=DONE<sup>3</sup> ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]]
Dual head ([[Randr 1.2|Randr12]]) | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
Kernel Mode Setting| [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
TVout | [[!color background=skyblue text="STALLED<sup>4</sup>" ]] | [[!color background=yellow text="MOSTLY<sup>4</sup>" ]] | [[!color background=skyblue text="STALLED<sup>4</sup>" ]] | [[!color background=palegreen text=DONE ]] | [[!color background=yellow text=MOSTLY ]] | [[!color background=red text=TODO ]] | N/A | N/A | N/A | N/A | N/A | N/A | N/A
 **Other** | **[[NV04/05|CodeNames]]** | **[[NV10|CodeNames]]** | **[[NV20|CodeNames]]** | **[[NV30|CodeNames]]** | **[[NV40|CodeNames]]** | **[[NV50|CodeNames]]** | **[[NVC0|CodeNames]]** | **[[NVE0|CodeNames]]** | **[[NVF0|CodeNames]]** | **[[NV110|CodeNames]]** | **[[NV130|CodeNames]]** | **[[NV140|CodeNames]]** | **[[NV160|CodeNames]]**
Multicard | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
SLI<sup>6</sup> | N/A | N/A | N/A | N/A | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]]
[[Power management|PowerManagement]] | N/A | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=skyblue text="STALLED" ]] | [[!color background=orange text=WIP ]] | [[!color background=orange text=WIP ]] | [[!color background=orange text=WIP ]] | [[!color background=orange text=WIP ]] | [[!color background=orange text=WIP ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]]
Suspend | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
Video input | N/A | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=TODO ]] | [[!color background=red text=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 | [[!color background=red text=TODO ]] | [[!color background=palegreen text=DONE<sup>10</sup> ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]] | [[!color background=palegreen text=DONE ]]
Compute| N/A | N/A | N/A | N/A | N/A | [[!color background=orange text="WIP" ]] | [[!color background=orange text="WIP" ]] | [[!color background=orange text="WIP" ]] | [[!color background=orange text="WIP" ]] | [[!color background=orange text="WIP" ]] | [[!color background=orange text="WIP" ]] | [[!color background=orange text="WIP" ]] | [[!color background=orange text="WIP" ]]
"""]]


## Notes

<sup>1</sup> NV0x family only supports swizzled textures, which we can't use for 2D stuff for various reasons. So no acceleration of XRENDER on those.

<sup>2</sup> Note Xv, not XvMC. See the "video decoding accel" line for accelerated decoding.

<sup>3</sup> Works, if the VBIOS gives enough memory bandwidth by default. That is, usually yes.

<sup>4</sup> 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|http://sourceforge.net/projects/nv-tv-out/]]; make sure to set X to the right resolution first.

<sup>6</sup> SLI or even multicard setups are very rare among developers. You should start hacking with us, if you have such a setup.

<sup>7</sup> It's slow, because proper power management isn't finished yet.

<sup>8</sup> 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)

<sup>9</sup> 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).

<sup>10</sup> 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.