annotate DOCS/VIDEOCARDS @ 502:75c689abb763

Maybe a little speedup.
author se7encode
date Wed, 18 Apr 2001 10:37:09 +0000
parents c67c6e9c1fb3
children 83c87c15bbbf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
1
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
2 Videocards with hardware acceleration:
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
4
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
5 * read DOCS/MTRR too!
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
6
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
7 "Hardware acceleration" usually means hardware YUV conversion, scaling,
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
8 bilinear filtering. Under Linux, there are several ways to access it:
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
9
146
f3eb963d1370 exterminated the last "4.0.x" stuffz :)
gabucino
parents: 144
diff changeset
10 I. The Xv (XVideo) extension of XFree86 4.0.2
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
11 II. OpenGL drivers with glTexSubImage() support (currently the Utah-GLX
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
12 drivers)
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
13 III. Native card-specific drivers, using special abilities of some cards
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
14 IV. DGA - direct graphic access. no YUV & scaling, but faster than raw X11
430
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
15 V. Not really acceleration, but...
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
16
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
17 Now, let's see them in details:
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
18
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
19 I. Under XFree86 4.0.2 or newer, using the XVideo extension:
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
20 this is what the option '-vo xv' uses.
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
21
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
22 In order to make this work, be sure to check the following:
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
23
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
24 1. You use XFree86 4.0.2 or newer (former versions don't have XVideo)
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
25
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
26 2. Your card actually supports harware acceleration (modern cards do)
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
27
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
28 3. X loads the XVideo extension, it's something like this:
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
29 (II) Loading extension XVideo
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
30 in /var/log/XFree86.0.log
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
31 NOTE : this loads only the XFree86's extension. In a good install, this is
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
32 always loaded, and doesn't mean that the _card's_ XVideo support is
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
33 loaded!
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
34
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
35 4. Your card has Xv support under Linux. To check, try 'xvinfo', it is the
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
36 part of the XFree86 distribution. It should display a long text, similar
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
37 to this:
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
38
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
39 X-Video Extension version 2.2
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
40 screen #0
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
41 Adaptor #0: "Savage Streams Engine"
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
42 number of ports: 1
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
43 port base: 43
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
44 operations supported: PutImage
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
45 supported visuals:
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
46 depth 16, visualID 0x22
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
47 depth 16, visualID 0x23
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
48 number of attributes: 5
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
49 (...)
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
50 Number of image formats: 7
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
51 id: 0x32595559 (YUY2)
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
52 guid: 59555932-0000-0010-8000-00aa00389b71
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
53 bits per pixel: 16
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
54 number of planes: 1
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
55 type: YUV (packed)
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
56 id: 0x32315659 (YV12)
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
57 guid: 59563132-0000-0010-8000-00aa00389b71
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
58 bits per pixel: 12
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
59 number of planes: 3
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
60 type: YUV (planar)
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
61 (...etc...)
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
62
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
63 It must support YUY2 packed, and YV12 planar pixel formats to be
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
64 usable with MPlayer.
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
65
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
66 5. Be sure MPlayer is compiled with the "xv" target. "./configure" should say:
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
67 Checking for Xv ... yes
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
68
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
69 6. If all is fine, try the option '-vo xv' . It should work.
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
70 (if it doesn't, send us a bugreport. See the README on how to do this.)
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
71
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
72
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
73 II. OpenGL drivers with *working* *fast* glTexSubImage() support.
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
74
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
75 Currently only the old Utah-GLX drivers (for X 3.3.6) have it.
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
76 See http://utah-glx.sourceforge.net for details about how to install it.
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
77
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
78 The new X4/DRI and nVidia's binary drivers has no usable glTexSubImage :(
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
79
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
80 III. Native card-specific drivers
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
81
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
82 There is 3 native drivers for Linux:
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
83 1. Matrox G200/G400/G450 BES (Back-End Scaler) support -> mga_vid kernel drv.
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
84 It's active developed by me (A'rpi), and it has hardware VSYNC support
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
85 with triple buffering. It works on both framebuffer console and under X.
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
86
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
87 To use, simply compile the mga_vid.o in the drivers/ subdir (type: make)
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
88 and load it with insmod mga_vid.o. You should verify the memory size
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
89 detection using the 'dmesg' command. If it's bad, use the mga_ram_size
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
90 option (rmmod mga_vid first), specify card's memory size in MB:
274
f5b9be0426c9 Missing '=' fixed
arpi_esp
parents: 146
diff changeset
91 insmod mga_vid.o mga_ram_size=16
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
92
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
93 Using it from MPlayer: (you should re-compile it with mga_vid support...)
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
94
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
95 Use the 'mga' vo driver on framebuffer console (matroxfb): -vo mga
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
96 and use the xmga driver for X 3.3.x: -vo xmga
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
97
146
f3eb963d1370 exterminated the last "4.0.x" stuffz :)
gabucino
parents: 144
diff changeset
98 Note: it works under X 4.0.2 too, but it conflicts with the Xv driver,
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
99 so avoid using both. Usually X restart or reboot needs to get Xv usable
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
100 again :(
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
101
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
102 2. SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
103 Its interface should be compatible with the mga_vid, but the driver
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
104 was not updated after the mga_vid changes, so it's outdated now.
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
105 Volunteers needed to test it and bring the code up-to-date.
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
106
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
107 3. 3dfx (which ones?) YUV+scaler support, using /dev/3dfx (tdfx.o driver?)
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
108 The /dev/3dfx kernel driver exists only for 2.2.x kernels, for use with
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
109 Glide 2.x Linux ports. It's not tested with MPlayer, and so no more
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
110 supported. Volunteers needed to test it and bring the code up-to-date.
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
111
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
112
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
113 IV. If your card lacks hardware acceleration, you can still boost your fps by
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
114 using the DGA driver:
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
115
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
116 1. Make sure X loads the DGA extension:
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
117 (II) Loading extension XFree86-DGA
430
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
118 (you see, XFree86 4.0.x or greater is VERY RECOMMENDED!)
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
119 2. MPlayer's DGA driver is autodetected on ./configure, or you can force it
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
120 with --enable-dga.
430
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
121 3. If the driver couldn't switch to a smaller resolution, experiment with
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
122 switches -vm (only with X 3.0.x), -fs, -bpp, -zoom to find a video mode that
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
123 the movie fits in. There is no converter right now.. :(
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
124 4. Install MPlayer SUID root.
144
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
125 'chown root /usr/local/bin/mplayer'
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
126 'chmod 750 /usr/local/bin/mplayer'
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
127 'chmod +s /usr/local/bin/mplayer'
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
128 Now it works as a simple user, too.
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
129 !!!! BUT STAY TUNED !!!!
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
130 This is a BIG security risk! Never do this on a server or on a computer
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
131 can be accessed by more people than only you because they can gain root
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
132 privilegies through suid root mplayer.
ba9f8f547632 corrected A'rpi's many shitty thingy ;)
gabucino
parents: 141
diff changeset
133 !!!! SO YOU HAVE BEEN WARNED ... !!!!
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
134 5. Use '-vo dga' option, and there you go! (hope so:)
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
135
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
136 If you have fast enough CPU (P3 800 for example) you can try fsdga for
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
137 fullscreen mpeg playing (using software YUV->RGB scaling):
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
138 mplayer -vo fsdga ...
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
139
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
140
430
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
141 V. Not really acceleration, but...
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
142
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
143 a, If you don't have X...
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
144 ...use the SVGAlib target! Be sure not to use the -fs switch, since it
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
145 toggles the usage of the software scaler, and it's SLOOOW now, unless you
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
146 have a real fast CPU (and/or MTRR?). :(
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
147
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
148 Of course you'll have to install svgalib and its development package in
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
149 order for MPlayer build its SVGAlib driver (autodetected, but can be
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
150 forced), and don't forget to edit /etc/vga/libvga.config to suit your
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
151 card & monitor.
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
152
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
153
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
154 b, You want to use framebuffer...
484
c67c6e9c1fb3 *** empty log message ***
gabucino
parents: 472
diff changeset
155 ... Whether to build the FBdev target is autodetected during ./configure .
c67c6e9c1fb3 *** empty log message ***
gabucino
parents: 472
diff changeset
156 Read the framebuffer documentation in the kernel sources
c67c6e9c1fb3 *** empty log message ***
gabucino
parents: 472
diff changeset
157 (Documentation/fb/*) for info on how to enable it, etc.. !
430
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
158
472
a25ba0fd865e commiting yesterday's changes that accidently lost ;(((
gabucino
parents: 448
diff changeset
159 ... but your card doesn't support VBE 2.0 standard (older ISA/PCI
430
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
160 cards, such as S3 Trio64) :
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
161 Well, VESAfb is still available, but you'll have to load SciTech Display
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
162 Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
163 whatever. And don't forget to register your UniVBE ;))
2ed825f69e25 added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents: 274
diff changeset
164
484
c67c6e9c1fb3 *** empty log message ***
gabucino
parents: 472
diff changeset
165 NOTE : FBdev video mode changing _does not work_ with the VESA framebuffer,
c67c6e9c1fb3 *** empty log message ***
gabucino
parents: 472
diff changeset
166 and don't ask for it, since it's not an MPlayer limitation.
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
167
141
0b6b7cad24ef rewritten :)
arpi_esp
parents: 140
diff changeset
168 Gabucino & A'rpi
140
6889224c44e0 big updates, new docs, etc :)
gabucino
parents:
diff changeset
169