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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
<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>
Video decoding hardware generation for each chipset:
[[!table header="no" class="mointable" data="""
**[[NV04|CodeNames]]** || | **VPE** | **VP1** | **VP2** | **VP3/VP4/VP5**
NV04|| | | | |
NV05|| | | | |
**[[NV10|CodeNames]]** || | VPE | VP1 | VP2 | VP3/VP4/VP5
NV10|| | | | |
NV11|| | | | |
NV15|| | | | |
NV17|| | YES (v1) | | |
NV18|| | YES (v1) | | |
NV1A|| | | | |
NV1F|| | YES (v1) | | |
**[[NV20|CodeNames]]** || | VPE | VP1 | VP2 | VP3/VP4/VP5
NV20|| | | | |
NV25|| | | | |
NV28|| | | | |
NV2A|| | | | |
**[[NV30|CodeNames]]** || | VPE | VP1 | VP2 | VP3/VP4/VP5
NV30|| | YES (v1) | | |
NV31|| | YES (v2.0) | | |
NV34|| | YES (v2.0) | | |
NV35|| | YES (v1) | | |
NV36|| | YES (v2.0) | | |
**[[NV40|CodeNames]]** || | VPE | VP1 | VP2 | VP3/VP4/VP5
NV40|| | YES (v2.1) | | |
NV41|| | YES (v2.1) | YES (VP1.0) | |
NV42|| | YES (v2.1) | YES (VP1.0) | |
NV43|| | YES (v2.1) | YES (VP1.0) | |
NV44|| | YES (v2.2) | YES (VP1.1) | |
NV46|| | YES (v2.2) | YES (VP1.1) | |
NV47|| | YES (v2.2) | YES (VP1.1) | |
NV49|| | YES (v2.2) | YES (VP1.1) | |
NV4A|| | YES (v2.2) | YES (VP1.1) | |
NV4B|| | YES (v2.2) | YES (VP1.1) | |
NV4C|| | YES (v2.2) | YES (VP1.1) | |
NV4E|| | YES (v2.2) | YES (VP1.1) | |
NV63|| | | | |
NV67|| | ? | ? | |
NV68|| | ? | ? | |
**[[NV50|CodeNames]]** || | VPE | VP1 | VP2 | VP3/VP4/VP5
NV50|| | YES (v2.3) | YES (VP1.2) | |
NV84|| | YES (v2.3) | | YES |
NV86|| | YES (v2.3) | | YES |
NV92|| | YES (v2.3) | | YES |
NV94|| | YES (v2.3) | | YES |
NV96|| | YES (v2.3) | | YES |
NV98|| | | | | YES (VP3)
NVA0|| | YES (v2.3) | | YES |
NVA3|| | | | | YES (VP4.0)
NVA5|| | | | | YES (VP4.0)
NVA8|| | | | | YES (VP4.0)
NVAA|| | | | | YES (VP3)
NVAC|| | | | | YES (VP3)
NVAF|| | | | | YES (VP4.1)
**[[NVC0|CodeNames]]** || | VPE | VP1 | VP2 | VP3/VP4/VP5
NVC0|| | | | | YES (VP4.2)
NVC1|| | | | | YES (VP4.2)
NVC3|| | | | | YES (VP4.2)
NVC4|| | | | | YES (VP4.2)
NVC8|| | | | | YES (VP4.2)
NVCE|| | | | | YES (VP4.2)
NVCF|| | | | | YES (VP4.2)
NVD9|| | | | | YES (VP5)
NVD7|| | | | | YES (VP5)
**[[NVE4|CodeNames]]** || | VPE | VP1 | VP2 | VP3/VP4/VP5
NVE4|| | | | | YES (VP5)
NVE7|| | | | | YES (VP5)
NVE6|| | | | | YES (VP5)
NVF0|| | | | | YES (VP5)
"""]]
Features supported by each hardware generation:
| hardware | MPEG1 | MPEG2 Main Profile | H.264 High Profile | VC-1 (all profiles) | MPEG 4 Advanced Simple Profile without GMC | other |
|-|
VPE v1 | MC, MC+IDCT [custom data format] | MC, MC+IDCT, MC+IDCT+IQ [custom data format] | none |||||
VPE v2 | MC, MC+IDCT [DXVA format] || none |||||
VP1 | MC+? ||||| fully programmable vector processor |
VP2 | MC, MC+IDCT, MC+IDCT+IQ [DXVA format] || MC+IDCT+IQ [DXVA format], deblock [DXVA format], full bitstream decode | MC, MC+IDCT, MC+IDCT+IQ [DXVA format] || fully programmable vector processor |
VP3 | full bitstream decode |||| MC+IDCT+IQ [custom data format] | none |
VP4 | full bitstream decode ||||| none |
VP5 | full bitstream decode ||||| none |
[hw support]
The minor versions signify hardware changes not introducing any actual new functionality, like redesigning the memory access interface to match the rest of the GPU, etc.
And now status:
* **VPE v1**: already REd, not yet supported
* **VPE v2**: REd and supported by nouveau, though not on all possible cards yet
* **VP1**: early RE work in progress - watch it unfold on the [[RE blog|https://0x04.net/~mwk/reblog]]. Microcode in an unknown ISA involved.
* **VP2** H.264 bitstream engine: advanced RE work in progress, about 3/4 done. Microcode in 2 different ISAs involved.
* **VP2** video processing engine: advanced RE work in progress, aboult half done. Microcode in 3 different ISAs is involved, 1 of them still unknown.
* **VP3**: RE work in progress, about half done. Microcode in 3 different ISAs involved, 1 of them semi-unknown
* **VP4**: is just VP3 with MPEG4 support, same status
* **VP5**: RE work not started. Seems to be the same design as VP3/VP4, but with the major video processor part replaced by something new
|