glenda.party
term% ls -F
term% pwd
$home/manuals/9front/3/vga
term% cat index.txt
VGA(3)                     Library Functions Manual                     VGA(3)

NAME
       vga - VGA controller device

SYNOPSIS
       bind #v /dev

       /dev/vgabios
       /dev/vgactl
       /dev/vgaovl
       /dev/vgaovlctl

DESCRIPTION
       The  VGA  device allows configuration of a graphics controller on a PC.
       Vgactl allows  control  over  higher-level  settings  such  as  display
       height,  width, depth, controller and hardware-cursor type.  Along with
       the I/O-port registers provided by arch(3), it  is  used  to  implement
       configuration  and setup of VGA controller cards.  This is usually per‐
       formed by vga(8).

       Vgabios provides read-only access to the low 640kB of memory, where the
       VGA and other BIOS ROMs are located.

       Writing strings to vgactl configures the VGA device.  The following are
       valid commands.

       size XxYxZ chan
              Set the size of the screen image to be X pixels wide and Y  pix‐
              els high.  Each pixel is Z bits as specified by chan, whose for‐
              mat is described in image(6).

       actualsize XxY
              Set  the  physical  size of the display to be X pixels wide by Y
              pixels high.  This message is optional; it is used to  implement
              panning  and  to accommodate displays that require the in-memory
              screen image to have certain alignment properties.  For example,
              a 1400x1050 screen with a 1408x1050  in-memory  image  will  use
              size 1408x1050 but actualsize 1400x1050.

       panning mode
              Depending  on  whether mode is on or off, enable or disable pan‐
              ning in a virtual screen.  If panning is  on  and  the  screen's
              size is larger than its actualsize, the displayed portion of the
              screen  will  pan to follow the mouse.  Setting the panning mode
              after the first attach of the #i driver has no effect.

       type ctlr
              Set the type of VGA controller  being  used.   Ctlr  is  one  of
              ark200pv,  clgd542x,  clgd546x,  ct65545,  cyber938x,  hiqvideo,
              mach64xx, mga2164w, neomagic, nvidia, s3, and t2r4.

              Note that this list does not indicate the full set of VGA  chips
              supported.  For  example,  s3 includes the 86C801/5, 86C928, Vi‐
              sion864, and Vision964.  It is the job of  vga(8)  to  recognize
              which  particular chip is being used and to initialize it appro‐
              priately.

       hwgc gc
              Set the type of hardware graphics cursor being used.  Gc is  one
              of    ark200pvhwgc,   bt485hwgc,   clgd542xhwgc,   clgd546xhwgc,
              ct65545hwgc,    cyber938xhwgc,    hiqvideohwgc,    mach64xxhwgc,
              mga2164whwgc,   neomagichwgc,  nvidiahwgc,  rgb524hwgc,  s3hwgc,
              t2r4hwgc, tvp3020hwgc, and tvp3026hwgc.  A value of off disables
              the cursor.  There is no software cursor.

       palettedepth d
              Set the number of bits of precision used by the VGA  palette  to
              d, which must be either 6 or 8.

       blank  Blank  the  screen.  This consists of setting the hardware color
              map to all black as well as, on some  controllers,  setting  the
              VGA  hsync and vsync signals so as to turn off VESA DPMS-compli‐
              ant monitors.  The screen also blanks after 30 minutes of  inac‐
              tivity.  The screen can be unblanked by moving the mouse.

       blanktime minutes
              Set the timeout before the screen blanks; the default is 30 min‐
              utes.  If minutes is zero, blanking is disabled.

       hwaccel mode
              Depending  on  whether  mode  is  on  or  off, enable or disable
              whether hardware acceleration (currently for  rectangle  filling
              and moving) used by the graphics engine.  The default setting is
              on.

       softscreen mode
              Depending on whether mode is on or off, enable or disable shadow
              framebuffer  to  reduce slow bus reads. Enabling softscreen dis‐
              ables hardware acceleration. The default setting is  off  except
              for the vesa driver.

       hwblank mode
              Depending  on  whether  mode is on or off, enable or disable the
              use of DPMS blanking (see blank above).

       linear size align
              Use a linear screen aperture of size size aligned on  an  align-
              byte boundary.

       drawinit
              Initialize  the graphics hardware.  This must be sent after set‐
              ting the type.

       Reading vgactl returns the current settings, one per line.

       Some VGA cards support overlay graphics.  Writing strings to  vgaovlctl
       configures  such  cards.   The following are valid overlay control com‐
       mands:

       openctl
              opens the overlay device.

       configure w h format
              allocates resources inside the driver to support an overlay area
              of width w and height h pixels.  Currently, the  only  supported
              format  is YUYV packed.  In YUYV two pixels are encoded by their
              separate Y values and their combined U and V values.   The  size
              of the two pixels is 32 bits.

       enable x y w h
              enables  drawing  data  on the display through the overlay mode.
              The data is drawn at position x,y and has a width and height  of
              w,h respectively.

       closectl
              terminates overlay control.

       Overlay data can be written to vgaovl.

EXAMPLES
       The following disables hardware acceleration.

              echo hwaccel off > /dev/vgactl

SOURCE
       /sys/src/9/pc/devvga.c

SEE ALSO
       arch(3), vga(8)

BUGS
       The  hardware  graphics  cursor  on the et4000 does not work in 2x8-bit
       mode.

                                                                        VGA(3)