Mercurial > mplayer.hg
annotate DOCS/VIDEOCARDS @ 1411:db849cee5777
Pre-allocate some stack space to work around a problem with DLL alloca() code
on a linux kernel.
author | jkeil |
---|---|
date | Sun, 29 Jul 2001 10:17:53 +0000 |
parents | 570b32414d1a |
children |
rev | line source |
---|---|
140 | 1 |
2 Videocards with hardware acceleration: | |
3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
4 | |
5 * read DOCS/MTRR too! | |
6 | |
7 "Hardware acceleration" usually means hardware YUV conversion, scaling, | |
141 | 8 bilinear filtering. Under Linux, there are several ways to access it: |
9 | |
146 | 10 I. The Xv (XVideo) extension of XFree86 4.0.2 |
1056 | 11 I.1. Card-specific notes/settings |
936 | 12 II. OpenGL drivers with glTexSubImage() support |
144 | 13 III. Native card-specific drivers, using special abilities of some cards |
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 | 16 |
144 | 17 Now, let's see them in details: |
141 | 18 |
665 | 19 But before reading this, read DOCS/MTRR, and check your /proc/mtrr. |
675 | 20 Believe me, it's worth it! Speeds things up more than 5 times on P3!!! |
665 | 21 |
144 | 22 I. Under XFree86 4.0.2 or newer, using the XVideo extension: |
141 | 23 this is what the option '-vo xv' uses. |
24 | |
25 In order to make this work, be sure to check the following: | |
26 | |
144 | 27 1. You use XFree86 4.0.2 or newer (former versions don't have XVideo) |
141 | 28 |
144 | 29 2. Your card actually supports harware acceleration (modern cards do) |
141 | 30 |
140 | 31 3. X loads the XVideo extension, it's something like this: |
32 (II) Loading extension XVideo | |
33 in /var/log/XFree86.0.log | |
144 | 34 NOTE : this loads only the XFree86's extension. In a good install, this is |
140 | 35 always loaded, and doesn't mean that the _card's_ XVideo support is |
36 loaded! | |
141 | 37 |
144 | 38 4. Your card has Xv support under Linux. To check, try 'xvinfo', it is the |
141 | 39 part of the XFree86 distribution. It should display a long text, similar |
40 to this: | |
140 | 41 |
42 X-Video Extension version 2.2 | |
43 screen #0 | |
44 Adaptor #0: "Savage Streams Engine" | |
45 number of ports: 1 | |
46 port base: 43 | |
47 operations supported: PutImage | |
48 supported visuals: | |
49 depth 16, visualID 0x22 | |
50 depth 16, visualID 0x23 | |
51 number of attributes: 5 | |
144 | 52 (...) |
53 Number of image formats: 7 | |
54 id: 0x32595559 (YUY2) | |
55 guid: 59555932-0000-0010-8000-00aa00389b71 | |
56 bits per pixel: 16 | |
57 number of planes: 1 | |
58 type: YUV (packed) | |
59 id: 0x32315659 (YV12) | |
60 guid: 59563132-0000-0010-8000-00aa00389b71 | |
61 bits per pixel: 12 | |
62 number of planes: 3 | |
63 type: YUV (planar) | |
140 | 64 (...etc...) |
141 | 65 |
66 It must support YUY2 packed, and YV12 planar pixel formats to be | |
67 usable with MPlayer. | |
68 | |
1056 | 69 I.1. |
70 a, If xvinfo doesn't show these, but XVideo extension is loaded and you're | |
71 sure your card can do YUV conversion, | |
831 | 72 - 3dfx voodoo3/banshee users download a new DRI from |
1056 | 73 http://dri.sourceforge.net (or possibly use X 4.1.0) |
74 - S3 Savage4 users download XFree86 >= 4.0.3 (4.1.0 preferred) | |
831 | 75 - nVidia users sell their card.. or download the nVidia driver from |
76 nVidia's website | |
1056 | 77 b, The GATOS driver (for ATI cards) has VSYNC enabled by default. It means |
78 that decoding speed (!) is synced to the monitor's refresh rate. If | |
79 playing seems to be slow, try disabling VSYNC somehow, or set refresh | |
80 rate to n*(fps of the movie) Hz. | |
831 | 81 |
140 | 82 5. Be sure MPlayer is compiled with the "xv" target. "./configure" should say: |
83 Checking for Xv ... yes | |
141 | 84 |
140 | 85 6. If all is fine, try the option '-vo xv' . It should work. |
689 | 86 (if it doesn't, send us a bugreport. See the BUGREPORTS on how to do this.) |
140 | 87 |
88 | |
141 | 89 II. OpenGL drivers with *working* *fast* glTexSubImage() support. |
140 | 90 |
936 | 91 The old Utah-GLX drivers (for X 3.3.6) have it, with all cards. |
141 | 92 See http://utah-glx.sourceforge.net for details about how to install it. |
93 | |
936 | 94 DRI >= 4.0.3 supports it only with Matrox cards, and Radeon. |
95 See dri.sourceforge.net for download, and installation instructions. | |
141 | 96 |
144 | 97 III. Native card-specific drivers |
141 | 98 |
761 | 99 There are 3 native drivers for Linux: |
141 | 100 1. Matrox G200/G400/G450 BES (Back-End Scaler) support -> mga_vid kernel drv. |
101 It's active developed by me (A'rpi), and it has hardware VSYNC support | |
102 with triple buffering. It works on both framebuffer console and under X. | |
103 | |
104 To use, simply compile the mga_vid.o in the drivers/ subdir (type: make) | |
749 | 105 create /dev/mga_vid device : |
106 mknod /dev/mga_vid c 178 0 | |
107 and load the driver with insmod mga_vid.o. You should verify the memory size | |
141 | 108 detection using the 'dmesg' command. If it's bad, use the mga_ram_size |
109 option (rmmod mga_vid first), specify card's memory size in MB: | |
274 | 110 insmod mga_vid.o mga_ram_size=16 |
749 | 111 To make it load/unload automatically when needed, insert the following line |
112 at the end of /etc/modules.conf : | |
113 alias char-major-178 mga_vid | |
764 | 114 Then run |
115 depmod -a | |
141 | 116 |
117 Using it from MPlayer: (you should re-compile it with mga_vid support...) | |
118 | |
119 Use the 'mga' vo driver on framebuffer console (matroxfb): -vo mga | |
120 and use the xmga driver for X 3.3.x: -vo xmga | |
121 | |
146 | 122 Note: it works under X 4.0.2 too, but it conflicts with the Xv driver, |
141 | 123 so avoid using both. Usually X restart or reboot needs to get Xv usable |
124 again :( | |
666 | 125 |
126 If you have a dual-head G400, and a TV or second monitor connected to head2, | |
127 then you can watch movies on it: read DOCS/TVout-G400 for details (big hack) | |
141 | 128 |
129 2. SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver | |
130 Its interface should be compatible with the mga_vid, but the driver | |
131 was not updated after the mga_vid changes, so it's outdated now. | |
132 Volunteers needed to test it and bring the code up-to-date. | |
133 | |
134 3. 3dfx (which ones?) YUV+scaler support, using /dev/3dfx (tdfx.o driver?) | |
135 The /dev/3dfx kernel driver exists only for 2.2.x kernels, for use with | |
144 | 136 Glide 2.x Linux ports. It's not tested with MPlayer, and so no more |
141 | 137 supported. Volunteers needed to test it and bring the code up-to-date. |
140 | 138 |
139 | |
141 | 140 IV. If your card lacks hardware acceleration, you can still boost your fps by |
141 using the DGA driver: | |
140 | 142 |
143 1. Make sure X loads the DGA extension: | |
144 (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
|
145 (you see, XFree86 4.0.x or greater is VERY RECOMMENDED!) |
140 | 146 2. MPlayer's DGA driver is autodetected on ./configure, or you can force it |
147 with --enable-dga. | |
430
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
148 3. If the driver couldn't switch to a smaller resolution, experiment with |
761 | 149 switches -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that |
430
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
150 the movie fits in. There is no converter right now.. :( |
675 | 151 4. Become ROOT. DGA needs root access to be able to write directly video memory. |
665 | 152 If you want to run it as user, then install MPlayer SUID root: |
144 | 153 'chown root /usr/local/bin/mplayer' |
154 'chmod 750 /usr/local/bin/mplayer' | |
155 'chmod +s /usr/local/bin/mplayer' | |
156 Now it works as a simple user, too. | |
157 !!!! BUT STAY TUNED !!!! | |
158 This is a BIG security risk! Never do this on a server or on a computer | |
159 can be accessed by more people than only you because they can gain root | |
160 privilegies through suid root mplayer. | |
161 !!!! SO YOU HAVE BEEN WARNED ... !!!! | |
140 | 162 5. Use '-vo dga' option, and there you go! (hope so:) |
1208 | 163 6. Try if the '-vo sdl:dga' options work for you! It's much faster!!! |
140 | 164 |
141 | 165 If you have fast enough CPU (P3 800 for example) you can try fsdga for |
166 fullscreen mpeg playing (using software YUV->RGB scaling): | |
167 mplayer -vo fsdga ... | |
140 | 168 |
169 | |
430
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
170 V. Not really acceleration, but... |
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
171 |
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
172 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
|
173 ...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
|
174 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
|
175 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
|
176 |
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
177 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
|
178 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
|
179 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
|
180 card & monitor. |
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
181 |
1208 | 182 Try the aalib target ('-vo sdl:aalib'), it's great! :) |
430
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
183 |
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
184 b, You want to use framebuffer... |
484 | 185 ... Whether to build the FBdev target is autodetected during ./configure . |
186 Read the framebuffer documentation in the kernel sources | |
187 (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
|
188 |
472
a25ba0fd865e
commiting yesterday's changes that accidently lost ;(((
gabucino
parents:
448
diff
changeset
|
189 ... but your card doesn't support VBE 2.0 standard (older ISA/PCI |
749 | 190 cards, such as S3 Trio64), only VBE 1.2 (or older?) : |
430
2ed825f69e25
added DGA vidmode changin' stuff (but I still don't understand it, and
gabucino
parents:
274
diff
changeset
|
191 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
|
192 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
|
193 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
|
194 |
484 | 195 NOTE : FBdev video mode changing _does not work_ with the VESA framebuffer, |
196 and don't ask for it, since it's not an MPlayer limitation. | |
140 | 197 |
141 | 198 Gabucino & A'rpi |
140 | 199 |