762
|
1
|
834
|
2 Hardveres gyorsítás videokártyákhoz:
|
762
|
3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
4
|
|
5 * olvasd el a DOCS/MTRR file-t is!
|
|
6
|
834
|
7 A "hardveres gyorsítas" általában hardverileg támogatott YUV konverziót,
|
|
8 scale-t, bilinear filtering-et jelent. Linux alatt jónéhány módszerrel
|
|
9 lehet ezeket elérni:
|
762
|
10
|
834
|
11 I. Az XFree86 4.0.2 Xv (XVideo) kiterjesztése
|
|
12 II. OpenGL driverek, megfelelő glTexSubImage() támogatással (jelenleg csak
|
762
|
13 az Utah-GLX driverek)
|
834
|
14 III. Nativ kártyaspecifikus driverek, amik egyes kártyák különleges
|
|
15 képességeit használják
|
|
16 IV. DGA - Direct Graphic Access. Nincs YUV, scaling, de még mindig
|
|
17 gyorsabb, mint X11
|
|
18 V. Nem igazán gyorsítás, hanem...
|
762
|
19
|
834
|
20 Nos, lássuk őket részletesen:
|
762
|
21
|
834
|
22 De mielőtt elolvasnád ezt, olvasd el a DOCS/MTRR-t is, és nézd meg a
|
|
23 /proc/mtrr-edet. Hidd el, megéri! P3-on több, mint ötszörösére gyorsít!!!
|
762
|
24
|
834
|
25 I. Az XFree86 4.0.2 Xv (XVideo) kiterjesztése
|
|
26 Ezt használja a '-vo xv' opció.
|
762
|
27
|
834
|
28 Ha működésre akarod bírni, a következőket kell figyelembe venned:
|
762
|
29
|
834
|
30 1. XFree86 4.0.2 szükséges (korábbi verziókban nincs XVideo)
|
762
|
31
|
834
|
32 2. A kártyádnak támogatnia kell a hardveres gyorsítást (újabb kártyák közül
|
762
|
33 mind)
|
|
34
|
834
|
35 3. X-nek be kell töltenie az XVideo kiterjesztést, valahogy így néz ki:
|
762
|
36 (II) Loading extension XVideo
|
|
37 a /var/log/XFree86.0.log file-ban
|
834
|
38 MEGJ : ez csak azt jelzi, hogy az _X_ betöltötte. Egy normális rendszernél
|
|
39 ez alap, és nem jelenti, hogy a _kártyának_ van XVideo
|
|
40 támogatása!
|
762
|
41
|
834
|
42 4. A kártyád Linuxos drivere támogatja-e az Xv-t. Ezt az 'xvinfo'-val lehet
|
|
43 megnezni, ez pedig az XFree86 disztribúció része. Egy hosszú szöveget
|
|
44 kell hogy kiírjon, hasonlót ehhez:
|
762
|
45
|
|
46 X-Video Extension version 2.2
|
|
47 screen #0
|
|
48 Adaptor #0: "Savage Streams Engine"
|
|
49 number of ports: 1
|
|
50 port base: 43
|
|
51 operations supported: PutImage
|
|
52 supported visuals:
|
|
53 depth 16, visualID 0x22
|
|
54 depth 16, visualID 0x23
|
|
55 number of attributes: 5
|
|
56 (...)
|
|
57 Number of image formats: 7
|
|
58 id: 0x32595559 (YUY2)
|
|
59 guid: 59555932-0000-0010-8000-00aa00389b71
|
|
60 bits per pixel: 16
|
|
61 number of planes: 1
|
|
62 type: YUV (packed)
|
|
63 id: 0x32315659 (YV12)
|
|
64 guid: 59563132-0000-0010-8000-00aa00389b71
|
|
65 bits per pixel: 12
|
|
66 number of planes: 3
|
|
67 type: YUV (planar)
|
|
68 (...etc...)
|
|
69
|
834
|
70 Támogatnia kell a YUY2 packed, YV12 planar pixelformátumokat, hogy
|
|
71 használható legyen MPlayer-rel.
|
762
|
72
|
834
|
73 Ha az xvinfo nem írja ki mindezt, de az XVideo kiterjesztés be van töltve,
|
|
74 és biztos vagy benne, hogy a kartyád tud YUV konverziót,
|
|
75 - 3dfx voodoo3/banshee tulajok töltsenek le új DRI-t a
|
|
76 http://dri.sourceforge.net címről
|
839
|
77 - S3 Savage4-esek töltsék le az XFree86 >= 4.0.3-at
|
834
|
78 - nVidia felhasználók adják el a kártyájukat... vagy nézzenek el az
|
|
79 nVidia site-jára
|
|
80
|
|
81 5. MPlayer-t 'xv' támogatással kell fordítani. 'configure'-nak ezt kell
|
|
82 kiírnia:
|
762
|
83 Checking for Xv ... yes
|
|
84
|
834
|
85 6. Ha ez mind OK, próbáld ki a '-vo xv' opciót. Működnie kell.
|
|
86 (ha nem teszi, küldj nekünk egy bugreportot! Lásd DOCS/BUGREPORTS.)
|
762
|
87
|
|
88
|
834
|
89 II. OpenGL driverek, megfelelő glTexSubImage() támogatással
|
762
|
90
|
834
|
91 Jelenleg csak a régebbi Utah-GLX driver (X 3.3.6) támogatja.
|
|
92 Lásd http://utah-glx.sourceforge.net
|
762
|
93
|
834
|
94 Az új X 4.x.x/DRI-nek és az nVidia drivereknek nincs használható
|
|
95 glTexSubImage-ük :(
|
762
|
96
|
|
97
|
834
|
98 III. Nativ kártyaspecifikus driverek
|
762
|
99
|
|
100 3 nativ driver van Linuxra:
|
|
101 1. Matrox G200/G400/G450 BES (Back-End Scaler) (mga_vid kernel driver)
|
834
|
102 Jobbára én (A'rpi) fejlesztem. Támogat hardveres VSYNC-et, triple
|
|
103 bufferinggel. Működik mind framebufferes konzolon, mind X alatt.
|
762
|
104
|
834
|
105 Fordítsd le a drivers/ könyvtárban lévő mga_vid.o-t (írd be: make)
|
|
106 hozd létre a /dev/mga_vid-et :
|
762
|
107 mknod /dev/mga_vid c 178 0
|
834
|
108 és töltsd be a drivert az 'insmod mga_vid.o' paranccsal. Ajánlott
|
|
109 leellenőrizni, hogy a memória méretét helyesen detektálta-e, a 'dmesg'
|
|
110 paranccsal. Ha rossz, használd az mga_ram_size opciót (először 'rmmod
|
|
111 mga_vid'), és add meg a kártyád memóriáját Mb-ban:
|
762
|
112 insmod mga_vid.o mga_ram_size=16
|
834
|
113 Ha azt akarod, hogy automatikusan töltődjön be, írd be a következő sort az
|
|
114 /etc/modules.conf végére :
|
762
|
115 alias char-major-178 mga_vid
|
834
|
116 Aztán futtasd :
|
764
|
117 depmod -a
|
762
|
118
|
834
|
119 Használata MPlayer-ből: (először fordítsd újra mga_vid supporttal...)
|
762
|
120
|
834
|
121 Használd az 'mga' outputot, ha framebuffer konzolod van (matroxfb): -vo mga
|
762
|
122 vagy az 'xmga'-t, ha X 3.3.6-od van: -vo xmga
|
|
123
|
834
|
124 Megj.: működik 4.0.2-es X alatt is, de az Xv driverrel nem szeretik egymást
|
|
125 ezért jobb kerülni mindkettő használatát. Általában az X újraindítása vagy
|
|
126 reboot szükséges, hogy az Xv újra működjön :(
|
762
|
127
|
834
|
128 Ha dual-head G400-ad van, és egy TV vagy második monitor van csatlakoztatva
|
|
129 a második head-re, akkor azt is használhatod: olvasd el a DOCS/TVout-G400
|
|
130 file-t. (elég nagy gányolás)
|
762
|
131
|
|
132 2. SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver
|
834
|
133 A felülete elvileg kompatibilis az mga_vid-del, de ebbe nem kerültek
|
|
134 bele az mga_vid-es változtatások, úgyhogy valószínűleg nem működik.
|
|
135 Jelentkezők kellenek tesztelésre, javításra.
|
762
|
136
|
834
|
137 3. 3dfx (mely kártyák?) YUV+scaler support, a /dev/3dfx-el (tdfx.o driver?)
|
|
138 A /dev/3dfx kernel driver csak a 2.2.x kernelekhez létezik, és a Glide-dal
|
|
139 használatos. Nincs letesztelve MPlayer-rel, ezért nem támogatott.
|
|
140 Jelentkezők kellenek tesztelésre, javításra.
|
762
|
141
|
|
142
|
834
|
143 IV. Ha a kártyádnak nincs hardveres gyorsítása, még mindig meg tudod dobni
|
762
|
144 az fps-t a DGA driverrel:
|
|
145
|
834
|
146 1. Bizonyosodj meg, hogy az X betölti a DGA kiterjesztést:
|
762
|
147 (II) Loading extension XFree86-DGA
|
834
|
148 (amint látod, XFree86 4.0.x vagy újabb NAGYON AJANLOTT!)
|
|
149 2. MPlayer DGA drivere automatikusan detektálódik ./configure-kor, de ha
|
|
150 kell, a --enable-dga opcióval kényszerítheted is.
|
|
151 3. Ha a driver nem tud kisebb felbontásba váltani, játszadozz kicsit a
|
|
152 -vm (csak 3.3.x X-szel), -fs, -bpp, -zoom opciókkal és hátha találsz egy
|
|
153 alkalmas módot. Jelenleg nincs konverter.. :(
|
|
154 4. Legyél ROOT. DGA-nak root jogok kellenek, hogy közvetlen tudjon írni a
|
|
155 videomemóriába. Ha felhasználóként akarod futtatni, installáld MPlayer-t
|
|
156 SUID root-ként:
|
762
|
157 'chown root /usr/local/bin/mplayer'
|
|
158 'chmod 750 /usr/local/bin/mplayer'
|
|
159 'chmod +s /usr/local/bin/mplayer'
|
834
|
160 Így most menni fog user-ként is.
|
|
161 !!!! JÓL FIGYELJ !!!!
|
|
162 Ez egy ÓRIÁSI biztonsági lyuk! Soha ne csináld ezt egy szerveren, vagy
|
|
163 egy olyan gépen, amit több ember is elér, mert így root jogokat szerezhetnek
|
|
164 a suid MPlayer-en keresztül.
|
|
165 !!!! ÉN FIGYELMEZTETTELEK ... !!!!
|
|
166 5. Használd a '-vo dga' opciót, és már megy is! (remélhetőleg :)
|
|
167 6. Próbáld ki, hogy a '-vo sdl -sdl dga' opció működik-e nálad!
|
|
168 Sokkal gyorsabb!!!
|
762
|
169
|
834
|
170 Ha gyors géped van (pl. P3 800) próbáld ki az 'fsdga'-t, így teljesképernyős
|
|
171 mpeg lejátszást kapsz (software-es YUV->RGB scaling használatával):
|
762
|
172 mplayer -vo fsdga ...
|
|
173
|
|
174
|
834
|
175 V. Nem igazán gyorsítás, hanem...
|
762
|
176
|
|
177 a, Ha nincs X-ed...
|
834
|
178 ...használd az SVGAlib outputot! Bizonyosodj meg róla, hogy nem használod
|
|
179 a -fs kapcsolót, mert ez itt a software-es scaler-t kapcsolja be, és ez
|
|
180 LASSÚÚÚÚ egyelőre, hacsak nincs egy igazán gyors procid (és/vagy MTRR?). :(
|
762
|
181
|
834
|
182 Természetesen fel kell installálnod az svgalib-et, és a fejlesztői
|
|
183 környezetét, hogy MPlayer le tudja fordítani az SVGAlib outputot
|
|
184 (automatikusan detektálja, de lehet kényszeríteni is), és ne felejtsd el
|
|
185 átszerkeszteni az /etc/vga/libvga.config-ot, hogy tükrözze a kártyád és
|
|
186 a monitorod tulajdonságait.
|
762
|
187
|
834
|
188 Érdemes továbbá kipróbálni az 'aalib' outputot ('-vo sdl -sdl aalib'),
|
|
189 igazán nagyszerű! :)
|
762
|
190
|
834
|
191 b, Framebuffer-t akarsz használni...
|
|
192 Annak eldöntése, hogy legyen-e framebuffer output, a ./configure alatt
|
|
193 dől el. Olvasd el a kernelforrásban található framebuffer dokumentációt
|
|
194 (Documentation/fb/*), ami leírja, hogy hogy kapcsold be stb. !
|
762
|
195
|
834
|
196 ... de a kártyád nem támogatja a VBE 2.0 szabványt (régebbi ISA/PCI
|
|
197 kártyák, például az S3 Trio64), csak a VBE 1.2-et (vagy régebbit?) :
|
|
198 Nos, VESAfb még mindig használható, de a Linux bootolása előtt be kell
|
|
199 töltened a SciTech Display Doctor-t (régebben UniVBE). Használj DOS
|
|
200 bootlemezt, vagy valami! És ne felejtsd regisztrálni az UniVBE-det ;))
|
762
|
201
|
834
|
202 Megj.: az FBdev output videomód váltása _nem működik_ a VESA
|
|
203 framebuffer-rel, és ne is kérd, mivel ez nem az MPlayer korlátja!
|
762
|
204
|
|
205 Gabucino & A'rpi
|
|
206
|