Sadly, 3d acceleration still does not work, nor will it until somebody writes a driver for the sis650 that supports DRI. The Winischofer drivers support DRI on the sis 300 series only (the sis650 is 315 series).
After I'd downloaded it, I put the sis_drv.o driver file in /usr/X11R6/lib/modules/drivers (I made a backup of the existing sis_drv.o first!). I modified the /etc/X11/XF86Config-4 file (once again, making a backup first) and have posted it for you below.
With that done, I booted the X server to find that KDE worked...so far so good. When I ran Xine though, I just got a black screen in the output window.
While Xine was running, I ran the sisctrl utility, and found that it thought CRT1 was a VGA monitor. Since I am using a laptop, I set this to LCD Panel instead. This made the XINE logo appear in the output window, although still in black and white.
On the Video tab of sisctrl there are colour, saturation, contrast and brightness controls. Fiddling with these made Xine burst into colour (initially colour and saturation were both set to min, which is why the picture was monochrome).
Note that Xine has to redraw its output before you see the effect of fiddling with the colour controls. If you're actually playing a movie then it will be doing this already, but it you're just seeing the XINE logo then you will have to force it to redraw to see the effect of fiddling with the controls: minimise and un-minimise the window, for example.
And that's all. I still have to figure out why XFree doesn't take any notice of the default colour/brightness/etc settings in the config file. I also don't know yet why, even if I set these at runtime using sisctrl, I have to do it again after Xine has started, because for some reason Xine resets colour and saturation back to min.
Anyway, have a play, and let me know what you find out. My XF86Config-4 file is like this:
# XF86Config-4 example (generic)
# See other examples for Dual Head mode and Merged Framebuffer mode
# ----------- This stuff needs to be adapted to your machine ------------
Section "Files"
FontPath "unix/:7110" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
# FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection
Section "ServerFlags"
# Option "AllowMouseOpenFail"
# Option "noPM"
Option "BlankTime" "99999"
Option "StandbyTime" "99999"
Option "SuspendTime" "99999"
Option "OffTime" "99999"
EndSection
Section "Module"
Load "GLcore"
Load "dbe"
Load "v4l"
# Load "dri" - no longer needed, driver loads it automatically
Load "extmod"
Load "glx"
Load "pex5"
Load "record"
Load "xie"
Load "bitmap"
Load "freetype"
Load "speedo"
Load "type1"
# For XFree86 4.1, add the following here:
# Load "vbe"
# Load "int10"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "Keyboard"
Option "CoreKeyboard"
# Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "gb"
# Option "XkbVariant" "nodeadkeys"
Option "XkbCompat" ""
Option "XkbOptions" ""
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
# Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "IMPS/2"
# Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
#Section "InputDevice"
# Identifier "USB Mouse"
# Driver "mouse"
# Option "SendCoreEvents" "true"
# Option "Device" "/dev/input/mice"
# Option "Protocol" "ImPS/2"
# Option "Emulate3Buttons" "true"
# Option "ZAxisMapping" "4 5"
#EndSection
# ----------------- End of machine specific stuff ------------------------
# ----------------------------------------------------------
# MONITOR section
# ----------------------------------------------------------
# This section contains data for monitor configuration.
# The data in the Monitor section is only used for CRT1 (VGA),
# and will be ignored for CRT2 (unless CRT2 is a secondary VGA).
# If you only run with CRT2 (such as on laptops without an external
# monitor connected), you should place same sane values here anyway,
# in order to keep the X server from deleting modes from the list.
Section "Monitor"
Identifier "Monitor1"
VendorName "Generic"
ModelName "Flat Panel 1024x768"
VertRefresh 40-70
HorizSync 31.5-48.5
# Sony Vaio C1(X,XS,VE,VN)?
# 1024x480 @ 85.6 Hz, 48 kHz hsync
ModeLine "1024x480" 65.00 1024 1032 1176 1344 480 488 494 563 -hsync -vsync
# TV fullscreen mode or DVD fullscreen output.
# 768x576 @ 79 Hz, 50 kHz hsync
ModeLine "768x576" 50.00 768 832 846 1000 576 590 595 630
# 768x576 @ 100 Hz, 61.6 kHz hsync
ModeLine "768x576" 63.07 768 800 960 1024 576 578 590 616
EndSection
# ----------------------------------------------------------
# DEVICE section
# ----------------------------------------------------------
# This section contains configuration data of the video card.
Section "Device"
Driver "sis"
Identifier "SiS 650"
VendorName "SiS"
BoardName "650"
Option "DPMS"
Option "EnableSiSCtrl" "true"
Option "XvDefaultContrast" "3"
Option "XvDefaultBrightness" "50"
Option "XvDefaultHue" "-1"
Option "XvDefaultSaturation" "-1"
Option "XvOnCRT2" "false"
# Option "HWCursor"
# Use hardware or software cursor ("HWCursor" / "SWCursor")
Option "HWcursor"
# Option "NoAccel"
# Setting this option will disable 2D/3D accellerators (and Xv).
#Option "NoAccel"
# Option "ForceCRT1"
# If CRT1 (=external VGA) monitor is used depends on whether the driver
# detects it during server start. If you want to override this
# automatic detection, set this option to either "true" (to enable
# CRT1) or "false" (to disable CRT1)
#Option "ForceCRT1" "true"
# Option "ForceCRT2Type":
# This option selects the CRT2 output device type and is only useful
# on systems containing a video bridge (such as most laptops).
# Available options are:
# "TV" (if TV connector present),
# "LCD" alias "DVI-D" (if LCD panel present),
# "VGA" alias "DVI-A" (secondary VGA; use this only if your machine
# has a secondary VGA connector or a DVI-I connector
# The VGA plug on your laptop is CRT1!)
# "NONE" (this will switch off CRT2).
# "COMPOSITE" (SiS video bridge only) Force TV to use cvbs connector
# "SVIDEO" (SiS video bridge only) Force TV to use SVHS connector
# "SCART" (SiS video bridge only) Force TV to use SCART connector
#Option "ForceCRT2Type" "NONE"
# Option "MaxXFBMem":
# Only useful on 300 series!
# YOU DON'T NEED THIS ON 315/550/650/651/M650/740/741/Xabre
# This option limits the amount of memory X uses for its framebuffer.
# Its purpose is to avoid a clash between X and DRI/DRM/sisfb as regards
# memory management.
# The SiS kernel framebuffer driver (sisfb) is responsible for memory
# management for DRI. It will install a video memory heap at
# - 12 MB (=12288 KB) if more than 16MB of video RAM available,
# - 8 MB (=8192 KB) if between 8 an 16MB if video RAM available,
# - 4 MB (=4096 KB) if less than 8 MB of video RAM available.
# Other amounts can be specified with sisfb's "mem" parameter.
# If this option is set, X only uses the specified amount of memory for
# its screen and its off-screen buffers.
# Limiting X to use only a small part of RAM therefore avoids that
# the kernel framebuffer (and a DRI application using the sisfb's
# memory pool) overwrites X's screen and off-screen memory.
# When setting MaxXFBMem to "8192", memory will be used according
# to the following figure:
# 0-------8------16------24------32------40------48--------56-------64MB
# XXXXXXXX
# FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
# (X=memory used by X, F=memory used by sisfb and thus DRI)
# If DRI is disabled and the framebuffer driver is not loaded, this option
# can and should be left out.
Option "MaxXFBMem" "12288"
# Option "TVStandard"
# Can be "NTSC" or "PAL". On some machines with a 30x/B/LV bridge as well
# as on machines with a Chrontel 7019/7020, also
# "PALM" (for PAL-M) or "PALN" (PAL-N)
# Normally, this will be autodetected acoording to the BIOS setting.
# Option "TVStandard" "PAL"
# Option "XvOnCRT2"
# Only useful on machines with SiS315, 650 or 740 and only if both CRT1 and
# CRT2 are available and connected.
# Setting this to "TRUE" will show the Xv video overlay on CRT2, "FALSE" will
# show the overlay on CRT1.
# This can be changed by the Xv property "XV_SWITCHCRT".
# Option "XvOnCRT2" "true"
# Option "CHTVOvercan"
# Only useful on machines with a Chrontel TV encoder
# Setting this to "TRUE" will use overscan modes (larger image on the TV)
# Normally this is autodetected according to the BIOS setting.
# Option "CHTVOverscan" "TRUE"
# Option "CHTVSuperOverscan"
# Only useful on machines with a Chrontel 700x TV encoder.
# Not for Chrontel 701x TV encoders!
# Only useful if TV standard is PAL
# Setting this to "true" will force the driver to use a TV mode which is even
# larger than the normal overscan mode. This option overrules the CHTVOverscan
# option. Setting it to "FALSE" will make the driver to fall back on the
# normal overscan setting (BIOS selection or, if set, the CHTVOverscan setting)
# Option "CHTVSuperOverscan" "TRUE"
# Option "CHTVContrast"
# Only useful on machines with Chrontel TV encoder
# This option accepts numerical values from 0 to 15 and it adjust the contrast
# of the TV image.
# Option "CHTVContrast" "10"
# Option "SISTVAntiFlicker"
# Only useful on machines with SiS30x/B/LV video bridge
# This option allows adjusting the bridge's anti flicker engine. It accepts
# "OFF", "LOW", "MED", "HIGH" and "ADAPTIVE"
# Option "SISTVAntiFlicker" "ADAPTIVE"
# Option "SISTVSaturation"
# Only useful on machines with SiS30x/B/LV video bridge
# This option allows tuning the color saturation of the TV image. It accepts
# values from 0 to 15.
# Option "SISTVSaturation" "15"
# Option "TVXPosOffset"
# Useful on machines with SiS6326+TV, Chrontel 700x TV encoder or SiS video
# bridge.
# This option allows adjusting the TV image's horizontal position. It accepts
# values from -32 to 32 (on the 6326 -16 to 16)
# Option "TVXPosOffset" "8"
# Option "TVYPosOffset"
# Like TVXPosOffset, but for vertical adjustments.
# Option "TVYPosOffset" "-3"
# Please see
http://www.winischhofer.net/linuxsisvga.shtml for more information
EndSection
# ----------------------------------------------------------
# SCREEN section
# ----------------------------------------------------------
# This section defines the available resulutions and depths.
# If you disable CRT2 (by setting ForceCRT2Type to "NONE"),
# you can use higher resolutions than the LCD panel supports.
Section "Screen"
Identifier "screen1"
Device "SiS 650"
Monitor "Monitor1"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "screen1"
InputDevice "Keyboard1" "CoreKeyboard"
InputDevice "Mouse1" "CorePointer"
EndSection
#Section "DRI"
# Mode 0666
#EndSection
# end of XF86Config