                          Information for SiS Users

               Thomas Winischhofer (<thomas@winischhofer.net>)

                               5 October 2003

1.  Introduction

This driver is written by Thomas Winischhofer and is a (nearly) complete re-
write of a driver written for the SiS6326 and SiS530 by Alan Hourihane and
others.

It currently supports the following chipsets:

   o old series: 5597/5598, 6236/AGP/DVD, 530/620

   o 300 series: 300/305, 540, 630/730

   o 315 series: 315, 550, 650, 651, M650, 740

   o 330 series: 330 ("Xabre"), 661FX, M661FX, 741, 760

The driver supports:

   o 8/16/24 bits color depth; old series also 15;

   o XAA (XFree86 Acceleration Architecture)

   o XVideo (Xv)

   o Render (XRAND)

   o Hardware cursor; 315/330 series: Color HW cursor;

   o 6326: TV output

   o 300/315/330 series: TV output via Chrontel TV encoders or SiS video
     bridges

   o 300/315/330 series: LCD output via LVDS transmitters or SiS video
     bridges

   o 300/315/330 series: Dual head mode; Xinerama; Merged framebuffer mode;

This document gives an overview over the driver's features and configuration
options.  Please see http://www.winischhofer.net/linuxsisvga.shtml for
detailed documentation and updates. Support for the 661, 741 and 760 is
entirely untested as of this writing, and possibly incomplete for LCD output.

2.  XF86Config Options

The following options are of particular interest for the SiS driver. Each of
them must be specified in the Device section of the XF86Config file for this
card.

2.1  For all chipsets

      Option "SWCursor", "HWCursor"
            These options select whether the software (SW) or hardware (HW)
            cursor should be used. The default is using the hardware cursor.

      Option "NoAccel"
            Disables 2D acceleration. Default: 2D acceleration is enabled.

      Option "Turboqueue"
            SiS chipsets have the option to extend the engine command queue
            on VRAM. This concept is called "TurboQueue" and gives some per-
            formance improvement.  Due to hardware bugs, the TurboQueue is
            disabled on the 530/620, otherwise enabled by default.

      Option "Rotate"
            This option enables clockwise ("CW") or counter-clockwise ("CCW")
            rotation of the display. Enabling either CW or CCW rotation dis-
            ables the RandR extension.  Default: no rotation.

      Option "ShadowFB"
            This option enables the shadow framebuffer layer. By default, it
            is disabled.

      Option "NoXVideo"
            Disables the XVideo support. Default: XVideo support is enabled.

      Option "CRT1Gamma"
            Enables or disables gamma correction. Default: gamma correction
            is enabled.

2.2  old series specific options

      Option "FastVram"
            Enables 1 cycle memory access for read and write operations. The
            default depends on the chipset used.

      Option "NoHostBus"
            For 5597/5598 only. This option, if set, disables the CPU to VGA
            host bus.  Disabling the host bus will result in a severe perfor-
            mance regression.

      VideoRAM size
            The SiS 6326 can only directly address 4096K bytes of video RAM.
            However, there are some cards out there featuring 8192K (8MB) of
            video RAM. This RAM is not addressable by the engines.  There-
            fore, by default, the driver will only use 4096K. This behavior
            can be overridden by specifying the amount of video RAM using the
            VideoRAM keyword. If more than 4096K is specified, the driver
            will disable 2D acceleration, Xv and the HW cursor. On all other
            chipsets, this keyword is ignored.

      Option "NoYV12"
            Due to hardware bugs, XVideo may display a corrupt image when
            using YV12 encoded material. This option, if set, disables sup-
            port for YV12 and hence forces the Xv-aware application to use
            either YUV2 or XShm for video output.

      Option "TVStandard"
            (6326 only) Selects the TV output standard. May be PAL or NTSC.
            By default, this is selected by a jumper on the card.

2.3  300/315/330 series specific options

      Option "ForceCRT1"
            Enables or disables CRT1 (= the external VGA monitor). By
            default, the driver will use CRT1 if a monitor is detected during
            server start. Some older monitors can't be detected, so they may
            require setting this option to true. To disable CRT1 output, set
            this option to false.

      Option "ForceCRT1Type"
            SiS 650, M650 and 651 with either 301LV or 302LV video bridge
            only.  May be VGA or LCD. Specifying LCD will force the driver to
            use the VGA controller's CRT1 channel for driving the LCD, while
            CRT2 is free for TV usage. Default is VGA.

      Option "ForceCRT2Type"
            Selects the CRT2 output device type. Valid parameters are LCD,
            TV, SVIDEO, COMPOSITE, SCART, VGA, NONE. NONE disables CRT2.
            SVIDEO and COMPOSITE are only for systems with a SiS video bridge
            and select the desired plug type. For Chrontel systems, TV should
            be used instead.  VGA means secondary VGA and is only available
            on some SiS video bridges (301, 301B, 301C).

      Option "CRT2Gamma"
            Enables or disables gamma correction for CRT2. This is only sup-
            ported for SiS video bridges. Default: gamma correction for CRT2
            is enabled.

      Option "DRI"
            Although this option is accepted for all chipsets, it currently
            only makes sense on the 300 series; DRI is only supported on
            these chipsets.  This option enables/disables DRI.

      Option "TVStandard"
            Selects the TV output standard. May be PAL or NTSC, on some
            machines (depending on the hardware) also PALM and PALN. Default:
            BIOS setting.

      Option "TVXPosOffset", "TVYPosOffset"
            These options allow relocating the image on your TV. Both options
            take an integer within the range of -16 to 16. Default: 0. Not
            supported for Chrontel 7019.

      Option "CHTVOverscan"
            For Chrontel TV encoders only. Selects whether TV output should
            be overscan or underscan.

      Option "CHTVSuperOverscan"
            For Chrontel 7005 TV encoders in PAL mode only. Selects whether
            TV output should be super-overscan (slightly larger than the
            viewable area) or not.

      Option "SISTVXScale", "SISTVYScale"
            For SiS video bridges only. These options allow zooming the image
            on your TV. SISTVXScale takes an integer within the range of -16
            to 16.  SISTVYScale accepts -4 to 3. Default: 0. Not all modes
            can be scaled.

2.4  300 series specific options

      Option "MaxXFBMem"
            DRI requires the linux kernel's SiS framebuffer driver "sisfb"
            and some other modules which come with either the linux kernel or
            XFree86. (On *BSD, the DRI driver does not require any frame-
            buffer driver.)  Sisfb takes care of memory management for tex-
            ture data. In order to prevent the X driver and sisfb from over-
            writing each others video memory, sisfb reserves an amount of
            video memory for the X driver. This amount can either be selected
            using sisfb's mem parameter, or auto-selected depending on the
            amount of total video RAM available. However, the X driver needs
            to know about the amount of RAM sisfb reserved. For this purpose,
            the Option "MaxXFBMem" exists.

            XFree 4.3.0 disabled SiS DRI support due to a lack of maintenance
            of the SiS DRI driver. XFree86 4.4 contains a newly written SiS
            DRI driver by Eric Anholt.

            If you intend to use DRI, I recommend setting the total video
            memory in the BIOS to 64MB in order to at least overcome the lack
            of memory swap functions.

            Sisfb can be used for memory management only, or as a complete
            framebuffer driver.  If you start sisfb with a valid mode (ie you
            gain a graphical console), the X driver can communicate with
            sisfb and doesn't require setting the MaxXFBMem option at all.
            The X driver will receive enough information from sisfb in this
            case.

            However, if you use sisfb for memory management only, ie you
            started sisfb with mode=none and still have a text mode console,
            there is no communication between sisfb and the X driver. In this
            case, you need to set MaxXFBMem to the same value as you gave
            sisfb with its mem parameter. If you didn't specify any mem
            parameter, sisfb will reserve 12288KB if more than 16MB of total
            video RAM is available, 8192KB if between 12 and 16MB of video
            RAM is available, 4096KB in all other cases.

            Then you need to specify any of these amounts as the parameter
            for the MaxXFBMem option. The value is to be given without 'KB'.

2.5  315/330 series specific options

      Option "RenderAcceleration"
            Enables or disables RENDER acceleration. By default, RENDER
            acceleration is enabled.

      Option "XvOnCRT2"
            315, 650, 740, 330 only. This option selects whether the XVideo
            (Xv) overlay should be displayed on CRT1 or CRT2. Setting this
            options means CRT2. The other CRT will only display the (blue)
            color key.

Document based on 4.1 version written by Joanjo Santamarta and 3.3 version
written by Xavier Ducoin.

     Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.9 dawes Exp $

