
    :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

*   DOCS/MTRR!

  " "    YUV ,
,  .  Linux,   
 :

I.   Xv (XVideo)  XFree86 4.0.2
I.1.    
II.  OpenGL    glTexSubImage()
III.    -,   
      
IV.  DGA -   .  YUV  ,  
       X11
V.     , ...

     :

   ,  DOCS/MTRR,    /proc/mtrr.
 ,   !       5   P3!!!

I.  XFree86 4.0.2  ,  XVideo :
       '-vo xv'.

    ,   :

1.   XFree86 4.0.2   (    XVideo)

2.       ( )

3. X  XVideo ,  -  :
   (II) Loading extension XVideo
    /var/log/XFree86.0.log
    :    XFree86 .   
           XVideo  
    !

4.    Xv   Linux.  , 
     'xvinfo' -   XFree86 .  
       :

	X-Video Extension version 2.2
	screen #0
	  Adaptor #0: "Savage Streams Engine"
	    number of ports: 1
	    port base: 43
	    operations supported: PutImage 
	    supported visuals:
	      depth 16, visualID 0x22
	      depth 16, visualID 0x23
	    number of attributes: 5
	(...)
	    Number of image formats: 7
	      id: 0x32595559 (YUY2)
	        guid: 59555932-0000-0010-8000-00aa00389b71
	        bits per pixel: 16
	        number of planes: 1
	        type: YUV (packed)
	      id: 0x32315659 (YV12)
	        guid: 59563132-0000-0010-8000-00aa00389b71
	        bits per pixel: 12
	        number of planes: 3
	        type: YUV (planar)
	(...etc...)

       YUY2   YV12  
   -      MPlayer.

4.1.
  a,  xvinfo    ,  XVideo    
      ,      YUV :
    - 3dfx voodoo3/banshee     DRI 
      http://dri.sourceforge.net (    X 4.1.0)
    - S3 Savage4    XFree86 >= 4.0.3
      (4.1.0 )
    - nVidia     ..   nVidia 
       nVidia .
  b, GATOS  ( ATI )  VSYNC   .
      ,    (!)    
       .    ,
       - VSYNC,    
       n*(/ ) Hz.

5.   MPlayer   "xv". "./configure"  :
	Checking for Xv ... yes

6.   ,    '-vo xv' .  
   . (   ,   bugreport.  BUGREPORTS
       .)


II. OpenGL   ** ** glTexSubImage() .

    Utah-GLX  ( X 3.3.6)     .
    . http://utah-glx.sourceforge.net     .

   DRI >= 4.0.3     Matrox ,  Radeon.
   . dri.sourceforge.net  ,    .

III.    -

 3    Linux:
1. Matrox G200/G400/G450 BES (Back-End Scaler)  -> mga_vid 
  .     (A'rpi),    
  VSYNC   .     framebuffer    X.
  
    ,   mga_vid.o  drivers/ 
  (: make),  /dev/mga_vid :
   mknod /dev/mga_vid c 178 0
       insmod mga_vid.o.  
         'dmesg'.
    ,   mga_ram_size ( rmmod mga_vid),
       MB:
    insmod mga_vid.o mga_ram_size=16
        , 
      /etc/modules.conf
   alias char-major-178 mga_vid

     MPlayer: (     
  mga_vid...)
  
    vo 'mga'  framebuffer  (matroxfb): -vo mga
    xmga   X 3.3.x: -vo xmga

  :     X 4.0.2,     Xv ,
  -    .    X-
          Xv 
   :(
  
      dual-head G400,  TV      head2,
        :   
  DOCS/TVout-G400

2.  SiS 6326 YUV Framebuffer -> sis_vid  
        mga_vid,    
    mga_vid, -   .
          .

3. 3dfx (- ?)  YUV+scaler,  /dev/3dfx
  (tdfx.o ?).   /dev/3dfx    2.2.x ,
     Linux  Glide 2.x.     MPlayer,
     .      
    .


IV.    -   ,    
    (fps)  DGA :

1. ,  X  DGA :
	(II) Loading extension XFree86-DGA
   (  , XFree86 4.0.x    !)
2. DGA  MPlayer'   ./configure,  
       --enable-dga.
3.        , 
     -vm (  X 3.3.x), -fs, -bpp, -zoom    
      .    .. :(
4.  ROOT.  DGA  root ,    
     .
         ,  
   MPlayer SUID root:
   'chown root /usr/local/bin/mplayer'
   'chmod 750 /usr/local/bin/mplayer' 
   'chmod +s /usr/local/bin/mplayer' 
         .
   !!!!    !!!!
       !       
         -     
      root'  suid root mplayer.
   !!!!     ... !!!!
5.   '-vo dga',  ! (:)
6.    '-vo sdl:dga'     !
     !!!

       (P3 800  )  
  fsdga    mpeg (
 YUV->RGB ):
mplayer -vo fsdga ...


V.   , ...

a,     X...
  ... SVGAlib  !    -fs  ,
      ,   ,
          CPU (/ MTRR?). :(

        svgalib   
     MPlayer'   SVGAlib  (,
     )     /etc/vga/libvga.config
         .
 
    aalib ('-vo sdl:aalib'),  !

b,    framebuffer...
  ...    FBdev     ./configure.
   framebuffer     (Documentation/fb/*)
        ,  .... !

  ...      VBE 2.0  ( ISA/PCI
  ,   S3 Trio64),  VBE 1.2 ( ) :
  , VESAfb   ,     SciTech Display
  Doctor ( UniVBE)   Linux.    DOS
   - .      UniVBE ;))

  :    FBdev  _ _  VESA framebuffer,
     ,    MPlayer .

	Gabucino & A'rpi

: Nick Kurshev <nickols_k@mail.ru>
