FeatureMatrix.mdwn 14.8 KB
Newer Older
1
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.
2 3 4 5


## Key

mperes's avatar
mperes committed
6 7 8 9 10 11 12 13
* **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.
14 15

## Features
16
[[!table header="no" class="ColorTable" data="""
pmoreau's avatar
pmoreau committed
17
 **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]]**
imirkin's avatar
imirkin committed
18 19 20
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 ]]
pmoreau's avatar
pmoreau committed
21 22
[[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]]**
karolherbst's avatar
karolherbst committed
23 24
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 ]]
pmoreau's avatar
pmoreau committed
25
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
karolherbst's avatar
karolherbst committed
26 27 28 29
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 ]]
pmoreau's avatar
pmoreau committed
30 31
 **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 ]]
karolherbst's avatar
karolherbst committed
32
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 ]]
pmoreau's avatar
pmoreau committed
33 34
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
pmoreau's avatar
pmoreau committed
35
 **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]]**
karolherbst's avatar
karolherbst committed
36
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 ]]
pmoreau's avatar
pmoreau committed
37 38
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 ]]
karolherbst's avatar
karolherbst committed
39
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 ]]
pmoreau's avatar
pmoreau committed
40
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
karolherbst's avatar
karolherbst committed
41 42
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" ]]
43 44 45 46 47
"""]]


## Notes

imirkin's avatar
imirkin committed
48
<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.
49

imirkin's avatar
imirkin committed
50
<sup>2</sup> Note Xv, not XvMC. See the "video decoding accel" line for accelerated decoding.
51

imirkin's avatar
imirkin committed
52
<sup>3</sup> Works, if the VBIOS gives enough memory bandwidth by default. That is, usually yes.
53

54
<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.
55

imirkin's avatar
imirkin committed
56
<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.
57

imirkin's avatar
imirkin committed
58
<sup>7</sup> It's slow, because proper power management isn't finished yet.
59

imirkin's avatar
imirkin committed
60
<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)
imirkin's avatar
imirkin committed
61

imirkin's avatar
imirkin committed
62
<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).
63

64 65
<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.

66
**Note** : Disable Composite on low-end cards for better XVideo performance.