changeset 832:369697a87773

- some more introductionary words; no real flesh yet however ;-( (got to go to bed) cvs: ----------------------------------------------------------------------
author acki2
date Thu, 17 May 2001 23:35:51 +0000
parents dd4808cddb8c
children b8cecdc0c67f
files DOCS/DGA
diffstat 1 files changed, 96 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/DGA	Thu May 17 22:41:52 2001 +0000
+++ b/DOCS/DGA	Thu May 17 23:35:51 2001 +0000
@@ -4,11 +4,12 @@
 
  1. Summary
  2. What is DGA
- 3. DGA & MPlayer
- 4. Features of DGA driver
- 5. Speed issues
- 6. Known bugs
- 7. Future work
+ 3. Resolution switching
+ 4. DGA & MPlayer
+ 5. Features of the DGA driver
+ 6. Speed issues
+ 7. Known bugs
+ 8. Future work
  
  A. Some modelines
 
@@ -26,11 +27,98 @@
  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 just allowed by the kernel
- if 
+ 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.
+
+ There are two versions of DGA: DGA1 is used by XFree 3.X.X and DGA2 was 
+ introduced with XFree 4.0.1.
+
+ DGA1 just provides direct framebuffer access as described above. For 
+ switching the resolution of the video signal you have to rely on the 
+ XVidMode extension.
+
+ DGA2 incorporated 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 those 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 (or the like)) 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.
+
+ ... to be continued during the next days ...
+
+# An advantage of this method is that you are in full control of the 
+# framebuffer and can put your hand on the code that is used for copying
+# to the framebuffer. However there are two disadvantages:
+ 
+# First, you control the screen - no more windowmanager functionally - just
+# the one application that uses DGA is visible.
+
+# Second you 
+ 
+ 
+ 
+# Do it like this (you got to be root for this):
+
+ # chown root /usr/local/bin/mplayer
+ # chmod 750 /usr/local/bin/mplayer 
+ # chmod +s /usr/local/bin/mplayer 
+ 
+# Now it works for simple users, too.
+# !!!! BUT STAY TUNED !!!!
+# This is a BIG security risk! Never do this on a server or on a computer
+# can be accessed by more people than only you because they can gain root
+# privilegies through suid root mplayer.
+# !!!! SO YOU HAVE BEEN WARNED ... !!!!
+#
+
+A. Sample modelines
+~~~~~~~~~~~~~~~~~~~
+Section "Modes"
+  Identifier    "Modes[0]"
+  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      "352x240"  15.750 352 368 416 432   240 244 246 262 Doublescan
+  # 800x600 @ 60 Hz, 37.8 kHz hsync
+  Modeline	"800x600"  40     800 840 968 1056  600 601 605 628 
+  Modeline	"352x288"  25.10  352 368 416 432   288 296 290 310
+EndSection
+
+
+ These entries work fine with my Riva128 chip, using nv.o XServer driver
+ module.
 
  Acki (acki@acki-netz.de, www.acki-netz.de)                  17.5.2001 
 
- To be continued...
-