diff options
Diffstat (limited to 'DOCS/DGA')
-rw-r--r-- | DOCS/DGA | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/DOCS/DGA b/DOCS/DGA deleted file mode 100644 index eb4a966a6c..0000000000 --- a/DOCS/DGA +++ /dev/null @@ -1,198 +0,0 @@ - -Contents -~~~~~~~~ - - 1. Summary - 2. What is DGA - 3. Resolution switching - 4. DGA & MPlayer - 5. Features of the DGA driver - 6. Speed issues - 7. Known bugs - 8. Future work - - A. Some modelines - B. Bug Reports - - -1. Summary -~~~~~~~~~~ - This document tries to explain in some words what DGA is in general and - what the DGA video output driver for mplayer can do (and what it can't). - -2. What is DGA? -~~~~~~~~~~~~~~~ - - DGA is short for Direct Graphics Access and is a means for a program to - bypass the X-Server and directly modifying the framebuffer memory. - Technically spoken this happens by mapping the framebuffer memory into - the memory range of your process. This is allowed by the kernel only - if you have superuser privileges. You can get these either by logging in - as root or by setting the suid bit on the mplayer excecutable (NOT - recommended!). - - There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was - introduced with XFree 4.0.1. - - DGA1 provides only direct framebuffer access as described above. For - switching the resolution of the video signal you have to rely on the - XVidMode extension. - - DGA2 incorporates the features of XVidMode extension and also allows - switching the depth of the display. So you may, although basically - running a 32 bit depth XServer, switch to a depth of 15 bits and vice - versa. - - However DGA has some drawbacks. It seems it is somewhat dependent on the - graphics chip you use and on the implementation of the XServer's video - driver that controls this chip. So it does not work on every system ... - - -3. Resolution switching -~~~~~~~~~~~~~~~~~~~~~~~ - The DGA driver allows for switching the resolution of the output signal. - This avoids the need for doing (slow) software scaling and at the same - time provides a fullscreen image. Ideally it would switch to the exact - resolution (except for honouring aspect ratio) of the video data, but the - XServer only allows switching to resolutions predefined in - /etc/X11/XF86Config (/etc/X11/XF86Config-4 for XFree 4.0.X respectively). - Those are defined by so-called modelines and depend on the capabilites - of your video hardware. The XServer scans this config file on startup and - disables the modelines not suitable for your hardware. You can find - out which modes survive with the X11 log file. It can be found at: - /var/log/XFree86.0.log - See appendix A for some sample modeline definitions. - -4. DGA & MPlayer -~~~~~~~~~~~~~~~~ - - DGA is used in two places with MPlayer: The SDL driver can be made to make - use of it (-vo sdl:dga) and within the DGA driver (-vo dga). - The above said is true for both; in the following sections I'll explain - how the DGA driver for MPlayer works. - - -5. Features of the DGA driver -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - The DGA driver is invoked by specifying -vo dga at the command line. - The default behaviour is to switch to a resolution matching the original - resolution of the video as close as possible. It deliberately ignores the - -vm and -fs switches (enabling of video mode switching and fullscreen) - - it always tries to cover as much area of your screen as possible by switching - the video mode, thus refraining to use a single additional cycle of your CPU - to scale the image. - If you don't like the mode it chooses you may force it to choose the mode - matching closest the resolution you specify by -x and -y. - By providing the -v option, the DGA driver will print, among a lot of other - things, a list of all resolutions supported by your current XF86-Config - file. - Having DGA2 you may also force it to use a certain depth by using the -bpp - option. Valid depths are 15, 16, 24 and 32. It depends on your hardware - whether these depths are natively supported or if a (possibly slow) - conversion has to be done. - - If you should be lucky enough to have enough offscreen memory left to - put a whole image there, the DGA driver will use doublebuffering, which - results in much smoother movie replaying. It will tell you whether double- - buffering is enabled or not. - - Doublebuffering means that the next frame of your video is being drawn in - some offscreen memory while the current frame is being displayed. When the - next frame is ready, the graphics chip is just told the location in memory - of the new frame and simply fetches the data to be displayed from there. - In the meantime the other buffer in memory will be filled again with new - video data. - - Doublebuffering may be switched on by using the option -double and may be - disabled with -nodouble. Current default option is to disable - doublebuffering. When using the DGA driver, onscreen display (OSD) only - works with doublebuffering enabled. However, enabling doublebuffering may - result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of - CPU time!) depending on the implementation of DGA for your hardware. - - - -6. Speed issues -~~~~~~~~~~~~~~~ - Generally spoken, DGA framebuffer access should be at least as fast as using - the X11 driver with the additional benefit of getting a fullscreen image. - The percentage speed values printed by mplayer have to be interpreted with - some care, as for example, with the X11 driver they do not include the time - used by the X-Server needed for the actual drawing. Hook a terminal to a - serial line of your box and start top to see what is really going on in your - box ... - - Generally spoken, the speedup done by using DGA against 'normal' use of X11 - highly depends on your graphics card and how well the X-Server module for it - is optimized. - - If you have a slow system, better use 15 or 16bit depth since they require - only half the memory bandwidth of a 32 bit display. - - Using a depth of 24bit is even a good idea if your card natively just supports - 32 bit depth since it transfers 25% less data compared to the 32/32 mode. - - I've seen some avi files already be replayed on a Pentium MMX 266. AMD K6-2 - CPUs might work at 400 MHZ and above. - -7. Known Bugs -~~~~~~~~~~~~~ - - Well, according to some developpers of XFree, DGA is quite a beast. They - tell you better not to use it. Its implementation is not always flawless - with every chipset driver for XFree out there. - - o with XFree 4.0.3 and nv.o there is a bug resulting in strange colors - o ATI driver requires to switch mode back more than once after finishing - using of DGA - o some drivers simply fail to switch back to normal resolution (use - Ctrl-Alt-Keypad +, - to switch back manually) - o some drivers simply display strange colors - o some drivers lie about the amount of memory they map into the process's - address space, thus vo_dga won't use doublebuffering (SIS?) - o some drivers seem to fail to report even a single valid mode. In this - case the DGA driver will crash telling you about a nonsense mode of - 100000x100000 or the like ... - o OSD only works with doublebuffering enabled - -8. Future work -~~~~~~~~~~~~~~ - - o use of the new X11 render interface for OSD - o where is my TODO list ???? :-((( - - -A. Sample modelines -~~~~~~~~~~~~~~~~~~~ -Section "Modes" - Identifier "Modes[0]" - # 800x600 @ 60 Hz, 37.8 kHz hsync - Modeline "800x600" 40 800 840 968 1056 600 601 605 628 - Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 - Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 - Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan - Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 - Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan - Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan -EndSection - - - These entries work fine with my Riva128 chip, using nv.o XServer driver - module. - -B. Bug Reports -~~~~~~~~~~~~~~ - - If you experience troubles with the DGA driver please feel free to file - a bug report to me (e-mail address below). Please start mplayer with the - -v option and include all lines in the bug report that start with vo_dga: - - Please do also include the version of X11 you are using, the graphics card - and your CPU type. The X11 driver module (defined in XF86-Config) might - also help. Thanks! - - - Acki (acki@acki-netz.de, www.acki-netz.de) 18.06.2001 - - |