Linux and SiS VGA chipsets - History
This page contains older changelogs of the drivers. Most information here is outdated. For current changelog and information,
refer to this page.
* * *
[Oldest entries removed]
UPDATE (26/12/01): A new update for the drivers. I (temporarily) solved the
problem of video memory corruption by creating a new option in XF86Config-4. This option, which goes by the name
MaxXFBMem, limits the video memory X uses for the screen and its off-screen buffers. In case you are
going to test DRI, I recommend setting this option to "8192" (KB), and setting the video memory in BIOS to 64MB. The kernel
framebuffer driver will let its video memory pool start at 8MB if it detects more memory. If you limit X to only use only
8MB (which is done by MaxXFBMem), you can avoid the kernel framebuffer (and therefore also DRI/DRM) overwriting the
video memory used by X. If DRI is not to be used, you can (and should) let this option out, because it would
unnecessarily reduce the memory available to X.
DRI/DRM now works on my machine - at least with some applications. I tested the XMMS' OpenGL Spectrum Equalizer
and it worked; Quake 3 does not - the game runs, I hear the sounds, I can shoot, but I only see a black screen.
Issues 2 to 5 above still apply.
UPDATE (27/12/01): Please don't use the Option
MaxXFBMem until further notice. I found out that it doesn't really work correctly;
some applications produce weird screen output when the option is set. I will try to fix it on the weekend.
The news: Together with Christoph Pittracher (Thanks!) I/we could fix a bug in the SiS DRM module which prevented
users from running DRI applications. Root worked, but users got a (incorrect) "out of video memory" error, which basically
was a permission problem. The error was in the DRM module, a kernel patch is available [link outdated, removed].
We could both successfully play Quake3 on our laptops in the end. (Please read the information on previous updates for more
information and current limitations. Don't wonder about a lazy mouse in the menu of Quake3, during the game the
mouse reacts normally.
Otherwise, no news today. Sorry...
UPDATE (28/12/01): Allright, I fixed the MaxXFBMem option in the version of today.
Quake3, glxgears and XMMS' OpenGL Equalizer work perfectly - without distorting the X screen and off-screen buffers.
Maybe a short further explanation on what this option does:
Imagine the video RAM as the line of "="s below: (For reasons of simplicity I ignore the TurboQueue and the hardware cursor here.)
0MB 8MB 16MB ...
================================================================
Now, using MaxXFBMem with a value of 8192 forces X to use only the first 8MB of the memory
for its screen and its off-screen buffers:
XXXXXXXX
Without the option MaxXFBMem, X would use all the video RAM available.
The sisfb, by default, starts its memory heap at 8MB if it detects more than 8MB of video RAM, therefore its
memory map looks like this:
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
The memory marked with "F" is the sisfb memory that is being used for DRI. As you see, X is limited to use only
memory outside this area. Thus, the sisfb (or a DRI application) will not overwrite X's screen and off-screen buffers.
If the video RAM is set to 8MB (or less) in the BIOS, the sisfb will start its heap at 4MB; therefore I recommend
setting MaxXFBMem to "4096" in this case.
The download links: [outdated, removed].
Since it seems impossible to fix the sisfb for all LCD panels and all bridges around, I will implement a mode where sisfb
will only do memory management for DRI/DRM, but not change the video mode of the console. I will do this on the weekend.
UPDATE (29/12/01): Now, for all the poor dudes for whom the sisfb didn't work:
The new sisfb driver features a new parameter: mode=none. This makes the sisfb skip the framebuffer
initialisation, keeps the console screen in text mode but - and that's the point - still does the memory management
for DRI/DRM. Thus, all those who couldn't use the sisfb due to screen distortion, insmod sisfb with mode=none
and you will be able to use DRI under X.
The download link: [outdated, removed] for kernel >= 2.4.16.
It may work with other kernels as well but I would try not to overwrite that (older) kernel's Makefile (which is contained in the
archive).
UPDATE (01/01/02): Happy new year! Today's update of the X driver contains
a more or less cosmetic correction in connection with the MaxXFBMem option. It now uses the memory made available to it
more efficiently.
I also updated the DRM module for use with newer GL applications such as "Soldier of Furtune". (Thanks to Christoph Pittracher!)
Some kinda funny news: Christoph and I took a closer look at the Windows driver for the SiS chipsets. Guess what: They come
with three .bin files which contain BIOS images for SiS300, SiS630 and SiS730... Furthermore, the SiS driver requires and
loads the VIDEOPORT.SYS driver, uses int10 calls (i.e. VESA calls) as well as contains functions with well-sounding
names like "ReadROMImage"....
Now back to the real thing: I'd like to list all current issues once again since some people don't seem to read more
than the last update's paragraph:
- 1. When the framebuffer driver is not running and the TurboQueue is enabled (which it will be unless you
place the line
option "TurboQueue" "false" in XF86Config-4), X will hang randomly when switching back and forth between
VTs and X. This does, however, not occure if the framebuffer driver is loaded. BTW: The TurboQueue is not of any use
if running X without DRI. I logged the queue buffer (without TurboQueue only 4096 commands, with TurboQueue 32768
commands) during a stress test of the 2D accelerator engine and saw that the internal queue (i.e. without TurboQueue)
got never filled more that half. This means you will not experience any performance draw-backs if switching off the TurboQueue
when not using DRI.
- 2. If you intend to use DRI, please compile the framebuffer driver into the kernel (don't forget to place
a kernel parameter in your boot manager to select the video mode or
mode=none) or insmod it before you start X.
Otherwise, X will load the DRI module, DRI will load DRM, DRM will load sisfb - all this after the X driver already has
changed the video mode. That doesn't work. The framebuffer driver assumes that it's being started under text mode.
The result is a totally and irreversibly distorted screen.
- 3. DRI applications don't like being interrupted by switching to another VT or by APM suspend/resume.
The applications don't crash, but the result of DRI output looks somewhat different after such an event.
Addendum: I also fixed the ModeSwitching-Bug. With the old driver, applications that wanted to switch the
video mode, could not do this successfully. Instead, the video mode was changed when these applications exited. This
is fixed in today's version with file name extension "_2".
UPDATE (02/01/02): Anthony Fok Tung-Ling sent a small but useful (typo-)patch for the sisfb to silly me,
who never tried to compile the driver with SiS315 support. Thanks!
UPDATE (03/01/02): Some cosmetic changes to the X driver. I re-included blanking the LCD panel when
booting X and removed some out-dated comments from the source.
Please read (and eventually use) my example XF86Config-4. It contains information on how to use the options available very clearly.
To enable TV output, place the line Option "ForceCRT2Type" "TV" in XF86Config-4.
Notes:
1. Due to TV standard restrictions, only resolutions 800x600 and 640x480 are valid.
2. Due to hardware restrictions, the LCD panel will be disabled when using TV-out.
3. The TV must be connected to the computer at boot time, otherwise TV out will be disabled.
4. My machine has a BIOS bug: When using TV-out and running X on 1024x768, I can only switch video mode (CTRL-ALT-+/-) once to 800x600
and 640x480. Whenever I press CTRL-ALT-+/- again so that 1024x768 would be in turn, the machine freezes.
The download links: [outdated, removed]
UPDATE (04/01/02): Major code clean-up (mostly done by Egbert Eich). I included a test for SIS301B bridge type
(for diagnostic reasons; the chip type is not yet supported by the driver) and fixed a bug that caused the PAL flag to be accidently
deleted; this caused NTSC output on TV-out connector even if PAL TV was connected.
The options NoVESA and ForceVESA have been replaced by unified option VESA which
is to be set to "True" in case VESA should be used on other bridge types than LVDS as well; if the option is set to
"False", VESA won't be used at all (even on LVDS bridges). The option VesaFBHack
has been removed (by Egbert).
Addendum: I just fixed a bug in the driver that made it impossible to use modes other than 16bpp. Thanks to all of you who
reported this.
UPDATE (11/01/02): Just for a change and after a long series of X driver updates, I updated the sisfb today.
It now works with the true color modes as well (at least on my machine). To consider a true color mode useful for a console screen
is up to you... Note: The SiS framebuffer driver does not support 24 bit modes. Instead, you have to specify a depth of 32.
A valid mode therefore is for example 1024x768x32. If an invalid mode (such as 1024x768x24) is specified, the driver will use 800x600x8.
Since the 8 bit modes don't work yet, this leads into problems. (The 8 bit modes currently show a black & white and very dark image
on the LCD; VGA is ok, though.)
Since I got no feedback regarding the sisfb on other types of bridges (SiS301, 301B, etc,), I reverted a few changes I had made to
the code.
The X driver got some minor updates. (Nobody seems to have noticed that, but it didn't work at all with the TurboQueue enabled and VESA
disabled the last days. However, using the TurboQueue if not using sisfb at the same time, is not recommended. The old problem that this randomly
leads into a lock-up when switching between X and a console screen, still occurs.)
In order to remind you all once again, the current problems with framebuffer driver (sisfb) on machines with LVDS bridges are
the following:
- 1. The driver works on many (but for some reason not all) machines with LVDS bridges. I have no knowledge on other bridge types, so please
don't ask.
- 2. Only the 16 and 32 bit (depth) modes work correctly (on my machine). The 8 bit (depth) modes show, as said, a dark and b&w image
on the LCD. The image on an external VGA is ok.
The X driver has currently the following issues on machines with LVDS bridges:
- 1. When using VESA: On some machines, the driver shows a white screen at the first start of X. This can be
overcome by changing back to the console once, and switching back to X. If X is started again later (without a reboot), everything is fine.
On these machines, the screen also might become white for 1 or 2 seconds when switching to a console and back to X. This recovers
automatically.
- 2. When not using VESA: Since the BIOS emulation is more or less a guess of what the chip designer and programmer of the stock
driver may have meant, chances are not quite high that it works. On my machine, it does however.
- 3. An enabled TurboQueue (ie. leaving the
Option "TurboQueue" "false" out) when not using the sisfb at the same time
can cause hard lock-ups when switching back and forth from X to a console screen. Therefore: Disable the TurboQueue when not using sisfb
(by placing Option "TurboQueue" "false" into your XF86Config-4 file)!
By "using VESA" I don't mean using the VESA framebuffer and/or the X VESA driver. Forget both of them, they have nothing to
do with the topic discussed here. The default behavior of the X SiS-driver on machines with SiS630 and LVDS or SiS301B/302 bridges is to
use the VESA BIOS extension for mode switching. This does not imply usage of the VESA framebuffer driver and/or the X VESA driver.
(Remember: sisfb and VESA framebuffer driver can not be active at the same time!)
UPDATE (12/01/02): Today's update is especially for people with SiS301B bridges and people who experienced a
white screen at the first start of X. Please try this version and report. Thanks! (Leave out the Option "VESA" "false"!)
(Since I am not even touching the bridge registers now when using VESA, I'd appreciate that you all test this version as it includes changes
that might affect other systems where the driver worked before.)
Addendum: Some more minor changes to X driver (file name extension "_2").
Addendum 2: Some more minor changes to X driver (file name extension "_3"). Please test and report!
UPDATE (13/01/02): I just found the bug that caused X to hang when using the TurboQueue without running sisfb.
This is the only update for today.
UPDATE (14/01/02): Small update of the sisfb driver. mode=none can now be omitted; sisfb starts
without initializing the display (ie. with mode=none) when started without a parameter. Also, I added a module license tag.
I noticed a problem with video playing and the new X driver. Well, it's not really the driver's fault, but more a consequence of a
hardware limitation. I am currently investigating this, so there's no need to report.
(15/01/02) I am working on a major update at the moment; the video bug (video rendering distorted in modes other than 1024x768, ie
in "fullscreen" modes) is already found and fixed. Before uploading an update, I will finish re-writing CRT2 detection and configuration code.
This will make it possible to attach the laptop to an external VGA and use the driver with higher resolutions than the LCD supports. Please
be patient...
I am aware of the fact that on some machines the 32bit modes of sisfb don't work. I am also aware that sisfb, if compiled into the kernel,
still uses 800x600x8 when omitting the mode parameter. This will be my next task after the X driver update.
UPDATE (16/01/02): Allright, folks - time for testing! The new X driver version contains a number of
improvements, so there's plenty to play with!
- 1. New option parameter for
ForceCRT2Type. The new parameter NONE disables CRT2
and makes it possible to connect the laptop to an external VGA monitor and use higher resolutions. Only use this if VESA is used for
mode switching!
- 2. New resolutions. There are three new resolutions which are suitable for external VGA monitors only: This is 1280x1024,
1600x1200 and 1920x1440. These modes are unofficial as the BIOS does not report them as valid. However, they work in my machine. Depending
on your machine's BIOS and hardware, the modes might not work at all or with a depth of 24. Only use this if VESA is used for
mode switching!
- 3. The settings
VertRefresh and HorizSync in the Monitor section of the configuration
file now have a different meaning, depending on whether you use VESA for mode switching or not:
- In case you use VESA for mode switching (that is, you don't set the option
VESA to "false"), these
values now are used for the external VGA monitor if CRT2 is disabled (by setting Option "ForceCRT2Type" "NONE"). If you
use VESA, set these values to match your external monitor. They are not used if CRT2 is enabled. If CRT2 is enabled, the external
VGA - thanks to the BIOS - always uses a 60Hz mode. There is no way to change this (at the moment).
- In case you don't use VESA for mode switching (that is, you have set
Option "VESA" "false" - I don't recommend
doing this!), these values are - like in older versions - used for both CRT1 and CRT2.
- 4. New CRT2 detection functions. I re-wrote the whole part of the driver that detects the hardware (eg. if a TV connector is
present) and (this is new:) if there are devices attached. The intention of this was eg. to disable CRT1 if no external VGA monitor
is connected at boot time. However, this is not finished yet. (Remember: If you intend to use the TV connector, the TV must be connected
and switched on at boot time! Due to hardware limitations it is not possible to connect the TV later. This may work on some
machines, but is not reliable.)
- 5. Bugfix. The driver had a problem with the Xv (hardware video) extension of X. As soon as the mode
was switched away from 1024x768, the video image got distorted and "compressed". This is a hardware problem - but I found a way to avoid
this effect anyway. Thus, this is fixed now. Video in fullscreen mode is now possible.
I got mail from a two people who claimed that the driver's hardware video acceleration would be slower than with (much) older versions.
I checked this and found no performance difference... I never changed anything that is video related (except for the bugfix in today's
version) so to the best of my knowledge there can't be a difference.
Please stop asking me for help if DRI locks your machine or doesn't work: This is not SiS-driver related, so I can't help you. Try
updating to a more current version of X. That's the only advice I can give you.
Addendum: (Revision _2) After rebooting my machine once, I found out that the modes 1600x1200 and 1920x1440 don't really work
correctly. To make them work, you have to set the mode 1920x1440x8 (Note: Depth 8!) once, then quit X and restart with eg.
1600x1200x16. If you don't set the mode to 1920x1440x8 once after a reboot, the 1600x1200 and 1920x1440 modes will not show up correctly.
This is a BIOS bug - it will be hard to come around it...
UPDATE (17/01/02): You see - you can't ever do enough testing. Just found a bug in the video acceleration. Folks
with blue screens should test this new version.
UPDATE (18/01/02): I made some improvements to the video accelerator. First, the driver should support I420
pixel format. Unfortunately, I don't have any files to test this with.
Second, I changed the way the overlay is set-up; this should gain major speed improvements. However, this is yet to be tested! (By me
and you!)
For implementing and testing the I420 and UYVY pixel formats I need files for testing. Can anyone give me a link to AVI (or whatever file
type) files using UYVY or I420 pixel format? (Please don't email any files to me, my server is quite slow.)
Addendum: (File name extension _2) Another change for Xv speed. Please test this intensively! (All modes, depths, fullscreen,
windowed, file types, DVD, VCD, ...)
UPDATE (19/01/02): sisfb now has a parameter mem which can be used to specify the start
of the memory heap. The value given should match the value for MaxXFBMem.
The reason for implementing this was that fact that X natively and Xv especially need quite much memory if used with a depth of 24.
Therefore, I recommend setting mem and MaxXFBMem both to 12288 (12MB) when using X with
a depth of 24. If mem is ommitted, sisfb will start its heap (like before) at 8MB, if more than 8MB of video RAM
is detected, otherwise at 4MB.
Warning: The values for sisfb-mem und X-MaxXFBMem must match, otherwise there will be problems with DRI.
If you are running an application or desktop environment under X that allocates video memory, you might need to increase the
value for mem and MaxXFBMem even when using a depth of 16 if Xv doesn't work correctly.
I use KDE 2.2.2 and it's enough to set it to 8192 if a depth of 16 is set up.
(21/01/02): Just a short warning on the newly released X 4.2: The driver contained in the initial release version possibly matches
the driver available here as of 16/01/02. This means that Xv might not work correctly on LCD screens.
Using my pre-compiled driver for X 4.1.0 might be dangerous (although I heard that it works). I have not installed X 4.2 on my machine yet,
so I can't compile drivers for it. If you want to use 4.2, you will have to compile the driver for yourself, or live without further updates.
It will take a while until I upgrade to 4.2, because my development machine is my production machine at the same time and I don't intend to
run a ".0" release for security reasons.
By the way: Please ignore what XFree.org say in their README.SiS file - the information given there is out-dated and does not apply to the
SiS630 chipset.
UPDATE (22/01/02): I experienced occasional freezes when using Xv and switching to full screen, especially
in xine and ogle. I tried to fix this, but don't have time to test this now. So, this is up to you: The error showed up after changing between
windowed and full screen mode frequently and caused a complete freeze of the machine, with a black or blue screen, or the screen showing one
and the same line all over.
Addendum: (File name extension "_2") Some minor changes in the Xv part.
UPDATE (24/01/02): I hope I don't promise anything wrong now, but I believe that the TurboQueue problem is
solved. In case you didn't ever notice it: If sisfb was not loaded, the previous driver X sometimes froze on a restart if the TurboQueue
as enabled. It doesn't do that with today's version. So it seems save to enable the TurboQueue (ie. remove the Option
"TurboQueue" "false") even if sisfb is not loaded.
Addendum: Minor change to Xv. Still had the freeze I mentioned above...
UPDATE (25/01/02): I did some more experiments (wonder when my LCD panel will finally die...) and think that
I fixed the modes 1600x1200 and 1920x1440. The latter is _not_ available with a depth of 24. They work on my machine - without the
workaround described above. However, for Xv to show correct images, you will have to switch to a mode below 1280x1024. I will investigate
and let you know if the problem is a hardware limit or a driver problem.
UPDATE (27/01/02): Today's version is said to work on SiS301 and 301B bridges as well now. If your machine has
such a bridge (or SiS301B, 302, 303) please test and report in detail. On the 301B, the driver may fail to restore the display when switching
to the text console or when quitting X. This is to be investigated.
Today's version also contains (highly!) experimental support for SiS730, 550, 315, 315H and 315PRO. I could not test this on any machine,
so behavior is quite unpredictible. People with such chipsets please test (eventually with Option "NoAccel" "true") and
report! Also include the output of lspci -vvv.
For the SiS630, the driver contains some minor, mostly cosmetic changes. This doesn't mean you should not test it!
UPDATE (28/01/02): OK, I'm finished with the new sisfb, containing a complete re-write
of the mode switching code ("BIOS emulation") based on a non-functional code fragement from SiS. It works on my machine -
with the same issues as before. This means especially, that the 8bit modes do not work correctly. Otherwise, everything
seems fine.
Parameter format and features are identical to the previous version. The main difference is that the driver no longer uses the BIOS for
timing data, but contains tables for about 30 different LCD panel types. This means that people with machines where the sisfb didn't not
initialize the LCD panel correctly have far better chances now.
So, folks it's testing time again! Please test ALL modes (except the 8bit modes, I know that they don't work - at least on LVDS machines)
and report. This means also machines with other SiS chipsets (300, 540, 730, 550, 650, 315) and other bridges than LVDS
(301, 301B, 301LV, 302LV, CHRONTEL).
Testing is really important this time because if the results are satisfying, I intend to replace the old BIOS emulation of the X driver
with the respective parts of that new sisfb code. The main advantage of this is in the first place that newer SiS chipsets (650, 550) would
be (at least partly) supported by the X driver.
Installation remark: The archive also contains a file named "sisfb.h". This file is normally located in
[kernel-tree]/include/linux/. You will have to copy the new file over the existing one to make the driver compile correctly.
Note the filename: sisfb.h, NOT sis.h
Please report also if the driver works on your machine. If I don't get any response, I never know if there's anybody actually
testing it at all. My work is depending on your results!
UPDATE (30/01/02): New version of sisfb. Please test.
IMPORTANT: Copy the file sisfb.h over the existing one in [kernel-tree]/include/linux - otherwise you will not
be able to compile sisfb correctly.
Addendum: (File name extension "_2") Included mode 1280x960 for people with such LCD panels.
Addendum 2: (File name extension "_4") Some further changes, more logging. I am specially interested in the results of machines
with Clevo/Kapok subsystems.... (BTW: Don't use 1280x960, it doesn't work yet)
UPDATE (01/02/02): A new version of the X driver. Small changes regarding video bride detection (included new
SiS301LV and 302LV, however these are only used on SiS650 as it seems.) People with SiS301 bridges should test this. SiS301 bridges are
contained in some Sony Vaio machines for example.
In sisfb, some minor changes for 301 and 301B et al; more logging is done.
Addendum: Cleaned up the code in sisfb; small changes for 1280x960. However, this mode is still unavailable because the timing data
is missing in the tables. I need a BIOS image of a machine with a 1280x960 LCD panel to complete this.
Addendum 2: Fixed some typos in sisfb. Sorry.
UPDATE (03/02/02): This update contains only new experimental code for machines with 1280x960 LCD displays.
06/02/02: Since the new sisfb code works quite well, I started including the mode switching code into the X driver. This has and
might have the advantages that
- newer SiS chipsets are automatically supported (however, non-accelerated),
- the external VGA can be used with a independent (and therefore higher) refresh rate or switched off,
- dual head/xinerama might be possible (one day). (But don't ask me about when this will happen. This is far in the future as it requires
major changes in the code).
- the code is a lot easier to maintain as I use the same modules in the framebuffer driver as well as the X driver. (Currently, I use symlinks
from the kernel directory to the X driver directory and this works excellently.)
Currently I am facing the following, far more basic problems:
Xv does not work on CRT2. I only get a blue screen. - partly solved (works if CRT1 is connected)
- Modes 1280x960, 1600x1200 and 1920x1440 don't work correctly. The first one initializes as 640x480 interlaced (!), the latter two show up
correctly but the screen "starts over" at line #1024; the area below line #1023 shows a mirror of the screen's top area. After having started X
with 1600x1200 and switching down to 1280x1024, the screen does not scroll.
07/02/02: Despite of the problems that still exist with the driver, I have started implementing the dual head (xinerama) feature.
This was much easier than I had thought - believe it or not: Right now I am sitting in front of my laptop using a xinerama display on
both the LCD and the VGA. Incredible! BUT TRUE!
However, the code is still very buggy and not ready for a release (not even for testing). But it might be soon!
08/02/02: In case you want to play a little with Xinerama (or dual screen mode), I can provide you with a testing version of the
new driver.
Since this version is not stable and has some problems when used in non-Dual-Head-Mode I don't place a link under "Latest versions".
UPDATE (09/02/02): Well, the dual head support seems quite stable now. Have a try!
There are basically two dual head modes: Pure dual-head, which means two indepentent X screens, and "Xinerama". The latter means that the
two screens are virtually one. Please read the docs on www.xfree86.org for more information.
The current driver already contains the sisfb code for mode switching. In case you had trouble with your BIOS (eg. Rune!) please test this
version using Option "VESA" "false".
If you don't use dual head mode, the driver works exactly as before!
UPDATE (10/02/02): Small update regarding memory mapping. This should not have any visual effect, but the driver
now works a bit "cleaner".
I also updated sisfb. It is now using the exact same code as the X driver.
UPDATE (12/02/02): The 2D accelerator now works in dual-head mode.
UPDATE (13/02/02): Xv now partly works in dual-head mode. It is only supported on CRT1 and only in
non-Xinerama (i.e. "normal") dual head mode. Maybe CRT2 will be supported some day (as soon as SiS releases some info), but as regards Xinerama
this is - by design - as far as we can get.
14/02/02: "My" sisfb has made into the kernel! Yet it's just in the
ac-tree but in this case
it's just a question of time until it's in main 2.4! Alan also included the DRM patch, so this one is no more required if you use an ac-kernel.
UPDATE (16+17/02/02): Xv now works completely in dual-head mode. However, for design reasons, it is not supported
in Xinerama mode.
Xv now also works in single-head mode if VESA is not used and no CRT1 is connected. This is interesting for people who could not use the VBE
for mode switching (Rune!).
I also corrected a bug in DPMS handling of dual head mode. DPMS can now be used independingly for both screens.
UPDATE (18/02/02): TV output now works in dual head mode and single head mode when not using VESA. However, the
LCD panel is not completely switched off when using TV output; and TV output is not correctly switched off when quitting X or switching
VT. I will solve this soon.
UPDATE (20/02/02): The 8bpp modes (colordepth 8) now work as far as the hardware allows. This means that
due to palette problems,
- the 8bpp modes are not supported in dual head mode, and
- the 8bpp modes, when used on CRT2, force a very low refresh rate on CRT1.
UPDATE (23/02/02): Finally, the high resolution modes now also work without VESA. This means, that 1280x1024,
1600x1200 and (theoretically) 1920x1440 are available in dual head mode. However, due to memory bandwidth limitations, in dual head mode these
modes are not available at the usually high refresh rates as used if CRT2 is disabled.
On my machine (bus speed 133Mhz), setting a color depth of 16, 1920x1440 is not possible, 1600x1200 only at 65Hz. 1280x1024 works fine at
85Hz, though. Refresh rates may be even lower if the colordepth is 24.
These refresh rate limitations do not apply if you disable CRT2 (using Option "ForceCRT2Type" "NONE").
UPDATE (24/02/02): Major clean-up. I removed lots of old stuff that was not used anymore and implemented
further code for the SiS 315 series. However, I am still looking for folks with a SiS 315H/PRO, 550, 640, 650=6325, 740 for testing.
UPDATE (26/02/02): Thanks to Alexander Malysh, the driver now also works on Clevo machines, which showed
a "shade of blue" all over the LCD panel and had problems with SDL with previous versions. In particular, machines with a Clevo/Kapok
subsystem 2202 were affected.
Further, the driver now features an option to force CRT1 to be switched on (i.e. used) or switched off and therefore skip the auto detection.
This can be used if CRT1 is connected after the machine has booted (which makes auto detection impossible) or when using old monitors
that were not detected correctly. See above for more information.
(Sisfb will be updated within the next days including the same features.)
UPDATE (01/03/02): Fixed some bugs in the TV output routines. The driver "hung" on some machines with Chrontel
7005, this should not happen anymore now. TV should work now (previsouly I seem to have been quite lucky that it worked on my machine...)
Addendum: Small bug fixed. It has come to my knowledge that the driver on some machines still has problems with TV output. This is
being investigated.
PS: sisfb is contained in kernel 2.4.19pre2!
UPDATE (04/03/02): Another update for TV output. On some machines, the TV connector type was not detected
correctly which lead to plain black TV screens.... This *should* be fixed now.
Addendum 1: Small bug fixed that caused MTRR allocation to fail when using DRM.
UPDATE (06/03/02): Merged changes from X driver to sisfb. These both contain the same code again now.
UPDATE (07/03/02): Implemented dummy modules for SiS315 series. I got feedback from people using 315PRO
and 550 chipsets that made it clear that the accelerators of the 315 group are not compatible with the 300 group. Therefore, I extended the
driver structure by adding sis310_accel.c and sis310_video.c modules (which contain dummies at the moment) for future use. This makes it
unneccessary, using the "NoAccel" option on these chipsets.
Furthermore, I found a small bug in the LVDS CRT2 initialization. This was, however, not visible in any way.
UPDATE (10/03/02): Fixed a bug in the FIFO setting which caused slight jitter on LVDS machines using 24bpp modes.
Also fixed 8bpp modes so that these can use higher refresh rates on CRT1 now.
Please test this version intensively as I had to change quite a lot this time (in order to fix the bugs mentioned). I'd be especially
interested if anybody notices any differences to previous versions.
Addendum: Small further fix in X driver; sisfb code synchronized. sisfb now also compiles and works under kernel 2.5 (Thanks
to Bert Hubert).
Addendum 2: LCD panel is now switched off when using TV output.
UPDATE (15/03/02): New version of sisfb. Sisfb now has a few new parameters (well, not really... forcecrt2type
and forcecrt1 may sound familiar...), see above. Sisfb also gives some information on its possible parameters and
options by using modinfo sisfb.
I also made some small clean-up changes in both drivers; you should, however, not notice any difference.
PS: Due to some stress I could not test the new parameters when compiling the driver into the kernel. Could somebody test this please?
Addendum (sisfb _3) Fixed a bug for Clevo 2202 and TV output. Sisfb can not be removed (using rmmod) if started with
mode=none.
When testing the X driver, please use Option "VESA" "false". Thanks.
UPDATE (19/03/02): Reverted a "fix" from the latest version that caused flickering on the LCD on a Mitac machine.
The X driver currently has a small bug with TV output. TV output does not come back when changing to the console and back to X. I will fix
that tomorrow.
UPDATE (20/03/02): Fixed the bug mentioned above. Did some more code clean-ups.
Important: I have some problems with my mail server at the moment. Please re-send all mail since Monday, March 18, and
send new mail to the address stated below.
Could anybody out there compile the X driver for 4.2 (the release version, not any later CVS version) and supply me with the binary?
UPDATE (18/04/02) The 2D accelerators seems to work in some respect. So far, it seems only the blitting has some problems. All other
accelerated actions seem to be performed correctly. Unfortunately, enabling the TurboQueue on a 315 series device causes a machine lock-up.
Please don't do this for now.
I have one definitly positive report for a SIS315PRO. I don't know about the 315E and 315H, but the differences are marginal.
The video hardware accelerators of the 315 series seem compatible to the 300 series. The driver therefore enables Xv on 315 series chipsets
now.
The framebuffer driver experiences some problems on the 550. Some BIOS versions don't seem to set it up for detecting the correct memory size.
I changed the memory detection routines in order to overcome this problem.
UPDATE (19/04/02) Updates for both the (experimental) X driver as well as sisfb.
Hopefully, I have tried to resolve the 315 series accelerator errors of the previous version, and hopefully it now really
accelerates...! (Insider joke - Hi! to Stephane)
Thanks to Erik Tsai, I could fix a memory detection problem for the SiS550 inside sisfb. This problem is not yet solved in the X driver as
the PCI handling seems to work a different way than I believed. Today's sisfb works on SiS550 with CRT1 (VGA); DSTN/FSTN (LCD output) on a
320x240 panel does work (yet). (I don't even know if this resolution is supported by SiS; inside the code, DSTN/FSTN always refers to 320x480
only...)
Removed support for 640 as some nice person from SiS told me that it was DOA - dead on arrival, which means that this device does and will not
ever exist in any products on the market.
UPDATE (20/04/02) Small update for the X driver. I received various contradictory reports on the status of the
2D accelerator code on 315 and 650. Also, it seems the X driver doesn't work on the 650 without using VESA for mode switching. This is starting
to drive me really nuts....
UPDATE (21/04/02) Some minor changes in sisfb for SiS550. Code clean up and some small changes for 315 series
in X driver.
UPDATE (22/04/02) Could anybody please test Xv on a 315 series device? I completed register setup for video in
today's version. If it doesn't work now, SiS changed something in the previously existing register map between 300 and 315...
(23/04/02) I was informed that SiS has protected some of the Video Accelerator register with an additional (secret) lock. Xv therefore
does not work on the 315 series.
UPDATE (24/04/02) Today I found a more or less serious bug in the video part for the 630. Scaling down a
video to less than half its size made it show totally distorted. As if this wasn't enough, I also saw a very serious bug in the memory
allocation; the driver allocated only the half of what it actually used. Seems like a miracle that no one has reported this...!
I also implemented v4l (video4linux) support into the X driver today. Since I don't have an overlay-capable device (such as a BTTV card)
I could not test this. (A webcam does not use this unfortunately.) Finally, the Xv extension now also has a working contrast property, as
well as hue, saturation (the latter two only on the 315 series) and set_defaults properties.
As regards the 315 series, I have implemented something that *might* make video work on these chipsets. I have not got any report on
this yet. It's up to you!
People eventually wondering why the X server sometimes crashes at quitting after having used Xv a lot... I wonder, too. I went through the
code many times today, and I can't find anything capable of causing a signal 11. I double-checked the memory allocation code, and according
to my logs it works correctly. This must a bug in other parts of the XFree code (looks like linear-fb-memory-alloction or something).
As a side effect during testing, I found out that the option ForceCRT1 is somewhat dangerous. Setting it to
"false" made me see the infamous white screen when starting X a few times... So I don't recommend using this option.
UPDATE (25/04/02) I found a fatal typo in the video code for the 315 series. Maybe it (somewhat) works now?
For 300 series: I found also a bug in the code for initializing modes > 1280x1024 with depth 24, which may have caused display errors
(flickering horizontal lines). This makes today's update also interesting for users of a 300 series chipset. It applies to the X driver as well
as sisfb.
UPDATE (26/04/02) The whole video stuff is getting more and more complicated. Today I found out that the 550 on
the one, and the 315 and 650/740 on the other hand are not compatible to each other. The 550 is the only of the 315 series that supports two
video overlays (like the 630/730). The 315 and 650/740 only support one overlay. This required many changes in the video driver and will
perhaps make Xv support in dual head mode impossible on these chips.
UPDATE (28/04/02) Changed some stuff for hardware cursor and Xv, both for the 315 series. It seems if the hardware
cursor problem only occurs on machines with a video bridge (although this bridge is not used). Really strange.
As regards the Xv problem on the 315 series, I am running out of ideas. I really hope my 315 card arrives soon (A big Thank You goes to
Virginia/USA!); debugging will go much faster then. Until then, I depend on your tests. The faster I get reports, the faster I can alter the
code...
For the 630, I got a report on a LCD panel type I have not seen before. This *should* be fixed now, but I have no confirmation yet. This bug
was in the X driver as well as in sisfb. (BTW: I appologize for the compilation error in the previous version. I changed the sisfb.h file,
which resides in the include directory but forgot to include it in the archive.)
UPDATE (29/04/02) Finally! Xv on the 315 series is up and runnin'!
UPDATE (30/04/02) Did some changes inside the Xv part:
In dual head mode, the driver on the 300 series (as well as SiS550) now supports two independent overlays on CRT1 and CRT2.
This means you can play two movies at the same time, one on CRT1, one on CRT2.
This is a little less comfortable on chipsets that only offer one overlay (315, 650, 740). On these machines, you can
select if the overlay should be displayed on CRT1 or CRT2 by the - herewith introduced - option XvOnCRT2.
If this is set to "false" (or left out), the overlay is reserved for CRT1. If it is set to
"true", the overlay will be displayed on CRT2 (see above). The other screen will only show the
colorkey (which is blue by default). There is no way to show the overlay on both screens.
Since I had to do a few changes within the drivers general infrastructure, I'd appreciate if you could tell me if it
still works!
UPDATE (05/05/02) Did some (unsuccessful) changes mainly for 301B and 301LV. Implemented support for
the M650 (which is a 650 that supports two video overlays).
UPDATE (02/05/1) Just two things new in this update: 1) It resolves the "window-move" bug with OpenOffice.org,
which caused black garbage on the screen after moving a window. 2) The 2D accelerator engine now supports transparent BitBlits (on 300 and
315 series).
UPDATE (02/05/12) Fixed font-drawing problem which appeared in Mozilla and some other
applications when large fonts were used (300 series only).
UPDATE (02/05/12-2) First experimental version for Xv on the 6326. I developed this totally blindly, so the code
has not been tested *at all*. Xv needs much video RAM, so set the memory size to the maximum the card allowes (I think this is 8192K).
UPDATE (02/05/12-3) Whoops... lethal typo in previous version. - I'd welcome if the 301 and 301B folks also
could do a little more testing as I changed quite a bit for these.
UPDATE (02/05/13) Next test for Xv on 6326.
UPDATE (02/05/13-3) Next test for Xv on 6326. (Hopefully) fixed the hardware cursor bug for 315
series which I introduced yesterday. On 300 series, the X driver now automatically detects sisfb and the memory setting that
was given to sisfb when starting it. This makes using MaxXFBMem unnecessary but it only works, if sisfb
has been started with a valid mode, not "none". Today's version of sisfb is required for this auto detection.
UPDATE (02/05/13-4) Double-checked the Xv code for 6326, can't find anything wrong there. Maybe the datasheet is
not correct in some details.... However, I changed some small details, so please test.
UPDATE (02/05/15) 300 series: Fixed a bug in sisfb and th X driver which caused CRT1 to have low refresh
rate (in some modes even interlaced) on laptops with non-expanding LCD panels (eg. Gericom Overdose 3, Clevo 2202C). This bug also made dual head
mode behave strangly. 6326: I (and some helpers from Italy and Norway) am/are still working on the Xv part, no success so far.
All: Tried to fix the ForceCRT1 option - it works again here now.
(23/05/02) Just to keep you informed: I am currently busy with LVDS and Chrontel support for the 650. The LVDS output
already works well, but since the SiS 650 only comes with a (brand new) Chrontel 7019, TV output does not work yet. Beginning
in June, some manufacturers will ship machines with LVDS and a 1400x1050 panels. If you intend to buy such a machine, I'd be
grateful for help in testing and reporting. | The Xv support for 6326 will very probably be cancelled since not even an XFree
developer could fix the current problems after two days of fiddling. It seems that the chip is somewhat disfunctional.
At the moment, I cannot release a new version because my code currently contains too much debug stuff. Please be patient.
(02/05/31) Allright, folks. A new public version is around the corner. There are many improvements, amongst them 301B support for the
630 and LVDS/Chrontel 7019 support for the 650. Maybe 301B/301LV on 650 will work too, but I have no reports from my testers yet. I have
completely analyzed five different BIOS versions for 630 and 650, but these are so different that the driver will need intensive testing
on various machines. Please check again later.
UPDATE (02/06/07) OK, I decided to release a testing version now because many people with laptops
featuring a 650 are writing to me begging for a new driver. Please note: This version is not stable yet. It will require further
testing - among others, by you! The changes are quite many this time:
300 series: Corrected a bug which causes the Xv video overlay to show garbage if the video was scaled below the half
of its original size. Corrected a bug which causes the video image being stretched on machines with LCD panel, 630 and 301 bridge.
Support for 630+301B should work somewhat; this is not finished yet.
315 series: Implemented LVDS and Chrontel 7019 support (there are still problems with TV, such as when quitting X or
switching to a console). For LVDS machines, there are two new LCD modes - 1400x1050 and 1280x768 - available, which only work
if VESA is set to "false". Implemented 301LV/302LV support, but this is not finished yet. Fixed a lot of
bugs in Xv support when using a LCD panel.
UPDATE (02/06/09) 300 series: I am very sorry for the Chrontel 7005 bug. This is fixed now. Although
the driver now works on the 630 with 301B, it now has problems on some LVDS machines.... I will fix this next. If your machine has
problems with the current driver, please download the "savebios" program, execute it in DOS mode and send me the file it produces (vidbios.bin).
I will choose the most recent BIOS for disassemling then. 315 series: Fixed the video-"compression" bug which appeared when displaying
a video in a mode lower than the LCD panels resolution.
UPDATE (02/06/10) Yesterday's version had problems on some LVDS machines. This should be fixed now. From
today on, the default for VESA is reversed, ie the driver will only use VESA if the option is set to "true".
Addendum_1: That strange TV problem appeared again... now it works.
UPDATE (02/06/12) Hopefully fixed the LVDS bugs for all machines now. Added support for "630ST" chipset
on which the driver previously could not communicate with the Chrontel 7005.
UPDATE (02/06/18) 300 series: Fixed a bug in Xv; since I got only one report on this, not
many people seem to have noticed. Although the driver works on most 630+301B machines, it still has problems on some
of this kind. I am investigating this. Furthermore, the driver currently does not work correctly on the Mitac 7521T.
315 series: Finally the driver works on 650+301LV machines with 1024x768 LCD panels; if your machine has a 1280x1024 panel,
please send me your BIOS. Implemented TV auto-sensing for the Chrontel 7019, but this is yet untested.
Addendum -2: 315 series: 1280x960 now works on CRT1. Fixed a bug for 650+LVDS, where CRT1 had too low refresh rate.
Addendum -3: 300 series: Fixed a bug which prevented CRT1 to be restored to text mode after switching to a VT or exiting X.
Modes 1280x960 and 1152x768 implemented, these work on CRT1. As for 1280x960 LCD panels, I need somebody to test this. These modes are not
ideal for using them on CRT1 as they only provide 60Hz. Many of the odd modes (such as 1152x768, 1280x720 etc) are not meant for normal usage
but for LCD panels, projectors or secondary VGAs. Updated the mode tables above.
UPDATE (02/06/20) Implemented some more modes and updated the mode tables. Some
other small fixes.
UPDATE (02/06/25) 300 series: Implemented the Option
"PanelDelayCompensation"; implemented support for 1024x600 and 1152x768 LCD panels. 315 series:
Fixed a bug which caused problems with modes that require the bridge to operate in SlaveMode (such as 512x384).
UPDATE (02/06/27) Finally had the time to port the X driver changes to sisfb. Awaiting test reports!
Some small changes in the X driver, too. (The ECS A901 still has some problems, though. These machines use at least two LCD
panel makes/types which I don't know how to distinguish yet.)
Addendum -2: Changed sisfb's default memory heap starting point, please see the new description for the mem parameter. Added new
version identification to sisfb. I encourage all people using sisfb to update!
UPDATE (02/06/28) Fixed a compile error in sisfb. Sisfb should now compile and work in kernel 2.5.24 -
but I have not tested this.
UPDATE (02/06/29) 315 series: Fixed 1400x1050 and 1280x768 modes for CRT1. These are available at 60Hz
only (like in Windows). Hopefully fixed the FIFO bug for 650/LVDS at 1400x1050; I have no report on this yet. Tried to fix Xv at 512x384,
but the hardware engine behaves really strangely in this mode. It works, but the image is shifted 16 pixels to the left. I am working on this.
All: Fixed a long standing bug in connection with the XVidModExtension: After watching a movie or playing a game in full-screen mode,
the driver restored a wrong refresh rate for CRT1. By the way: Interlace does not seem to be very popular anymore - or is there any other reason
for why nobody ever noticed that the interlace modes (1024 and 1280) did not work since about January?!
UPDATE (02/07/01) 315 series: The FIFO bug mentioned above is actually fixed. Tried to fix the 8bpp modes
for 650/LVDS, but have no report on this yet. All: Fixed my own paranoia check for LCD dimensions in dual head mode. Re-wrote the pixel
clock calculation, the X driver should accept higher refreshrates for CRT1 in dual head mode now. Imakefile patch for Xfree 4.2 fixed. - All
relevant changes went into sisfb, too. Removed my Makefile from the sisfb archive as this is included in the kernel source anyway. Fixed
another compile bug for kernel 2.5.24. However, sisfb does not work with kernel 2.5.24 yet. I don't know what the kernel folks did, but there
is something seriously wrong. I will not fix this until the 2.5 series are somewhat stable to a minimum degree. (No such problems on 2.4 series
kernels!)
UPDATE (02/07/03) 300 series: Hopefully fixed the 8bpp Modes for 630+301B. Fixed a bug in sisfb
which made it impossible to return to 1024x768 after using fbset once. Fixed some VESA problems inside the X driver.
UPDATE (02/07/04) 300 series: 8bpp modes on 630+301B finally fixed. Small changes
for the ECS A901 (yet untested); found a severe BIOS bug in the sync function for CRT2 - fixed this in my driver. For some reason the
TV output in the 301B (in connection with a 630) is only b/w - I am working on this. Tried to fix LCD support for the 301 (yet untested).
All: Fixed a bug which showed up on videobridge-less systems. Addendum -2: Whoops... sig 11 - fixed.
(02/07/11) It's vacation time now. I will be back on Aug 1. Please don't send me email about the drivers until then.
Currently, there are the following problems on my TODO list:
- Textmode on 630+301B is shifted left by 4 chars (David H.)
- TV color on 630+301B is missing (Hans S.)
- Image on 1024x600 panels shifted down (Flynn M.)
- LCD on 301 does not work anymore (John B.)
- Textmode on 650+301LV sometimes not restored correctly (Anthony)
UPDATE (02/08/06) Had to perform some structural changes within the X driver to make it comply with XFree 4.3
design guidelines. This will require some testing. The good thing is that the driver now should work with two SiS cards in one box, or one SiS
card and one of another brand; this only applies to the current CVS version of XFree86. 300 series: 1024x600 fixed. All: Please
test this version intensively as it will be submitted to Xfree.org soon (I hope I can fix the remaining problems within this time frame).
Sisfb needs some adaption for the new structure, so please be patient.
UPDATE (02/08/13) Well, the major changes I mentioned the last time seem to work. 300 series: Fixed a
problem with switching back to the console if in TV mode (Chrontel). Some people using machines with Chrontel 7005 TV encoders reported a
problem with the PAL/NTSC detection. I tried to fix this; however, my code was identical to the BIOS's one's, so there may be (another...) BIOS
bug involved. As regards the TV-color-problem on 630+301B machines, I am unable to track this down
as TV does not even work using the BIOS (ie. the option VESA) and I therefore can't compare the registers. If there is anybody out
there with such a machine (SiS630+SiS301B) please test TV using the option VESA set to true and see if
it works - if so, please drop me a note. All remaining problems (except that 1024x600 issue) are presumably still there
because my testers did not respond since my return.
Because of that PAL/NTSC problem and because I found out that some BIOSes miss the TV overscan setting, I implemented the
TVStandard and TVOverscan options. Also implemented the UseROMData option. Please
see the section on new options for more information.
UPDATE (02/08/30+31) Today's update of the X driver contains the following changes:
300 series:
- Included Xv support for the SiS300
- Fix for SiS300 and CRT1 FIFO (causing a flickering, especially at the edge of windows)
- Fix for SiS300 and its memory clock (was detected incorrectly)
- 301: Fixed LCD support (had stopped working a while ago)
- 301B: Text mode restoring seems fixed (no definitive reports yet)
- LVDS: Implemented non-scaling support for 1024x600 panels
- Implemented Xv support for RGB 555 and 565 color space (RV15, RV16 format) (untested)
315 series
- Support for new video bridge (which I call "LVX" because SiS did not tell me a product name yet)
- 301B/30xLV/30xLVX: Basic support for 1400x1050 and 1600x1200 LCD panels (panel timing data yet missing, because there are no products
on the market yet with such panel resolutions)
- 301/301B/30xLV/30xLVX: TV auto-sensing on (TV can be plugged in right before X is started, thus does not have to be connected at boot
time)
- 315+301: TV works again (had stopped doing so around May)
- Implemented Xv support for RGB 555 and 565 color space (RV15, RV16) (untested)
Old series (6326):
- Re-included fixed Xv support. Due to hardware bugs in some chip revisions, this does not work on all cards. Unfortunately, I have no idea
how to distinguish between those which are ok and those which are faulty.
All:
- Driver is re-entrant, thus using two or more (SiS) cards should work (with XFree current CVS or upcoming 4.3)
Today's sisfb contains all the relevant changes and fixes of the X driver, plus
- real hardware 2D acceleration and y-panning for scrolling (see corresponding new options)
Currently known problems:
- TV on 630/301B is only black & white (status unknown for other chipsets with 301B/301LV)
- Text mode restoring on 650/301LV stills seems to cause problems, ie screen is shifted up (different reports)
Please note that as of today, sisfb needs a new Makefile in order to include the acceleration code module. The Makefile is
contained in the archive. ADDENDUM-2: Compilation problems fixed. ADDENDUM-3: Fixed two important typos. Added VESA option (see
options section)
UPDATE (02/09/02) Important update for sisfb. Fixed a bug which might have sisfb caused to write
to illegal port registers. Please update!
UPDATE (02/09/03) Now I finally had the time to take a closer look at the DRI driver (sis_dri.so)
which causes DRI to freeze on many machines. Interesting, I found that this module actually reads data from a sis_drv.o-private
structure which has been changed quite a long time ago. Thus, the DRI module read wrong data which is very probably the reason for
immediate machine freezes. From now on, I will also supply binaries for sis_dri.so which are needed if you use the binary
sis_drv.o. If you compile the driver for yourself, please see my updated installation instructions below. I hope I have
resolved at least one reason for DRI malfunction by this. Addendum: Some small fixes in the X driver.
UPDATE (02/09/04) Fixed a bug in the driver's 2D accelerator for the 300 series. It seems that
there is a hardware bug in connection with color expanding. Previously, this bug might have caused a machine hang after
heavy 3D activity. I implemented a work-around.
UPDATE (02/09/05) Found and fixed a bug in the DGA extension part of the X driver. Addendum-2:
Improved refresh rate selection if CRT2 is secondary VGA; re-wrote the CRT1 detection stuff.
UPDATE (02/09/11) Found and fixed a bug in sisfb's 2D acceleration. The clear-function did not
work correctly if the foregound color was anything else but black. Submitted the code to James Simmons for inclusion in kernel
2.5
UPDATE (02/09/12) Today's update of the X driver contains the following changes and fixes:
- Implemented completely BIOS-independent DDC2B reading code. If the monitor section does not specify any HSync or VRefresh
values, the DDC values are used. This works for CRT1 in any way (unless it's not detected or forced off), for CRT2 only if it
is secondary VGA.
- HWCursor on 315 series with 30xLV(X) bridge and LCD is fixed. The cursor image was offset 4 pixels to the left.
- Further structural changes for XFree 4.3
- Monitor detection on 650 fixed; also the option
ForceCRT1 works there now again.
- Implemented DPMS (Display Power Management) for LCD panels on 315 series (no matter whether LVDS or SiS bridge)
UPDATE (02/09/15) New version of sisfb. This one contains only small changes for the 2.4 series
kernel, but I tried to port the driver to the 2.5 fbdev API. However, it compiles - but I can't test this because there is
no XFS patch for 2.5.34 yet (and all my filesystems are XFS). There are some substantial changes in the API (and I really hope
the fbdev developers stop changing it with every kernel version), so there is plenty to go wrong...
UPDATE (02/09/16) Another new version of sisfb, mainly for 2.5.34 and later. Still untested, but
I cleaned up some stuff. Compiles as a module as well as in the kernel. Important: Please read the README inside the
archive for installation instructions regarding kernels 2.5.34 and later. (Addendum-1: Fixed rops for accel)
The X driver contains the following changes:
- Experimental Xv support for the SiS530/620 - totally untested (not operational yet; testers welcome)
- Experimental "lines" and "dashed lines" acceleration for SiS530/620 - totally untested (but seems to work)
- Fixes for "Dashed Lines" (2D accelerator) on 300 and 315 series
- (Hacked) fix for sometimes incorrectly detected bus width on SiS630 and 730
UPDATE (02/09/19) Many code clean-ups in the X driver. - Hope to have fixed the problems that
occured if a SiS card was secondary display adapter. This required quite a lot of changes, so test the driver intensively, please.
- Still no information on if Xv for 530/620 works. - Sisfb does not yet run under 2.5.34 and later.
UPDATE (02/09/20) X driver: Further code clean-ups. Implemented a "black-list" for machines known
to require the PanelDelayCompensation option (Mitac, Asus). - Implemented more informal detection of SiS6326
chipset type (required for further investigation regarding Xv). - Isn't anybody willing to provide me with 4.2 binaries?
UPDATE (02/09/23) Thanks so much for the 4.2 binaries ((I got them from five people today!). -
I player around with Xv for the 530/620/6326 and changed a lot there. Needs to be tested. - Removed the Asus A1xxx machines
from the black-list again, the PCI IDs are not unique enough. The only machine left on the list is the Mitac. Supplemental-2:
Hopefully fixed the signal 4 error on XFree 4.2
UPDATE (02/09/29) This update is mainly (but not only) for SiS6326, 530 and 620 users. The X driver now features
(somewhat fixed) Xv support for the 6326, and - for the first time - for the 530 and 620. Furthermore, the 530/620 2D acceleration code has been
removed; the 530/620 is almost register-compatible with the 300 series, so I adapted the 300 series acceleration code for the 530/620. This
implies that the 530/620 now has all the 2D accelerator functions like the 300 series. For all other chipsets, various minor changes were made.
The video4linux code inside the Xv part had a severe bug which is fixed now. The driver now supports color expansion on the 315 series which
should speed-up displaying of text. Due to the removal of the 530 code, there is a new Imakefile contained in the source archive.
UPDATE (02/10/11) Today's update of the X driver contains the following changes:
- Gamma correction on CRT1 for all supported chipsets
- (Limited) Xv support for the 5597/5598. The maximum video source size is 384x288; YUY2 produces sometimes incorrect colors;
zooming the video may exceed the chip's specs and thereby produces flickering in video window.
- Extended Xv support for 6326 and 530/620. YUY2, however, still sometimes displays incorrect colors.
- New acceleration routines for 5597/5598 and 6326, supporting CPU-to-Screen Color Expand which should speed up displaying of
text. Implemented
NoHostBus option for these chipsets (see above).
- Fixed and accelerated high resolution/refresh rate modes on 5597/5598, 6326 and 530/620.
- Fixed 15bpp modes on 5597/5598, 6326 and 530/620.
- Fixed two or three minor bugs
UPDATE (02/10/15) Today's update of the X driver contains the following changes:
- 530/620: Fixed 24bpp modes. Stupid typo...
- 300 series: Fixed mode switching on SiS650+LVDS (w/o Chrontel 7019) machines (Asus M2400E etc.)
- 300/315 series: Fixed a bug within the
ForceCRT1 option
UPDATE (02/10/18) Whoops, I accidently broke 8bbp mode on some machines in the previous version.
Fixed now.
UPDATE (02/10/18-2) I did the following changes to the X driver today:
- 300/315 series: From now on, the driver deletes the (previously ignored) Modelines and XFree's default modes and installs
its own list of all supported modes for the respective chipset/bridge combination. This means that it is not
necessary to set any modeline. This feature can be disabled using the option
NoInternalModes, see
above.
- 300 series: Added the 16:9 modes 800x480, 1024x576 and 1280x720 upon public request. This was possible because these modes
were supported by the 315 series and I therefore had the timing data.
UPDATE (02/10/21) Small update for sisfb: Removed console output during mode switch; fixed a
long-standing bug in the var information generation. (-2: Whoops, forgot a file. -3: Removed logging of color regs)
As for the X driver, I fixed a small bug in the DPMS code for LCD panels, as well as implemented SaveScreen functions for
315 series machines with LCD panels. Included timing data for 1400x1050 and 1280x1024 for the SiS30x bridges, but I don't know
if this data is correct.
UPDATE (02/10/22) Hurray, trouble-maker ECS brought a new machine on the market, the A907. No -
not what you expect, it's no P4 - it's a Transmeta Crusoe (for a change) with a SiS300 (!) and a SiS301LV(X) (!) video bridge.
Tried to support this combination in the new version of the X driver, but since the BIOS of this machine is only an unfinished
piece of code, I can't even imagine if that works or not. As far as I saw in the BIOS, this machine only supports 1024x768 at the
moment, other modes will possibly result in garbage on the LCD. The important thing, however, is: All users of a 630 with 301B
(such as ECS A900 and A901) should test this version to see if I broke anything for them. Update: Just received confirmation
that the X driver works on the A907, which BTW is still under development and not available for purchase yet.
UPDATE (02/10/24) Found and fixed the bug that kept TV on 630+301B from showing color. It had to do
with (not) using BIOS OEM data. Thus, I implemented the BIOS reading stuff into sisfb, and added the option UseOEMData
to the X driver as well as userom and useoem to sisfb. Please see above for more information on these options. Update: Updated sisfb again, hopefully the TV color problem now really
is fixed.
UPDATE (02/10/24-2) I played around a little with TV output and implemented the following features:
- Chrontel: Changed name of TVOverscan option to
CHTVOverscan
- Chrontel 70xx: New options for tuning the output quality
- Chrontel 7005/PAL: Option
CHTVSuperOverscan (yes, the black bar is gone for good... but not without leaving some
disadvantages)
- Chrontel 7005: Options
TVXPosOffset and TVYPosOffset which allow changing the position of
the screen on the TV set
- SiS 30x/B/LV: Options
SISTVEdgeEnhance (301 only), SISTVAntiFlicker and
SISTVSaturation for output quality enhancement
Please see above for more information on these options.
UPDATE (02/10/25) Implemented experimental TV support for the 6326. I have no idea if that works,
so I need testers. The 6326 supports TV only in the following modes:
- NTSC: Dotclock 27.000 Mhz, 640x400 and 640x480
- PAL: Dotclock 36.000 Mhz, 640x480 and 800x600
You will have to set up correct modelines in your XF86Config-4 in order to use TV. Please search the net for matching modelines.
If the modeline is not correct, the driver will disable TV output (and log that the mode is not suitable for TV). So far,
the driver does not allow overruling the card's PAL/NTSC setting.
Update: Found a fatal bug in the TV code for the 6326. This can't have worked. Fixed - but still no report.
UPDATE (02/10/26) Another update, mainly for TV on the 6326. The TVStandard option
now allows choosing PAL or NTSC even on the 6326. Furtherly, I now implemented 4 internal display modes into the X driver, saving you
from desperately searching for Modelines. These are
- for PAL: PAL800x600 and PAL640x480
- for NTSC: NTSC640x480 and NTSC640x400
Just place these in the Screen section of your XF86Config-4, for example as follows:
Section "Screen"
...
SubSection "Display"
Modes "1024x768" "800x600" "PAL800x600"
...
However, TV output is still completely untested, I have not a single report on this.
UPDATE (02/10/27) 300 series: Revisited the panel delay compensation detection and changed it in a
way which should solve the current problems some people experience; this new version of the X driver - if used either without sisfb
or the new sisfb version of today - will very probably not require the PanelDelayCompensation option any longer
(although this option does no harm). The new version of sisfb, which is needed for the new detection method in the X driver, itself also
contains this new detection code. Thus, sisfb will very probably not require the pdc parameter neither. In other words: Please update both
the X driver as well as sisfb. 6326/TV: Whoops, found two logical errors of mine. Fixed these, but have no reports on the new
version yet.
UPDATE (02/10/28) 300 series: Furtherly enhanced the panel delay compensation detection,
again requiring an update of both the X driver as well as sisfb. 6326/TV: Works now, although I was told that the image
is not really centered. However, the timing the X driver uses is derived from BIOS data. I don't think playing with Modelines
will improve the situation as the TV registers come from tables and are not calculated. Addendum: Hopefully fixed a
small bug with DPMS on 630 based machines with LCD panel.
UPDATE (02/10/30) 300/315 series: Found a long-standing bug in the dual head handling,
keeping the driver from using higher refresh rates on CRT1. While I was at it, I refined the refresh rate calculation and
removed some unneccessary safety restrictions from the mode filtering routines for CRT1. As a result, I can now use 1024x768/24 on
CRT2 and up to 1920x1440/16 on CRT1 on my 133Mhz memory clock machine in dual head mode. People with a 650 laptop should test
this, especially those with a 1400x1050 panel.
UPDATE (02/10/31) Oh, I forgot to mention that yesterday's version also features three options for TV output on
the SiS6326.
UPDATE (02/10/31) 300/315 series: For chipsets with two video overlays (300, 630, 730,
550, 651, M650), the driver now supports Xv in Xinerama mode. Fixed the SISTVSaturation option, it works now.
Old series: Implemented the option NoYV12, since the hardware has problems with this Xv mode if the
video is larger than 384x288.
UPDATE (02/11/04) 300/315 series: Added 1152x864-75 mode for CRT1. All: Removed
the (unused) SetMClk and PciRetry options. Still awaiting my SiS6326 testing sample to
continue work on TV output...
UPDATE (02/11/05) Got my SiS6326 sample (thanks to Egbert/XFree.org) and could fix TV output code. It works now
in both PAL and NTSC, the image is - more or less - centered and of correct size. I will try to find out how to scale the screen, but I
saw in Windoze that the "underscan" modes (which scale the screen to - more or less - fit the TV) cause missing lines on both TV and the
VGA, which makes text nearly unreadable. Thinking again, I don't think that's worth fiddling.
I got two a little annoying reports: First, TV output on Mitachi/Easy One Silver/Mitac 7521P (630/LVDS/Chrontel 7005) is said to fail -
TV goes black, no output. Second, CRT1 output on a 650+301LV machine is said to fail - VGA goes black or into stand-by mode. Can anyone
confirm these two issues?
UPDATE (02/11/06) 6326/TV: Added three new modes, "PAL800x600U" (800x600 underscan),
"PAL720x540" and "NTSC640x480U" (640x480 underscan); see Chapter 5 on the main page. Further, the
TVXPosOffset and TVYPosOffset options now (partly) also support the 6326. The y
offset is a kind of problematic, I will test and eventually fix this tonight. I remember from my testing yesterday that one of
the TV modes had a "misplaced" hardware cursor. I will fix this tonight as well. 300 series: The problem reported with
Mitachi/Easy Silver One machines and TV via the Chrontel 7005 is hopefully fixed.
UPDATE (02/11/06-2) 6326/TV: Fixed all TV modes, the TV?PosOffset options and the
hardware cursor issues in the underscan TV modes. Everything works now. This is as far as we get, folks. Also fixed the console-restore-bug
introduced yesterday, showing on non-TV SiS6326 cards. 6326, 5597/5598: Removed the color expansion accleration code, this was
slower than the CPU and caused some strange drawing errors sometimes.
UPDATE (02/11/10) 6326: Found out that the hardware seems to require special mode and clock timings for
modes with high clock rates than approx. 120Mhz. The XFree86 standard modelines for 1280x1024 and 1600x1200 don't work properly, they
produce a 60Hz image which flickers heavily. To work around this, I implemented two built-in high resolution display modes named
SIS1280x1024-75 and SIS1600x1200-60 which correct these problem.
All: Found and fixed a bug in Xv which - among other effects - caused Xine to assume illegal brightness values, and to exit
with a BadValue error upon start.
315 series: Added support for newer laptops with 650+301LV such as the Gericom Webshox Per4mance. In prior driver versions,
CRT1 was not initialized correctly on such machines.
sisfb: Included all applicable fixes named above. Kernel 2.5 support will have to wait a few weeks, it seems the fb API is still
under development.
UPDATE (02/11/22) Been busy with audio the past few weeks. Implemented S/PDIF (digital audio
output) for the SiS7018. My patch will be in the next ALSA release. Nice to see my laptop playing DTS over the digital receiver...
As regards the VGA stuff, here are only some small bugfixes in X driver and sisfb. Addendum: I think I found a bug in the
v4l Surface functions of the X driver.
UPDATE (02/11/25) Fix for machines with 301LV(X) bridge and 1400x1050 LCD panel.
UPDATE (02/11/26) Small fix for the X driver; TV settings given by options were not applied
correctly in dual head mode. [IRONY ON] I see you people do a lot of testing, thanks [IRONY OFF]
UPDATE (02/11/27) Fixed hardware cursor bug on SiS650; cursor did not disappear on console
changes and quitting X. sisfb: Currently tracking down the scrolling problem on the 315 series. No fix yet.
UPDATE (02/12/10) 300 series: Fixed X driver for output on secondary VGA. 315 series:
Still fiddling with TV output on the LV bridges. PAL works, but is black & white only. NTSC status unknown. Implemented
PALM and PALM parameters for TVStandard option for SiS30xB/LV. Added
new parameters for ForceCRT2Type, please see the options chapter on the main page.All:
Code cleanup. Note: The previous version (02/11/27) is in current XFree CVS. Please test this version intensively since it is
going into XFree 4.3 if it works. sisfb: FBDev API is still under development, thus no updates for the 2.5 kernels. I still
haven't found that bug with acceleration on the 315 series and therefore recommend using the driver with Y panning disabled.
UPDATE (02/12/14) Added preliminary (and untested) support for the Xabre series. I have no idea if and in
how far the Xabre series are compatible to the 315 series as regards Xv and 2D acceleration. At least mode switching should work.
UPDATE (02/12/23) X driver: Fixed a bug which caused the TV image on some machines with
a Chrontel 7005 to display incorrect colors. Improved Xabre support which is still untested, though. Some small changes for
300/315 series. Please test this version, it is soft of a "release candidate" for XFree 4.3. sisfb: Will take a while.
The code is a real mess currently because of 2.5 transition. Merry christmas!
UPDATE (02/12/29) Finally updated my box to XFree86 4.2.1 using Debian's 4.2.1-4 packages. Now I can
compile the driver for 4.2.1 myself; for a short period I will continue providing a binary for 4.1. As soon as 4.3 is out, I
will cease support for 4.1. As regards 4.2.1, I found that DRI is not working anymore. I don't know why; the relevant source is
nearly identical to 4.1 apart from the Makefile. For people using Debian, I recommend using the 4.1 version of the xlibsmesa3
package (from stable). This solved the problem for me. Don't forget to install my binary of sis_dri.so (the one for 4.1!) after
downgrading the xlibsmesa3 package! Now for the changes of today's version: Fixed support for LCDA (LCD Channel-A; used on
newer 651/M650 boxes); TV output on the 301LV is finally in color, even when using PAL. Fixed a small bug in Xv which only
showed up when running 640x400 on LCD.
UPDATE (03/01/02) Some small changes; fixed a bug which might have cause the Fn key on laptops
to fail to do as supposed; some changes for XFree 4.3. Improved BIOS reading routine it idenfity BIOS images which belong
to other cards in the system. Addendum -2: Fixed color component order in RGB Xv overlay code for all chipsets. Note:
By mistake, I compiled the binary which is supposed for 4.2.1 with the 4.1 source code. Check your log, if it says "4.1.0.1" somewhere
please update. This also resolved my problems with DRI and 4.2.1. This works now, too.
UPDATE (03/01/06) More or less cosmetic fixes to the X driver. As usual, I encourage all of you to test
this version because of the soon upcoming XFree 4.3 release. Addendum: (-2) Found two mysterious bugs when using dual head on my
SiS630+LVDS based machine: First, for some reason, the mouse cursor was visible as some bitmap pattern after restoring to text mode, and
secondly, the LCD went white (!) sometimes on VT changes... This is really strange because all this has seemed to work for months now...
Anyway, I hope I fixed this now. (Both bugs should only have appeared on machines with SiS630 and LVDS.)
UPDATE (03/01/09) News only for the 300/315 series: Bugfixes: Interlace modes did not work anymore; fixed.
The driver permitted interlace modes if the LCD is to be used; fixed. New features: Implemented modes 848x480 and 856x480, mainly for
16:9 plasma displays. These modes come in two flavors: 60Hz and 76Hz/interlaced. The latter are for external TV converters; the interlace
modes should not be used on plasma screens. If the HSync range of the monitor is higher than 31, the non-interlace modes will be used.
852x480 panels can AFAIK be used with both modes. 852 itself is not possible because the hardware does not allow a pixel width which is not
a multiple of 8. - Added 1152x864-84Hz and 1400x1050-75Hz (the latter only in 315 series) to the internal mode list.
UPDATE (03/01/10) 300/315/330 series: Added 1360x768-60Hz for 16:9 plasma displays.
UPDATE (03/01/12) 300/315/330 series: Implemented the possibility to use Modelines for CRT1 output. I updated
the information on display modes and monitor configuration on this page accordingly.
UPDATE (03/01/13) 300/315/330 series: Found and fixed a bug in the Modeline handling implemented yesterday.
Added 1280x960-85 to the list of built-in modes.
UPDATE (03/01/18) 300/315/330 series: 1) Implemented color HW cursor support for XFree 4.3. The 300 series
do not support alpha blending in cursor images, so I implemented some sort of emulation for this: Image data up to a certain level
of transparency is used for "ghosting", data below this level is shown as solid. The default RedGlass theme looks not as it should, but
this feature enables you - the user - to create themes that look better. The 315/330 series support alpha
blending, so there should be no problem. I could only test this on a 315PRO with CRT1 (VGA). It's up to you to tell me if it works on the 650/740/330 as
well and if it works on LCD and TV. There are some new options for color cursors, see the options chapter. 2) Added SCART and
480i HDTV support for machines with a Chrontel 7019 (untested!). 3) Added support for "PALM" and "PALN" TV modes for machines with a Chrontel 7019
(untested!!!). 4) Found out that the 650/740 can use video overlays up to 1920x1080 in size. Updated the corresponding data in the driver.
5) Fixed 848x480 modes for Philips and Panasonic plasma panels.
UPDATE (03/01/19) Hopefully fixed the problems of the cursor code introduced in yesterday's version.
UPDATE (03/01/20) The cursor problems introduced in the version of Jan 18 are fixed. However, I am
still waiting for any test results regarding the color cursors for the 650/740 (on CRT2 mainly; my 315PRO has no problems on CRT1
but on the 630, CRT1 and CRT2 have different cursor engines. If this is the case on the 650, too, I will have to fix it.) Today's
update contains some fixes for the SiS730 which turned out to be
not entirely identical to the 630. Folks, please test, test, test - at end of this week I have to commit the code to
Xfree.org for inclusion in 4.3. Speaking of 4.3: It will ship without a DRI driver for SiS chipsets. But: On my machine,
the DRI driver for 4.2.1 still works with 4.2.99.3, so there is hope. Otherwise, 4.2.99.3 behaves quite strangly sometimes;
I can't switch to a VT and changing the mode using CTRL-ALT-+/- doesn't work either. I hope this is due to the quick &
dirty way of installation I performed (by overwriting the 4.2.1 installation with some of the 4.2.99.3 files). We'll
see... Addendum (-2): Found (and hopefully fixed) an important bug affecting Dual Head mode and the handling of Modelines.
UPDATE (03/01/21) Found (and fixed) another bug in the Modeline handling which was triggered on
CRT1-only systems (ie without video bridge or video bridge turned off). - Added another revision of the 650 to the list of
revisions supporting two video overlays. - Since a lot of people make this mistake: The binary for 4.2.99 will NOT work with
4.2. For 4.2 or 4.2.1, you need the 4.2.1 binary! Addendum -2: Fixed a small cursor offset on 650+LVDS machines on CRT2
I still need definitive test results for the color HW cursors on 4.2.99 for SiS650 and CRT2 (no matter what bridge and wether LCD
or TV).
UPDATE (03/01/27) SiS730: Tagged the modes 1024x768x24 at 70
and 75Hz as invalid if both CRT1 and CRT2 are being used; this due to hardware problems with these modes. (BTW: The
Windows driver does not support this either). 300 series: Fixed memory bandwidth detection for SiS300. 300
and 315 series: Added RestoreBySetMode option, see the options chapter.
UPDATE (03/01/27) Fixed a bug in connection with the RestoreBySetMode
option (did not reset CRT1 correctly). Fixed a bug in Modeline handling. Corrected some of the built-in 640x480 modes
(60, 72, 100, 120Hz) to comply with VESA standard.
UPDATE (03/01/30) SiS315 series: Fixed the Xv properties Hue and Saturation. These did not
what they were supposed to... Note: If Xine crashes on start or on changing Xv properties, just delete ~/.xine/config.
UPDATE (03/02/05) 315/330 series: Fixed DVI output, at least for 1024x768 panels. 1280x1024 yet to
be tested. Fixed HW cursor bug on CRT2; the cursor just vanished sometimes. Fixed dual-head problem on 1400x1050 panels; if both CRT1 and
CRT2 were to use this resolution, CRT2 mistakingly assumed a too low pixel clock resulting in usage of 1280x1024. Fixed text mode
restoration on 301B/301LV; did not show on all machines. Implemented CRT2 DDC detection, mainly for machines with DVI connectors. The
attached device should correctly be identified if connected after booting; analog devices such as normal CRTs are being addressed by
the Option "ForceCRT2Type" with the parameters (secondary) VGA or DVI-A,
digital devices with LCD or DVI-D. The detection of analog devices is yet to be tested. In this
context, I implemented the NoCRT2Detection option; see options chapter.
UPDATE (03/02/06) 315/330 series: According to one report, DVI also works on 1280x1024 panels now.
Some more or less cosmetic changes otherwise; OEM data is read correctly now (might have been a problem on Acer Travelmate 270);
corrected an eventual "unresolved symbol" error; etc.
Attention users of Xine 0.9.18: There is bug in this version of Xine which might cause the video image to be
black & white or with wrong colors. I have already notified the Xine folks about this, they confirmed the bug.
UPDATE (03/02/11) 315/Xabre series: Fixed numerous modes for use on secondary VGA (see the updated
mode tables above. I tested the driver on a 1280x1024 (IBM) and a 1024x768 (Philips) LCD panel (via DVI)
myself now, and it works perfectly. The panel is even correctly detected when plugging it in after booting (but, of course, before
starting the X server). Tested also secondary VGA (via DVI), works. 300/315 series: Rewrote the whole mode-restoring code in
order fix this for 730+LVDS once and for all - still needs testing. Reordered booting so that there should not be any garbage on the
screen any more during startup. All: Fixed DPMS code, it now really supports suspend and standby. However, if CRT2 is VGA, DPMS is
not supported yet.
UPDATE (03/02/12) Whoops, found a serious bug on 630+301B introduced yesterday.
Testing requests: People with a 630+301B should test the new driver with LCD (such as ECS A900 and A901) due
to some small changes.
UPDATE (03/02/13) 730: Finally seemed to have fixed the console switching problem.
sisfb: This is only a small update to include the most recent mode switching code. All other issues still exist, eg.
sisfb does not work under 2.5 kernels yet, 315 series show a bug in the acceleration code.
UPDATE (03/02/14) 315 (650+30xLV): Seemed to have introduced a mode-restoring bug
on this combination recently - hopefully this is solved with this version. 300/315 series with SiS video bridge (except
SiS301B-DH, used in ECS laptops with a 630): Implemented gamma correction for CRT2. See above for new
options
UPDATE (03/02/16) 6326: Fixed bug that may have caused the monitor to go into standby mode
upon starting X (occured only on older revisions of 6326). 315/Xabre: Fixed mode-restoring problems on 30xLV bridge.
This works now on all machines known to me (Higrade, Asus, ECS and derivates).
UPDATE (03/02/18) Fixed the problem which occured on 650+LVDS machines on 1400x1050
panels since Feb 6. Fixed BIOS detection on SiS740. I am really sorry that it repeatedly happens that things which already worked
stop working sometimes. This is due the the fact that SiS does not stick to its own rules and changes BIOS structures without
any hint, and that manufacturers of laptops use highly customized SiS chips which do not respond as they should.
UPDATE (03/02/19) Fixed some problems on SiS740 (mainly if used in combination with 301B).
Updated sisfb with the newest mode switching code. Sisfb can now no longer be started if the X server is active; you will
have to quit X before loading and starting sisfb. This prevents a display corruption which otherwise would occure if sisfb
was started after the X driver had taken over.
UPDATE (03/02/21) 315/650/740: Implemented xv property XV_SWITCHCRT which
allows switching the CRT where the overlay is to be displayed at run-time. Note that this property is only available on
chipsets which support only one video overlay, only if both CRT1 and CRT2 are being used, and not in dual head mode.
Additionally, I wrote a small tool to set/query this property (see download section, "sisswitchxvcrt"). The option
XvOnCRT2 from now on only selects the default setting.
UPDATE (03/02/23) 300 and 315/Xabre series: OK, folks - I am fed up with text mode restoring
problems and therefore did a more or less drastic step: Text mode is now restored by using the VESA BIOS extension. - 315/650/740:
Further enhancements to the Xv part: Xv is now enabled on both (!) heads in dual head mode (Xinerama and non-Xinerama); this
matches the behavior of the driver on chipsets that support two overlays. However, since these chipsets are not capable of using
2 overlays at the same time, it will by default only be shown on the head specified by the option XvOnCRT2.
The new thing about this is that the Xv property XV_SWITCHCRT (and hence the sisswitchxvcrt utility) now also
works in dual head mode.
UPDATE (03/03/02) Found and fixed a long standing bug in sisfb's acceleration code for the 315
series; that bug caused weird scrolling errors. The reason for this was a bug in the engine logic of the chip; the driver now
works around this. - Another bugfix for sisfb; the IOCtl "memory map" now treats mapping requests with an offset beyond the
framebuffer end as a request for mapping the MMIO register area (Thanks to Jake Page for the latter). - Updated
X driver installation instructions below due to a change in the 4.3 Imakefile.
(03/03/03) XFree 4.3 has no 3D support for SiS chips anymore. Due to the inclusion of Mesa 4 in XFree 4.3 and
due to the fact that nobody converted the SiS DRI driver to Mesa 4, the driver was "disabled". However, you can still
use Mesa version 3. For Debian users, the easiest is to install the xlibmesa3 package for 4.2.1 (after installation
of XFree 4.3). Users of other distributions should backup all existing libGL.so*, libGLU.so* files as well as all files
in /usr/X11R6/lib/modules/dri/ before installing XFree 4.3. After that simply copy them back to their old locations.
UPDATE (03/03/03) Added options XvDefaultContrast,
XvDefaultBrightness, XvDefaultHue and XvDefaultSaturation
to adjust the default Xv settings for use with dumb programs which cannot control them (such as mplayer); see
the options chapter for details. - Added option ScaleLCD; this tells the driver
to scale the image for LCD output to the panel's native resolution (or not, if disabled); see
the options chapter for details. - Changed the parameter format for the SISTVAntiFlicker
option from numeric values to OFF, LOW, MED,
HIGH or ADAPTIVE. - Fixed LCD output on 301B; this produced flickering dots
sometimes (especially on 1280x1024 panels). - 315 series: Xv windows which cannot show the overlay (because it is
reserved for the other head) now show a pattern instead of the color key. This only works with applications which do
not draw the colorkey themselves. - 300/315/Xabre series: The driver now checks the mode (and refresh rate) in
order to determine if the video overlay is supported. If this is not the case, the video window will show the
same pattern mentioned before. The overlay is not available in high resolution/high refresh rate modes.
(03/03/05) Just to keep you informed: In the meantime, I have ported sisfb to the 2.5 API. However, I will
not release a complete patch here since this involved changing a few files outside the sisfb code as well. The fbdev
maintainer of the 2.5 series, James Simmons, accepted my patches today and they will, if Linus is quick, be in one
of the upcoming 2.5.6x mainstream kernels. As a sidenote, the 2.5 framebuffer and console layers are far from being
finished. There are a lot of problems with mode switches and some other console related stuff, so don't expect this
to work like before. It may be a little too early, but I included a dedicated section on "sisfb and 2.5 kernels".
UPDATE (03/03/13) Updated the X driver for use on SiS740 + Chrontel 7019 systems. This
required some changes in the Chrontel code, so users of SiS650 + Chrontel 7019 should test this as well (including
TV output, which experienced a complete re-write). sisfb: Huge update; includes the 2.5 API changes (which
are not operational with the stock kernel yet), added new modes, many fixes.
UPDATE (03/03/13) sisfb: Some minor changes. X driver: Made the driver
less dependent on the BIOS as regards memory size, type and clock detection. People with a 630, 730, 650 and 740
should test it; please compare the "memory bandwidth" values in the log if they stay the same as with an older
version (they should...); if not, please report (including a log from a prior version and a log from the new one).
The most obvious result of a failure in the new code is that you might not be able to use high resolutions/color
depths any longer.
UPDATE (03/03/18) sisfb: Fixed a small bug that caused 800x600 to be an
"unsupported mode" (which it isn't, of course).
UPDATE (03/03/21) X driver and sisfb: Implemented modes 320x200, 320x240 and
400x300 and added these to the list of available modes on CRT1, LCD and secondary VGA. These modes are mainly meant
for older games using svgalib (via the FBDev device) and embedded devices.
UPDATE (03/03/25) This is a big one: The X driver now supports "Merged Framebuffer
Mode", inspired by the Matrox and NVidia driver (the latter calls it "TwinView"). The SIS driver is fully compatible
with the Matrox driver as regards this mode; it has furtherly the advantages that the hardware cursor as well as
Xv is supported. Please refer to the options chapter for more information. I also
re-wrote the whole options-handling. However, this has no effect on the usage.
UPDATE (03/03/26) Fixed small small issued with MergedFB mode (mainly memory leaks).
Fixed the usage of custom modes for CRT1 in MergedFB mode. Fixed positioning stupidity - the option
CRT2Position now works as supposed. Added support for 1280x768 LCD panels via DVI (301B).
UPDATE (03/03/30) X driver: Fixed numerous bugs with MergedFB mode (mostly
panning problems). Implemented extended LCD detection via DDC (301, 301B, 302B only; only for panels connected via
DVI-D): if the X driver does not recognize the panel's native resolution to be one the driver has support for,
it creates a special display mode for the panel's native resolution. So, if your machine has, say, a 1234x567 LCD
panel which is capable of delivering timing information via DDC, just place Modes "1234x567"
in the Display subsections of your XF86Config-4. (However, this feature needs testing yet...).
Added 1280x768 to the list of supported modes on the 300 series.
UPDATE (03/03/31) sisfb: Added DDC support; this is currently only used for
displaying a warning if the selected rate exceeds the DDC monitor specs. Added 1280x768 to the list of supported
modes for the 300 series. Added support for different mode specification.
UPDATE (03/04/02) X driver: Added an Xv feature for MergedFB mode on 315, 650
and 740 (which can only display one overlay): The overlay is now switched automatically to the CRT showing it. If
you move the overlay from one CRT to the other, it will follow. Otherwise some cosmetic changes. Reduced the code
size by about 10k by eliminating some duplicate data.
UPDATE (03/04/02-2) X driver: Fixed some TV stuff for the 30xB/LV. 1024x768
for NTSC was not working at all for months; 720x480 (NTSC only) had a shadow; etc. All this works now. Please note
that in NTSC mode, 1024x768x24 is not supported (depth 8 and 16 are, though). In PAL mode, all depths are supported.
Furthermore, 720x576 and 512x384 are only supported in PAL mode, 720x480 only in NTSC mode.
UPDATE (03/04/03) X driver: Added 320x200, 320x240, 400x300 to the list of
supported TV modes on the 301/30xB/30xLV. Changed the CRT2 sensing code so that a TV connected to the SVIDEO
plug is no more identified as a secondary VGA, too. Added 720x480 and 720x576 to the list of supported modes for
secondary VGA on 301, 30xB and 30xLV.
UPDATE (03/04/06) X driver: Added support for TV mode 1024x768x24 for 30xB/LV.
Fixed a bug in Xv code which caused overlay malfunction on CRT1 on 550, M650, 651.
UPDATE (03/04/08) X driver: Fixed the driver for use on the 651, at least in
connection with a 301B-DH (revision b0). I have no idea if the changes I had to make are specific to the 651, the
bridge or that very machine (dutch "Zerez Powerbox"). Folks with a 651 are asked to test it, especially CRT2 support
(in all color depths) and Xv.
UPDATE (03/04/12) X driver: Fixed various issues with Xv on 300, 315 and 330
series. Implemented untested and preliminary support for the upcoming SiS660. Added 768x576 to the list of built-in
modes for CRT1, secondary VGA and TV on SiS bridges. sisfb: Maintainance release. Sync'd the mode switching
code with the X driver and fixed two compilation bugs.
UPDATE (03/04/13) X driver: Added the option SiS6326TVForcePlug
UPDATE (03/04/18) X driver: Added the option SiS6326FSCAdjust
in order to adjust the subcarrier frequency which is responsible for color in TV output. This was required because
some old SiS6326 cards use a different main crystal frequency and hence lost color in TV output with the default
values the driver uses. - Added another fix for 301B-DH bridges (revision b1) and TV output.
UPDATE (03/04/22) X driver: Added fix to overcome mode-restoring problems
when using another text mode than "normal" (such as using "vga=extended" in lilo/grub). This required a change
in the already highly-sensible mode-restoring procedure, so folks who ever had problems with that should test
this version. sisfb: Maintainance release. Sync'd the mode switching code with the X driver.
UPDATE (03/04/25) X driver: Fixed colorcursor bug on 300 series in MergedFB mode.
Added options XvDefaultDisableGfx and XvDefaultDisableGfxLR and some new Xv
properties. Fixed some small Xv problems on M650 and 651. Fixed some small mode-restore problems on 300/315/330 series.
UPDATE (03/04/27) X driver: Fixed a small bug in Chrontel 7019 handling introduced
by 740 integration into the Chrontel code. sisfb: Sync'd the mode switching code.
UPDATE (03/04/29) X driver & sisfb: Another small bug on 650+Chrontel 7019 fixed.
UPDATE (03/05/01) X driver: Replaced the system-provided memcpy() routine
inside the Xv part of the driver with my own memcpy routine which speeds up Xv greatly on Athlon processors. The old
behavior can be restored by setting the option XvUseMemcpy to true. You may
check which one is faster on your machine and set the option accordingly. By default, the new memcpy is used.
Not yet finished. This whole issue is currently under investigation. This is no SiS driver specific problem but
seems to relate to either gcc 3.2 not producing good code for Athlon processors or a CPU configuration problem with
XFree 4.3.
UPDATE (03/05/02) X driver: Found and fixed a bug in mode line handling for
300/315/330 series. Interlace modes were not processed correctly. - Athlon mystery not solved yet.
I am currently looking for users of machines with a SiS740 to perform verious tests to solve the "mystery"
described above. If you are capable of compiling and installing XFree86 from scratch and are willing to help,
please contact me.
UPDATE (03/05/05) X driver: Implemented XV properties for changing the position
of the screen on the TV set. The properties are supported on the 300/315/330 series, are called XV_TVXPOSITION
and XV_TVYPOSITION and accept values from -32 to 32. These values work in the same way as the
parameters to the TVXPosOffset and TVYPosOffset options. - Removed NV12 and NV21
support for the 315 series as these obviously don't actually support this. Committed today's version to XFree86 CVS.
UPDATE (03/05/06) X driver & sisfb: Fixed a small typo in mode switching code. - The
Athlon mystery seems solved; this is a bug in SuSE's 8.2 XFree 4.3 packages.
UPDATE (03/05/07) X driver: Small update that makes the X driver to use memcpy() by
default again (as before the "Athlon mystery" came up). - Added my archive of Debian's DRI packages to the download
section. These are meant for use with XFree 4.3 and replace the DRI drivers installed by XFree 4.3. These packages are
needed because the SiS DRI driver did not get converted to Mesa4 and therefore "disabled" in the release version of
XFree 4.3.0. In short: The only way to get DRI working in XFree 4.3 is to use Mesa3, hence the packages from XFree 4.2.
Install these after you installed XFree 4.3.0.
UPDATE (03/05/09) sisfb: Compile fix for 2.5.69. Sisfb does no more compile with
2.5 series kernels < 2.5.69 from now.
UPDATE (03/05/11) X driver: Fixed low-resolution modes on secondary VGA (this bug was
introduced during the 740 + Chrontel 7019 changes). / Added extended non-standard LCD panel detection and handling: This
is only for 315/330 series with a 30xB bridge; if the LCD panel provides detailed timing information via DDC, the driver
will handle these and add respective built-in modes to its mode list. The difference to the behavior before is that it
enables usage of all special modes the panel accepts. This is currently under development and might
not work 100% yet. Additionally, I added the option ForceLCDReDetection to overcome
the problem that the BIOS very probably has misdetected such a non-standard panel's resolution. / Removed the "DSTN" option
and replaced it by new parameters DSTN and FTSN for the
ForceCRT2Type option.
UPDATE (03/05/20) X driver: Renamed the option ForceLCDReDetection to
ForceCRT2ReDetection because this also supports secondary VGA now. Implemented a smart detection for
some plasma panels; if a known panel is detected, the driver will add some built-in modes to its list of known modes. There
are no modelines required. However, on machines with a 301, 301B or 302B video bridge (hence not for LVDS and not for the
301LV/302LV), modelines are now also supported for the secondary VGA as well as LCD.
UPDATE (03/05/22) X driver: Fixed the SISTVAntiFlicker option,
this one had no effect since a while (stupid typo...). / The TVXPosOffset option now has four times
its effect on SiS bridges, allowing moving the image four times as far to the right resp. left. sisfb: Added
display power management support / Sync'd mode switching code / Changed default memory heap configuration on 315 series,
see the documentation on MaxXFBMem.
UPDATE (03/06/02) X driver: Added support for Barco iQ Pro R300 projector with
1280x1024 LVDS panel; added Mitac 7521P to the list of machines requiring some Chrontel magic; changed default CRT2
selection on 300 series with Chrontel TV encoder from TV-LCD to LCD-TV due to buggy hardware Chrontel TV detection;
fixed a bug for 1280x1024 LVDS panels; added ChromaKeying to 300/315/Xabre series Xv part. sisfb: Sync'ed;
identical fixes like X driver.
UPDATE (03/06/03) X driver: Fixed the X driver for ACER Aspire 1700 and 1280x1024
LCD panel. Added 1360x1024 display mode for Barco iQ R-series projectors. Fixed a stupid modeline bug introduced a
couple of versions ago.
UPDATE (03/06/04) X driver: Added support for Barco iQ G-series projectors.
UPDATE (03/06/10) Fixed support for 1280x960 LCD panels.
UPDATE (03/06/11) Fixed support for 640x400 and 320x200 on 1280x1024 LCD panels via
SiS30xLV bridge.
UPDATE (03/06/18) Added support for Compaq Presario 3045US, another machine requiring
some timing tweaks.
UPDATE (03/06/21) Another fix for Compaq Presario 3045US.
UPDATE (03/06/26) X driver: Hopefully the ultimative fix for Compaq Presario
3045US. - Fixed Xabre support: 2D acceleration and Xv work; the hardware cursor does not (driver will use the
software cursor by default; forcing it to use the hardware cursor will freeze your machine if CRT2 is in use). -
Added another SpecialTiming alternative for parallel or LVDS 848x480 panels. These are never
autodetected, and hence require setting SpecialTiming to PANEL848x480.
Remember: Don't play with this option unless you absolutely know what you are doing. sisfb: Sync'd mode
switching code; fixed Xabre support; added specialtiming and scalelcd
options like in X driver. Addendum: Fixed Xabre's hardware cursor on CRT2 (It has a buggy engine for
mono-color cursors, therefore the driver automatically converts the mono cursor to ARGB).
UPDATE (03/06/28) Fixed the system (bus) latency which was seriously degraded in
the previous version (due to implementation of Xabre support). This affected sisfb and the X driver.
UPDATE (03/07/02) Fixed setting the TV position for 1024x768 in NTSC.
NEWS: The last two days I have been busy writing a program called SiS Display Control Panel,
short: sisctrl, which will accompany the X driver from now on. This panel allows, among other things, switching the
CRT2 output type during runtime. Check it out, it's in the download section. Note: This tool is in the
first phase of its development, so please be patient if it does things it's not supposed to.
UPDATE (03/07/03) Fixed small bugs in X driver's TV option handling. Big update of
the sisctrl tool: Chrontel TV parameters added, various bugs fixed. Addendum: Fixed another hardware cursor bug
for the 330 series (the Xabre's engine is really skrewed). (Hopefully) fixed PAL-M and PAL-N support in sisctrl.
UPDATE (03/07/04) Some further enhancements and fixes for sisctrl. Please always update
your X driver and sisctrl!
UPDATE (03/07/05) Some further enhancements and fixes for sisctrl: Added option
to enable and disable CRT1.
UPDATE (03/07/06) Updated sisfb for 2.5.74.
UPDATE (03/07/09) Further additions to sisctrl: Video settings, gamma correction,
new layout, new graphics. Don't forget to update the X driver as well!
UPDATE (03/07/11) Enhanced sisctrl and the X driver. Fixed 640x400 for 300 series with
Chrontel TV encoder. Addendum: The sisctrl source archive now uses the GNU autoconf/automake system. Please read
the README on how to compile and install it. Addendum 2: Disabled Chrontel 700x 8bpp modes with SuperOverscan.
UPDATE (03/07/12) Another update of sisctrl (and the X driver). From now on, one must
set the Option "EnableSiSCtrl" "true" in XF86Config-4, otherwise the sisctrl tool will refuse to
start. The other changes within sisctrl are pretty much self-explaining.
UPDATE (03/07/13) Fixed a small bug in sisctrl.
UPDATE (03/07/14) Further enhancements for sisctrl: Current tab prints current
configuration in XF86Config-4-compatible manner. Addendum: Another update for sisctrl, along with a new
X driver.
UPDATE (03/07/15) Well, here's another update of the X driver and sisctrl. Mostly
bug fixes.
UPDATE (03/07/16) Inspired by some friendly Debian user, I created Debian packages for
the X driver and sisctrl. See the download section for more information.
UPDATE (03/07/17) Update for the Debian packages of sisxdriver: This package now installs
a diversion of the original sis_drv.o; this means that updating the xserver-xfree86 package will no longer overwrite
the driver installed by sisxdriver.
UPDATE (03/07/19) Some fixes for the SiS620 in the X driver.
UPDATE (03/07/28) Fixed "BadAtom" error in sisctrl on 300 series. Fixed 720xXXX modes
for TV on 30x/B/LV.
UPDATE (03/08/01) Added some further TV settings for SiS bridges to sisctrl, such as
scaling the TV output (315/330 series only), color calibration, luma (Y) and chroma (C) filter setup, etc. Added
respective driver options, please see options chapter. / Fixed sisctrl Debian package (which I had
accidently compiled using XFree 4.3 resulting in an incompatible binary complaining about a missing library).
UPDATE (03/08/02) TV scaling is now supported on the 300 series as well. However,
while the driver supports scaling of 800x600, 720x480, 720x576 and 640x480 on the 315 and 330 series, scaling is
only supported for 800x600 and 640x480 on the 300 series. Addendum: Re-wrote the code for vertical scaling,
this is now supported for 768x576 as well (on 315/330 series). Fixed a bug in the mode verification routine of
sisctrl; this requires an update of both the X driver and sisctrl.
UPDATE (03/08/04) Implemented a small Xinerama extension for MergedFB mode, allowing
applications to place their windows intelligently. Please see the options chapter for more information.
UPDATE (03/08/05) Whoops, uploaded broken archives....
UPDATE (03/08/06) Changed some data for 1024x768 panels on 30xLV bridge.
UPDATE (03/08/07) Fixed X driver and sisfb for Clevo L285 and propably L287 LCD-PCs.
Added a new special timing, named CLEVO1024 for cases where the detection fails. Addendum:
Some small fixes for sisctrl, requires updating the X driver to today's version.
UPDATE (03/08/10) Implemented advanced gamma correction in sisctrl. Again, this requires
an update of both sisctrl and the X driver. Added some gamma correction options, please see the
options chapter for more information. Addendum: Fixed the TV position offset
options, these had no effect recently...
(03/08/21) Currently, I am busy rewriting the 2D acceleration part for the 315 and 330 series to use a new kind
of command queue mode (VRAM queue). Works already, but requires some testing before I will release the code. The reason for
this is the simple fact that it is much easier to write a DRI driver for 315/330 with this VRAM queue mode. But beware,
I do not intend to write such a driver myself, so any respective questions will remain unanswered.
UPDATE (03/08/23) The new X driver contains all the changes annouced August, 21. Furthermore,
it knows a new option named LVDSHL for machines with a 301LV or 302LV video bridge and LCD panels.
This option should be used in case the LCD display is "too dark" (and only in this case), see the
options chapter. SiSCtrl only contains a few smaller changes, but please update anyway. The
new sisfb knows the lvdshl option, too. Addendum: Fixed crash on 300 series with DRI
enabled.
UPDATE (03/08/26+27) Fixed dual head related crash on 315 series (introduced with VRAM
queue mode); fixed LVDSHL option (had no effect...); added RENDER hardware acceleration for 315 series - this
speeds up some operations (like AA text under some circumstances) and provides accelerated alpha-blended bitblits. Added support
for another type of Clevo L285/287 (see SpecialTiming) / sisfb sync'd. Addendum: Further
fix for (second version of) Clevo L285/287. Addendum 2: Solved the PDC problem on LV bridges; this requires
an update of both the X driver and sisfb (latter only, if actually used, of course).
UPDATE (03/08/27+28) Fixed bug in Render acceleration (caused "blocks instead of fonts").
On my machine (P4 2.0Ghz), x11perf -aa24text without acceleration reported 25500/sec, now with acceleration 105000/sec.
Very nice...
UPDATE (03/08/29) More or less cosmetic fixes for the X driver. Updated sisfb: Compiles
with 2.6.0-test4 now; sync'd mode switching code.
UPDATE (03/08/30) X driver: CRT1 is now forced in dual head and MergedFB mode (does no
longer require the ForceCRT1 option if monitor is connected after booting); video contrast setting is now reversed
on 300/315/330 series (was done the wrong way previously). You will probably re-adjust your Xine/Mplayer/whatever video
player settings as regards to the contrast.
UPDATE (03/09/02) X driver: This is quite an important update. It fixes a hang of the X
server when using MPlayer. / Furthermore, I discovered a bug in the X server's XAA code (outside the SiS driver), which
has been there since before 4.1 - and was never detected until recently. This bug is now more often triggered by the
RENDER acceleration, but might show up even without it, for example, after heavy Xv usage. To fix this, I provide
patched libxaa.a files in the download section which are to be placed in /usr/X11R6/lib/modules. / Added transparency
support for mono 8x8 pattern fills (300/315/330 series), added color 8x8 pattern fill support (315/330 series).
UPDATE (03/09/04) X driver/sisfb: Added support for another customized system, the
Clevo D400 (with 1400x1050 LCD panel). I don't know if this is required for all models (D400S/D400H/D410S/D410H) and/or
all panel sizes yet. Added respective option parameter for SpecialTiming. / Added proper CRT1
detection code, so that ForceCRT1 is no longer needed if connecting the monitor after booting. /
sisfb code sync'd.
UPDATE (03/09/05) Fix a small bug in CRT1 detection, might have hung 300 series based
machines with sisfb running. This update is for both the X driver and sisfb.
UPDATE (03/09/08) Fix for people using the SiS X driver together with the kernel's
VESA framebuffer driver. This works now, but is not recommended. Use sisfb instead. / Update for sisctrl, added
a little eye-candy (bad luck guys, she is my girlfriend), along with some small bugfixes (locale number format fix)
and additional command line options. Type sisctrl -? to see a list of options.
UPDATE (03/09/09) X driver/sisfb: Removed code to setup the magnetic spectrum; differs from
machine to machine and is setup by the BIOS anyway. However, folks with a SiS302LV (which practically means all machines
with LCD panels larger than 1024x768) should test this and report any eventual regression. sisfb: Fixed compile bug
for 2.6.x kernels. Further update for SiSCtrl, too.
UPDATE (03/09/19) X driver: Introduced simultanious LCD and TV output on some machines.
For more information, please see the options chapter. Requires an update of both the X driver as
well as sisctrl. I'd welcome testing reports on this new feature as it is something that neither the BIOS, nor the
Windows driver support.
UPDATE (03/09/20) X driver: Fixed a small bug (LCD wansn't blanked when using TV output).
UPDATE (03/09/22) X driver: Allowed LCD-via-CRT1 on all 650-based machines (with a 30xLV
bridge), not just the M650 and 651. Works at least on Mitac machines... Changed gfx in sisctrl (for private reasons).
UPDATE (03/09/23) X driver: Fixed Xv and LCD-via-CRT1 related bug; overlay could not be
switched to other CRT under some circumstances (SiS650 only). sisctrl may report an error on switching the CRT2
type for the moment; I'll fix that later today.
UPDATE (03/09/24) Fixed sisctrl's wrong error message when switching CRT2 type. Built
an experimental rpm for sisctrl; but beware: I have no idea if that works correctly as this rpm is built on a Debian
system using alien.
UPDATE (03/09/26) X driver: Fixed LCD-via-CRT1 bug; top-most line was cut away on
1024x768 panels. 1280x1024 and 1400x1050 panels still untested, reports welcome.
UPDATE (03/09/28) X driver: Reverted fix for LCD-via-CRT1 from previous version. I
encourage people with a 650+30xLV to test LCD-via-CRT1 and report a) if it works at all, and b) if there are any
lines (top, bottom) missing on the LCD. Please include your X log.
NEWS (03/09/28) Today, Eric Anholt's new DRI driver for the 300 series was merged in XFree's CVS. This means
that there will be DRI again for the 300 series in XFree86 4.3.99.14 and later. No need to install any files from 4.2
from this point on if you're using the CVS version.
UPDATE (03/10/03) X driver: Code clean-up.
UPDATE (03/10/05) X driver: Added option "DRI". This option enables/disables DRI (if
supported on your hardware). In order to avoid error messages in the log, please remove Load "dri"
from your XF86Config[-4]. The driver now loads the DRI module automatically, if needed. sisfb: Fixed important
(but not often showing) bug; removed all double and float usage from kernel code. Sync'd mode switching code.
UPDATE (03/10/06) X driver: Implemented some kind of auto-configuration for MergedFB
mode; if the MetaModes statement is missing, and/or the Virtual keyword
in the Screen section is missing, the driver combines the largest modes for each CRT1 and CRT2 to one single
meta mode, and adapts the virtual desktop size to this combined mode. In essence, the only thing you need to do
to enable MergedFB mode from now on, is setting the option MergedFB. / Discovered another XAA bug
related to color 8x8 pattern fills. Fixed in my libxaa replacements below.
UPDATE (03/10/07) X driver: Disabled TV saturation setting for SiS301. The hardware does
not support this.
UPDATE (03/10/08) X driver: Added work-around for DPI problem in MergedFB mode; added
MergedDPI option, see here.
UPDATE (03/10/13) X driver: Removed CRT1 sensing, and replaced CRT1 detection by
a method that uses DDC2. The old method did not work reliably on many machines, and wrongly detected a CRT1 detection
where there was none. The new method has the disadvantage that it only works if the monitor supports DDC2. If your
monitor does not, it must either be connected at boot-time, or you need to use the ForceCRT1
option. Until this is fixed in sisfb as well, please use the forcecrt1 parameter for sisfb,
otherwise the X driver will fall back to the (wrong) result of CRT1-sensing done by sisfb.
UPDATE (03/10/16) X driver: Fix bug in video overlay handling for CRT1. Fix long-standing
dithering bug (made 24bit RGB panels look somewhat dull). Added further support for the 661/M661/741/760 and 301C/LVX.
UPDATE (03/10/18) Fixed a compiler warning in sisfb. Note that the CRT1 detection of sisfb
is still broken. However, this is fixed in my development version, but this new version does not work with current
2.6.x kernels because the new framebuffer framework by James Simmons has not been merged into the main line kernel yet.
So there is no point in releasing this version here at this time. In case you are using James' 2.6 fbdev kernel tree,
sisfb is fixed there. / X driver: Added further support for 661/741/760 and the new video bridges 301C/LVX. Fixed PAL-M
support in 1024x768. Hopefully fixed problems on 300 series' 720x576 TV output.
UPDATE (03/10/20) X driver: Further support for 661/741/760. SiS told me that the 661
and 741 are similar to the 650/651/740, ie their core is a 315. The 760 has a Xabre-like GPU core. This knowledge
caused some changes. / Can confirm that TV mode 720x576 now works on the 300 series as well. Please test this version
intensively and report bugs as soon as possible. I need to commit the code to the XFree CVS for inclusion in
XFree86 4.4 very soon.
UPDATE (03/10/22) X driver: Fixed LCD-via-CRT1 on some ECS A928 machines (LCD was missing
topmost line). / Added (untested) Xv support for 661/741/760. / Fixed Xv-problems after swsuspend. / Just saw that I
accidentally deleted a changelog entry from about a week ago, introducing the MergedFBAuto option.
Reinserted the documentation of this options.
UPDATE (03/10/23) X driver: Hopefully corrected LCD-via-CRT1 for Acer and Compaq machines
with 1280x1024 panels, the Clevo L285/287 (1024x768) and the Clevo D4xx (1400x1050).
UPDATE (03/10/24) X driver: Added NTSC-J (Japanese NTSC) support for SiS video bridges.
Anyone using this driver in Japan in kindly requested to test this. It should work up to 800x600; 1024x768 might require
color adjustments (color calibration). In case you don't get color, please try adjusting the color subcarrier frequency
with sisctrl and tell me which values worked. To enable NTSC-J, set the option TVStandard to
NTSCJ. SiSCtrl updated to support NTSC-J. Addendum: Added another machine for special handling of
LCD-via-CRT1 (Uniwill N35BS1). Renamed the parameters for the option SpecialTiming because the
names got too similar recently. Addendum 2: Added (untested) NTSC-J support for Chrontel 7019. Fixed (?) PAL-N
support on Chrontel 7019.
UPDATE (03/10/26) X driver: Fix stupid typo (made PAL TV output black & white). SiSCtrl:
Added more command line switches upon public demand. Type sisctrl -? for help.
UPDATE (03/10/30) X driver: Fix Xv misbehavior on 315/650/740 in MergedFB mode. Fix handling
of interlace modes in "LCD-via-CRT1" mode. Allow interlace modes in single head, non-MergedFB mode (won't be used on CRT2,
but allows using them for CRT1). Add two more systems for "LCD-via-CRT1" line shift fixing (topmost scanline missing).
Users of Compaq laptops with a 1280x1024 panel are especially encouraged to test this version; I have had reports that
the LCD suddenly "shifts" during normal operation, or that it loses sync after a mode switch. That should be fixed. /
SiSCtrl: Small fixes.
UPDATE (03/11/03) X driver: Work around a small HWCursor hardware bug in MergedFB mode.
Add support for simultanious composite and svideo output (on machines which have both connectors). However, this mode
will never be chosen automatically, even if two TV sets are connected at server start. To enable both svideo and cvbs,
set the option ForceCRT2Type to SVIDEO+COMPOSITE. Enhanced sisctrl to support
this, too.
UPDATE (03/11/06) X driver: Small fixes; Made LCD and VGA2 detection via DDC more robust.
UPDATE (03/11/07) X driver: Added the option AGPSize (alias
GARTSize) for selecting the size of the AGP memory buffer in MB used for DRI on the 300 series.
If your DRI application quits with a "out of video memory" error, try setting this option to 8, 16, 32, 64 in this
order. The valid range is from 8 to 512; the default is 8. If the given number exceeds the size of the AGP aperture
(see dmesg output), the default will be used. / Fixed low resolution modes on 300 series if CRT1 is disabled.
UPDATE (03/11/11-1) sisfb: Added support for DirectFB driver, which is currently under
development (by DirectFB folks, not by me). Added nomax parameter, see options chapter.
Note: This new version of sisfb works only for 2.4 series kernels, and 2.6 series kernels which have been
patched with James Simmons's fbdev patch. For vanilla 2.6 series kernels, please use the previous version.
UPDATE (03/11/11-2) X driver: Added separate gamma correction for Xv on CRT1. Please
see here for more information. Removed the StoredGammaBrightnessXXX and
the corresponding PreBrightnessXXX options in favor for these new options. SiSCtrl updated
to support this. / Fixed numerous problems with gamma correction in dual head/Xinerama mode.
UPDATE (03/11/12) sisfb: Fix compile bug.
UPDATE (03/11/18) X driver: Rename "301LVX" to "302ELV" which seems to be the official
name. / Tune refresh rates for secondary VGA on 315/330 series. / Further support for 301C video bridge. / Code cleanup.
/ sisfb: Similar changes.
UPDATE (03/11/19) X driver: Cleaned up mode verification code. Fixed hi-res modes for secondary
VGA (some modes with high refresh rates didn't work correctly previously). This requires an update of both sisctrl and the
X driver. Addendum: Fixed serious bug that caused a wrong color palette on CRT2 in dual head mode. Version
number not changed, so please update again even if you already did today.
UPDATE (03/11/20) sisfb: Fix compile bug. X driver: Various small fixes and code clean ups.
UPDATE (03/11/22) X driver: Fix MergedFB mode for 1400x1050 panels (1400x1050 was not wrongly
disallowed for CRT2 in MergedFB mode) / Re-included EMI code for 302LV/302ELV. This will require a bit of testing; EMI is short
for electromagnetic interpherence. The 302LV/302ELV, due to their dual-link capability, require some counter-measures for
avoiding EMI. The effects of a wrong EMI setup are, for example, that the panel shows a "comb"-like sync disturbance at the
display edges, or loses sync after mode-switches. I herewith urge all users of a machine with a 302LV/302ELV (such as all machines
with a LCD panel larger than 1024x768, plus some Clevo L28x with a 1024x768 panel) to test this version and to report problems
as described asap. / Fixed 640x480 for 1280x768 Fujitsu panels.
UPDATE (03/11/23) sisfb: Re-include EMI code for 302LV/302ELV. Please update, especially if
your machine has a 302LV/302ELV.
UPDATE (03/11/24) X driver: Fix panning in 1400x1050 mode and other modes which horizontal
resolutions which aren't a multiple of 16 (showed gargabe at right edge of screen); Disabled loading DRI on chipsets other than
300 series by default (saves users from eventual unresolved symbols).
UPDATE (03/11/29) X driver: Some further EMI fixes (for some Compal machines). Since XFree86
4.4 is going into code-freeze phase really soon (a few days), I urge everybody and especially users of machines with a 302LV
to test this version - as it is probably going to be the final version for 4.4.
UPDATE (03/12/02) X driver: This EMI stuff is driving me nuts. Added another EMI fix
for Inventec (Compaq 3045US and others) with 1280x1024 panel. Hopefully this will finally do. Added option EMI
to make the EMI values user configurable in those rare cases where the BIOS uses wrong or bad ones.
UPDATE (03/12/04) X driver and SiSCtrl: Added RANDR support. SiSCtrl can now not only change
the display mode, but also resize your desktop using the X Resize AND Rotate (RANDR) extension. Note: Your window manager
must support RANDR, otherwise you may end up with unaccessible windows. This feature requires an update of
both the X driver as well as SiSCtrl. Since the RANDR extension is only working in XFree86 4.3 and later, I provide two
versions of the pre-compiled SiSCtrl package now. Debian users, who use Debian's experimental XFree86 4.3 packages, MUST
use the experimental versions, too, from now; please adapt your /etc/apt/sources.list as described in the download section.
UPDATE (03/12/08) X driver: From now, RandR (Resize and Rotate Extension) is disabled if running
MergedFB mode with pseudo-Xinerama; these two didn't really like each other. / Fixed possible sig 11 at server exit in dual
head mode.
UPDATE (03/12/09) X driver: Fix VT switching if a custom panel is attached by saving/restoring
the registers that contain the LCD info. Addensum: Reversed XV contrast setting. Note: Some video applications
like Xine save the contrast (and other settings) in their configuration file and re-load these settings at program
start. This update requires resetting the contrast in video applications. For Xine, just delete ~/.xine/config to
force xine to read out the default value.
UPDATE (03/12/12) SiSCtrl: Added Xv preview icon for more intuitive Xv (video) setup. This can
be disabled with the command line switch -noxvdemo / X driver: Got some reports that the driver has problems on Asus
2500L/H, but so far these people did not provide me with more information. How I am supposed to fix this without the BIOS
image or a log is beyond me.
UPDATE (03/12/23) X driver: Hopefully solved the Asus 2xxxH/L problems. / Implemented
preliminary support for HiVision and 525i, 525p and 750p YPbPr (HDTV) for SiS661/741/760 and later with a 30xLV/301C bridge.
Although older hardware already has supported HiVision for a long time, I have never seen a machine actually featuring
connectors for this... A machine with a component connector for YPbPr is yet to be seen. (This feature can't be activated
currently; only the code is there).
UPDATE (03/12/24) X driver: Implemented further support for HiVision and YPbPr; this can now
be enabled (see updated description of the option ForceCRT2Type), but remember: SiS661/741/760 with
30xLV/301C bridge only. Hm, is this hardware on the market yet? Merry christmas to all of you.
UPDATE (04/01/04) X driver: Updated the license terms, re-licensed under a BSD-like license.
All previous licenses revoked for new works.
UPDATE (04/01/06) X driver: Rewrote HWCursor code for 315 and 330 series in order to fix it
for the 661/741/760 as well. However, testing results welcome.
UPDATE (04/01/07) X driver: Further fixes for the 661. Console restoring might not work yet,
though. HWCursor works, and the machine no longer hangs at log out. That's something for one day... isn't it. Oh yeah,
and video seems to work, too.
UPDATE (04/01/09) X driver: HiVision 1080i HDTV output is now supported on all chipsets
with a SiS video bridge supporting this. However, this feature is entirely untested. Update of SiSCtrl supporting this is
on its way.
UPDATE (04/01/12) X driver: YPbPr (HDTV) 525i, 525p and 750p is now supported on the
315/330 series (previously 661 and later only) and the 301C/30xLV. Remember: This is untested. SiSCtrl will be adapted soon.
UPDATE (04/01/14) X driver: Changed the names of the HDTV modes (525i = 480i, 525p = 480p,
750p = 720p), see above. Rewrote BIOS detection code (BIOS looked for using PCIR BIOS header instead of SiS signature;
this should prevent the driver from failing to find the ROM on some OEM cards with non-SiS strings). SiSCtrl updated to
support HDTV.
UPDATE (04/01/19) X driver/SiSCtrl: Some YPbPr fixes; Added aspect ratio support for YPbPr;
proper TV scaling for 301C/302ELV. Both untested. Fixed small Xv bug (very large videos were displayed incorrectly
when after switching output devices).
UPDATE (04/01/21) X driver: Put less stress on LCD backlight by making delays between switching
it on and off longer (301LV).
UPDATE (04/01/22) sisfb: Updated. Since it does not seem that James Simmons' fbdev stuff is
going to be merged to 2.6 anytime soon, the new code is clean of offending code for 2.6.1 (and later) vanilla. The
current version of sisfb will therefore not compile if you have applied James' patch.
UPDATE (04/01/23) X driver/sisfb: Fixes for 301C DVI output; Rewrote the PanelDelayCompensation code
(has become a chaos recently). Addendum: After conducting a survey on about 10 different PAL TV sets (mainly Philips,
Siemens and Panasonic), I changed the default Y position of PAL TV output to the best average. This means that, if you had a
custom position set up using SISTVYPosOffset, you'll need to re-adjust this. Furthermore the Y position
can now be set twice as exact.
UPDATE (04/01/26) sisfb: Fixed usage of 720x576, 768x576 and 720x480 for TV output. These
were not accepted previously by mistake. They are, however, only supported on SiS video bridges.
UPDATE (04/01/26) X driver: Improved RENDER acceleration for 315/330 series (added support
for ARGB alpha textures).
UPDATE (04/01/27) X driver: Furtherly improved RENDER acceleration by adding support for
source alpha. (Component alpha not yet supported though, but XAA doesn't do that either.)
UPDATE (04/01/31) X driver/sisfb: Add support for very rare machines which use a Trumpion Zurac
LVDS scaler (early Clevo notebooks with SiS 630 for example). Addendum: Fixed LCD-via-CRT1 for Clevo D4xx (1024x768).
UPDATE (04/02/06) X driver: Big update: Rewrote LCD-via-CRT1 code to calculate the timing instead
of carrying around a lot of data tables. Fixed driver for new BIOS for 661/741/760; SiS folks have changed the data layout
in the BIOS resulting in a massive failure of the previous version. Fixed HWCursor on Xabre and 661/741/760 in TV 1024x768 NTSC/PAL-M
mode. Added preliminary support for 1280x720, 1280x800 and 1680x1050 LCD panels. Major code-reduction, removed many duplicates,
cleaned-up.
UPDATE (04/02/11) X driver: Another big update: Reverted RENDER acceleration to the state as
of before 04/01/26; this did not work correctly if subpixel hinting was enabled. / Removed more LCD data tables and replaced
them with calculations. / Added the option "CenterLCD" for 301/30xB/301C, please see the options chapter. / Further fixes
for current BIOS for 661 series. Testing reports extremely welcome.
UPDATE (04/02/16) X driver: One more big update: Fixed segfault when logging out and in / Fixed
TV detection on 300 series with 30x video bridge / Fixed color-bug for machines with SiS630/730 and Chrontel 7005: Since the
Chrontel only accepts 15bit color information I now enable dithering. For 16bpp color depth this greatly improves the
display quality; for 24bpp it is slightly better than before. / Re-wrote LVDS and LCDA setup. Testing reports from all
sort of machines, especially with LVDS (be it 300 series, be it 315 series, eventually with Chrontel TV encoder) and SiS
bridges in LCD-via-CRT1 (all LCD sizes) mode appreciated. 300 series machines with a Chrontel 7005 TV encoder should test TV
output as well. Please tell me even if everything works!/ Added 1280x720 to the list of supported modes for YPBPR720P.
YPbPr 480i, 480p and 1080i is reported to work fine. 720p has a slight "blur" problem, which I am currently investigating. / Please
tell me even if the driver works. / sisfb: Found bug in 8bpp LCD support for machines with Chrontel 7019,
will be fixed in the next release.
UPDATE (04/02/17) sisfb: Sync'd to the X driver.
UPDATE (04/02/19) X driver/sisctrl: Added switch for enabling/disabling LCD scaling and centering
in sisctrl. This requires an update of both the X driver and sisctrl. / Debian is now at 4.3.0 in unstable; therefore, I updated
my repository to support 4.3 instead of 4.2. Debian Sarge (Testing) users will either have to compile sisctrl for themselves or
wait until 4.3 enters testing. This only matters for sisctrl; the sisxdriver package will continue to work.
UPDATE (04/02/23) X driver: Fixed low-resolution modes for 650/740+Chrontel 7019 machines. /
Fix for newer 661/741/760 BIOSes (LCD table size changed).
UPDATE (04/02/25) X driver/sisfb: Rewrote panel delay compensation detection code. Added
option for panel compensation delay for LCD-via-CRT1 named PanelDelayCompensation1. Values for
PanelDelayCompensation and PanelDelayCompensation1 on 315 series are now
within the range of 0 to 31. Please update X driver and sisfb.
UPDATE (04/02/26) X driver: Various small fixes (last minute for XFree86 4.4, CVS will be
closed today). sisfb: Adapted PDC detection for new X driver. Small fixes. SiSfb is now for >= 2.4.18, 2.6.3. Older
2.6 kernels might not be supported any longer.
UPDATE (04/02/27) X driver: Fix PDC typo. Change YPbPr 720p timing, perhaps it's better
now.
UPDATE (04/02/29) X driver: Fixed the scaling problems on 1024x600 panels. This fix did
not make it into XFree86 4.4./ sisfb: Fixed problems with 2.6.3.
UPDATE (04/03/01) sisfb: Fixed compilation problems under 2.6
UPDATE (04/03/02) sisfb: ARGH... another build fix. Sorry for the inconvenience.
UPDATE (04/03/06) X driver: Minor fix for old series (propagate 24 to32 bpp conversion
through fb layer; perhaps this solves the VNC limitation of not being able to "cope with 24bpp pixmaps"). / sisctrl:
Make it compile on *BSD
UPDATE (04/03/07) sisfb: Update and fix for people compiling sisfb, but not framebuffer
console support in their kernels. (Lead to wrong mode detection when starting X, resulting in a corrupted display when
returning to the console).
UPDATE (04/04/22) X driver: Fixed accelerator-hang for 760; fixed BIOS data relocation for
final SiS BIOS (661/741/760); fixed memory size detection for 661/741/760. Added LFB (local framebuffer) support for 760.
Added support for 1280x720 for 1400x1050 LCD panels. Added support for 720x480 for TV in PAL/PALN mode (SiS video bridges
only).
UPDATE (04/04/25) X driver: Added a number of new modes for LCD (such as 720x480, 720x576,
768x576, 800x480, 848x480, 856x480, 1024x576, 1152x864, 1360x768) on SiS video bridges and 315/330 series. However, these
modes are never scaled to the panel's native resolution. Please see the remark after the tables
here.
UPDATE (04/04/26) X driver: Fixed all remaining LCD issues with 1400x1050 and 1600x1200
LCD panels.
UPDATE (04/04/28) X driver: Simplified some bridge handling (users of machines with a
302LV should test). Enhanced CRT1 detection for 330(Xabre)/661/741/760. Possibly fixed wrong CRT2-VGA detection when
YPbPr HDTV is connected (untested). Fixed driver for A530/531 (LCD backlight is being switched off properly now).
UPDATE (04/05/01) X driver/SiSCtrl: SiS goes hotplug! The X driver and SiSCtrl have been
enhanced to support hotplugging CRT2 display devices. SiSCtrl has a new button in the CRT2-tab that issues a complete
redetection of all CRT2 devices, including LCDs (TMDS only, since LVDS panels are hardly ever being hotplugged). Although
it already was possible to use a TV or secondary VGA connected after starting the X server, this was not possible
with LCD panels (since the driver has to know the panel's resolution and timing data which was only scanned during
X server start.) Now you can even hotplug LCD panels during X server runtime.
UPDATE (04/05/03) X driver: Fixed redetection feature (caused malfunctions on machines with
LVDS panels). SiSCtrl currently lacks some support for LCDA if the panel was not connected at server start (which is only
possible on the 301C bridge). Will add this soon.
UPDATE (04/05/04) X driver/SiSCtrl: Fixed LCDA support switch after LCD being hotplugged.
Fixed LCD scaling support after LCD is hotplugged. Fixed strange window size of sisctrl. This version of the X driver
made into Debian's (yet upcoming) 4.3.0.dsfg.1-2.
UPDATE (04/05/19) X driver: Enhanced communication with upcoming new version of sisfb,
which will support tv[x|y]posoffset and some other new stuff.
UPDATE (04/05/20) X driver: Fix for enhanced sisfb communication.
UPDATE (04/05/21) X driver: Another enhancement of sisfb communication. Removed RelIO
16bit limitation for 32bit port addresses on non-x86 architectures.
UPDATE (04/05/21) sisfb: Large update for sisfb. Not only have all relevant enhancements and
fixes from the X driver been ported to sisfb, it also supports YPbPr and HiVision now. Furthermore, SVIDEO+COMPOSITE for
simultanious S-video and CVBS output is supported, and tvxposoffset and tvyposoffset parameters and ioctls have been added.
This means that you can, like with the X driver, specify an offset the default position of the screen on the TV and change this
during runtime. A demo utility named sisfbctrl is available in the download section. Note: sisfb uses new
ioctl numbers from this version on. The old ones are still there but deprecated. This affects mostly the X driver (which
should be updated to today's version, too) as well as DirectFB (which would need a recompile). Sisfb will warn you in the
syslog if any application still uses the deprecated ioctls. Addendum: Just found a bug in the tv position
handling. Please update both sisfb and sisfbctrl if you have done this earlier today.
UPDATE (04/05/22) X driver: Fixed crash if running an older version of sisfb. I am sorry
for the inconvenience. Today's lesson: You can never test enough. sisfb testing results welcome since I would
like to commit the new sisfb to the mainline kernel soon.
UPDATE (04/05/25) sisfb: Another large update. Made sisfb 32/64bit safe. Changed ioctl
numbers for TV position, which requires updating sisfb, sisfbctrl and the X driver (the latter for restoring the
position correctly when switching to other VTs). Sorry for the inconvenience. On x86/ia32 systems you may ignore the
warning that appears when compiling the SiS DRM module. On x86_64 systems, this warning should be ignored; instead,
you need to change the call of sis_free in sis_mm.c from "sis_free(fb.free);" to "sis_free((u32)fb.free);" (line 133 in
current 2.6.6). Is there anybody using an AMD64 with a 32/64bit mixed userland out there?
UPDATE (04/05/26) X driver: Fix (non-critical) error message about unresolved
drmXXX symbols in log. sisfb: Further 32/64 bit fixes; default mode now matching LCD resolution (if CRT2 type is
LCD), was 800x600x8 in all cases previously.
UPDATE (04/05/27) sisfb: Cleanup; Remove unneeded code parts; rewrote some memory
management functions. No dangerous stuff.
UPDATE (04/05/28) sisfb: More fixes, especially for 64bit systems. Today's version (1.7.3)
has been tested on a pure 64bit system, found working. However, there is one issue with the screen not being cleared
sometimes (such as when starting a text editor). I am investigating this.
UPDATE (04/05/30) sisfb: Fix color-loss bug introduced yesterday. I am sorry. / Placed
a sis_dri.so, generated from DRI CVS as 2004/05/29, in the download section which was donated by a third party. He
reported DRI working with this. You may try this if DRI makes problems on your system; but please do not expect me
to asnwer questions about DRI.
UPDATE (04/06/01) sisfb: Fixed accelerator malfunction on 64bit platforms. / sisfb
now honours the "vga=" statement in lilo/grub. Note: Despite this, using "vga=" in the boot manager is not the
recommended way to select a display mode with any framebuffer driver but vesafb. / Got confirmation that
detection of HDTVs (via analog YPbPr connector) works both in sisfb and the X driver. / Fixed 1280x1024 in 1080i
YPbPr and 720x480/1280x720 in 720p YPbPr mode. / Fixed 640x400 and 640x480 for 1600x1200 LCD panels.
UPDATE (04/06/02) Xdriver: Fixed 1280x1024 in 1080i YPbPr and 720x480/1280x720 in
720p YPbPr mode. / Fixed 640x400 and 640x480 for 1600x1200 LCD panels.
UPDATE (04/06/03) sisfb: Added support for x panning. The practical use of this mainly
if not only for users of the X.org/XFree86 "fbdev" driver (for what reason ever anybody would want to use this). This
allows panning over a virtual screen larger than the visible area. Using the X.org/XFree86 "fbdev" driver is not
recommended at all; it has some serious bugs. Addendum: Added support for new fbcon acceleration flags. Without these,
sisfb will be quite slow in some upcoming kernels.
UPDATE (04/06/03) Xdriver: Fixed display distortion on 302LV + 1400x1050 and 1600x1200 panels
on 661/741/760 machines with new BIOS.
UPDATE (04/06/04) Xdriver: Added two modes for HDTV via a VGA-to-HDTV adapter (and NOT for
direct YPbPr/HiVision HDTV out via CRT2): 1920x1080i (60Hz interlaced) and 960x540 (60Hz progressive scan). Keep in mind
that these modes are only for connecting a HDTV via the CRT1 VGA plug to the HDTV via some sort of adapter. On
CRT1, 960x540 is supported for LCD and secondary VGA. 1920x1080 is only supported for CRT1. / First attempt to make
the driver work on the MIPS architecture (removed VGA memory mapping at 0xa0000 and skip save/restore VGA fonts).
UPDATE (04/06/09) sisfb: Cosmetic fixes / Enhanced mode detection during start.
UPDATE (04/06/09) Xdriver: Added a second Xv "adaptor", the SiS 315/330 video blitter.
This is an additional Xv adapter to play video. It has no limitations as regards the current mode dotclock (as the
video overlay has), but has some disadvantes.
UPDATE (04/06/10) Xdriver: Fix video memory freeing bug in new Xv code introduced
yesterday. Made video blitter slightly faster.
UPDATE (04/06/12) Xdriver: Found out that the video blitter is only supported on M650,
651 and all chips from 330 and newer. Hence, disabled support for video blitter for 315, 650 and 740.
UPDATE (04/06/16) Xdriver: 315/330 series: Enhance video blitter to directly blit
packed pixel formats instead of manually converting them first. Fix video blitter alignment issues: The video blitter
can only blit from locations in the source which are properly aligned to the source format type. This means that it
can only blit from 2 pixel aligned positions. If another window is partly covering the video window, it might be that
the left most pixels of the video window show garbage. Unfortunately, this is not avoidable. / Fix overlay video: The
second overlay is only used on CRT2, if both CRT1 and CRT2 are active. This second overlay has a few hardware bugs as
it does not update its window position properly. I now have a work-around for this which is superior to the previous
method (was: disabling the overlay). Moving or resizing the overlay now does not flicker any more. / Fix overlay
minimum size to 3 pixels; if the visible part of an overlay is below 3 pixels in width, the overlay will be disabled
to avoid an overlay engine crash. / Fix line buffer size error: If the visible overlay was less than 24 pixels wide,
the overlay showed garbage and scaled wrongly. This was due to a bug in the line buffer size calculation. /
300 series: Applied some small patches from DRI CVS.
UPDATE (04/06/17) sisfb: Build fix for ppc architcture (although sisfb won't ever work
on ppc anyway). / X driver: Solve the "unresolved symbol" problem if the glx module wasn't loaded before the X driver
initializes. Solves Debian bug #254601 without configuration changes.
UPDATE (04/06/18) X driver and sisfb: Small fix to work-around broken BIOSes in some
ECS machines reporting an invalid panel size and thereby causing a driver crash.
UPDATE (04/06/19) SiSCtrl: Work around a bug in the RandR extension (might have lead
to X window errors when virtual screen larger than current display mode). sisfb: Build fix for 2.4.
UPDATE (04/06/20) X driver: Make LCD work correctly on ECS A900/901 again without the
need to set the option CenterLCD.
UPDATE (04/06/22) SiSCtrl: Work around a bug in gtk2 (menuitem child is NULL for some
reason)
NEWS (04/06/22) I proposed to Debian today to officially include SiSCtrl into the
Debian archive. However, the maintainer who picked it up wants at least three other Debian developers to vote in favor
of sisctrl before he actually uploads it. So if you are a Debian developer and want to see SiSCtrl in the Debian archive,
go to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=255713
and leave a note.
UPDATE (04/06/23) X driver: Use sane HorizSync/VertRefresh ranges in case the use didn't
specify them in the config file; this is only done if CRT2 is LCD or TV, or if CRT1 is LCD-via-CRT1.
UPDATE (04/06/26) X driver: Simplify display mode validation; automatically map user modes
to supported TV modes instead of deleting them at startup. This is a technical change without much to see. Reports on
eventual regressions welcome.
UPDATE (04/06/28) X driver: Fix small glitch in new mode validation code (User modes for
CRT1 lead to a server abort if CRT2 was disabled; attempted to support Sanyo PLV-Z2 which for some reason does not report
its full capabilities via DDC if in non-HDCP mode. Should be detected automatically and a built-in 1280x720 mode should be
added (untested).
UPDATE (04/06/29) X driver: Fix detection of non-standard size panels (got broke assumingly
when introducing hotlug support for LCD).
UPDATE (04/06/29) X driver: Get rid of the very last user complaining about "my LCD only
runs at 800x600 although it is a 1024x768 panel": The driver now overrules bogus (or missing) frequency ranges in the Monitor
section for LCD, LCD-via-CRT1 and TV. However, this is only done, if no CRT device (analog monitor) would be affected. Hence,
it is perfectly safe.
UPDATE (04/07/01) X driver: Small fix for 661/741/760 machines without a video bridge and
older BIOSes. Correct and working support for Sanyo PLV-Z2 confirmed; you may use "1280x720" in any case regardless of
HDCP or non-HDCP mode.
UPDATE (04/07/16) X driver: Fix for machines with 650/M650/740 and new BIOS data layout (eg.
Dell Inspirion 1000).
UPDATE (04/08/09) X driver: Add support for video bridges produced by UMC. / Add support for
using centered output on non-standard (custom) panels. / Fix driver for new BIOS layout. / Additional changes for current
X.org CVS (new RENDER hooks, etc. No need to update from here, current driver always in CVS).
UPDATE (04/08/11) X driver: Allow more LCD modes for SiS video bridges; if the driver doesn't
know how to scale these on CRT2, it won't do it and either paint a black border or send the native mode (depending on the
centerscreen setting and the hardware type). Updated 1280x720, 1280x768 and 1280x800 panel timing.
UPDATE (04/08/12) X driver: Adapt driver to the new mode numbers the new BIOSes use or will
use and provide internal translation. These are internal changes that should not affect visible operation unless anybody
is using the VESA framebuffer driver (which is discouraged anyway). Addendum: Added support for 960x600 for CRT1,
LCD and 1080i/HiVision (315/330 series only). UNTESTED for 1080i/HiVision!
UPDATE (04/08/14) X driver: Enhanced RENDER acceleration for 315/330 series by supporting
more operators (Clear, Src, Dst including Disjoint and Conjoint variants). This might be of (future) use for the Composite
extension (which currently is dead slow yet and crashes KDE frequently; I do not recommend using it yet). / Fix small bug in
Xv video code (all chipsets) which lead to allocating more video RAM than neccessary. Turns out the "size" for linear video memory is PIXELS, and not BYTES. I bet the person who wrote the radeon driver's RENDER acceleration didn't know that either.
UPDATE (04/08/20) X driver: Fixed support for 1280x800 TMDS panels such as used in the
Averatec 6200 Series. Note that these panels cannot be driven in the "Don't center" mode if scaling is disabled (thit is,
you must not set the option "CenterLCD" to "off" otherwise you get a black screen). - I think an update for sisfb is over-due...
UPDATE (04/08/20) SiSCtrl: Fixed RandR-related bug.
UPDATE (04/10/02) X driver: Loosen DDC data checks; don't bail out on (mostly wrongly) reported
"non RGB multicolor" display type and just print a warning instead. For Panasonic AE500 projectors and some VGA-to-DVI
adaptors.
UPDATE (04/10/03) X driver: For some mysterious reason, some of the tar's of yesterday's
version were empty. Sorry.
UPDATE (04/10/14) X driver: Fixed driver for SiS's crappy pre-release BIOSes which obviously
were released anyway (661 series). / Added support for Panasonic AE700 projector by adding specific 1280x720 50Hz and 60Hz modes (while the 60Hz mode is called "1280x720", the 50Hz mode is called "1280x720@50"; some further modes such as 1280x768 and 720x480/576 are added, too; see the X log for a list of automatically added modes). However, these modes are only for HDMI/DVI-D connections and although they work and are correctly recognized by the projector as 720p modes, they for some reason are over-scan. If somebody comes up with better Modelines for these modes, I'll check and eventuelly implement them. Currently, the Modeline for 1280x720 at 60Hz is 74.3 1280 1390 1430 1650 720 725 730 750, at 50Hz it's 74.3 1280 1680 1760 1980 720 721 723 750. The 60Hz modeline is standard; the 50Hz modeline uses 1/2 vertical syncs instead of the suggested 5/5, but it looks better on my projector as it's more centered. / Added binary for X.org 6.8.1 in the download section.
UPDATE (04/10/15) X driver: Fixed the following MergedFB mode problem: Different Merged modes, although consisting of different modes for CRT1 and CRT2, may look identical for the VidModExtension. This is due to the fact that the individual mode timing data is simply added to each other. For example, if you have two 1280x720 modes (one for 60Hz, one for 50Hz as when using a Panasonic AE700 projector) and you use Metamodes "1280x720-1280x720 1280x720-1280x720@50", SiSCtrl could not switch between those two as they looked identical for the VidModExtension (which always chose the first of these two). By supplying a sophisticated fake dotclock for the meta mode, this is now avoided. / Added a new feature for MergedFB mode: Previously, by supplying a meta mode consisting of only one mode (such as "MetaModes" "1280x720"; ie without "-" followed by another mode), the very same mode (identified by its name) was used for CRT1 and CRT2 and the display was cloned for CRT1 and CRT2. As of this version, you can also supply different modes for cloning CRT1 and CRT2: This is done by the "+"-sign instead of "-" in the meta mode's definition. For example: You have "1280x720" for 60Hz and "1280x720@50" for 50Hz. Let's pretend that "1280x720@50" is only supported for CRT1. Previously, if cloning was desired, you said "MetaModes" "1280x720" - but it was implossible to specify eg. 1280x720 (60Hz) for CRT1 and "1280x720@50" for CRT2. Now, simply say "1280x720+1280x720@50". This will produce a clone-metamode with the 60Hz mode for CRT1, and the 50Hz mode for CRT2. See here for more information on MergedFB mode.
UPDATE (04/10/22) X driver: Added a number of assembler optimized memory copy routines for
video data transfer, used for Xv and some other routines. This might speed up video on some machines, especially those with mobile chipsets (eg
M650). On most machines, this will have little effect. These routines are benchmarked during server start and the fastest
is chosen. If the option XvBenchmarkMemcpy [UPDATE: Renamed to "BenchmarkMemCpy"] is FALSE, the old behavior is restored (server-internal memcpy will be used). Note 1: This needs to be tested under *BSD systems as well; *BSD users, please compile the driver on your machine and give me some feedback on the benchmark results in the X log. Note 2: You need a new "Imakefile" for this version in case you want to compile the driver from source. Please read the updated installation instructions below.
UPDATE (04/10/27) X driver: Added further memcpy() optimizations; added AMD64 support. Is there anybody out there running X in pure 64bit mode using a SiS graphics card? Need a tester for this.
UPDATE (04/10/29) X driver: Fix for memcpy() acceleration on some pre-SSE AMD CPUs. Addendum: Since XFree86/X.org does not yet allow checking OS support for SSE, SSE-memcpy() is disabled unless you set the option XvSSECopy [UPDATE: Renamed to "UseSSE"] to "on". X.org 6.9.0 will support automatic detection (for which I committed code to X.org CVS today); the upcoming 6.8.2 will not yet contain this as the 6.8.2 release is for maintenance only.
UPDATE (04/10/30) X driver: Reordered acceleration initialisation in order to allow Xv if acceleration is disabled (eg due to ShadowFB being enabled).
UPDATE (04/11/11) X driver: Renamed options XvBenchmarkMemcpy to BenchmarkMemcpy, and XvSSECopy to UseSSE. / Fixed compilation for static X server. / Fixed crash if more than one SiS cards are being used at the same time. Successfully tested SiS6326 and SiS 315PRO/SiS Xabre in same box. / Enhanced the logic to overrule bogus frequency ranges in Monitor section(s) (Driver does not do this anymore if the panel delivered DDC data). It is now recommended to leave HorizSync and VertRefresh options entirely out. / Added 1152x864/60Hz built-in mode.
UPDATE (04/11/15) X driver: Fix compilation for X.org 6.7.0; make driver independent of vgaHW module; use /dev/port on Linux/MIPS and Linux/ARM instead of inX/outX macros (should make driver work on these systems).
UPDATE (04/11/16) X driver: Fix for NetVista 2179 (SiS301, old BIOS, panel size misdetected); use memcpy() methods according to a "grade" (experience rating) if video RAM does not suffice for benchmarking (SSE-MMX2-MMX-3DNow-builtin-libc).
UPDATE (04/11/18) X driver: Clean up (duplicate code removal, unused code removal, code beautification, etc); fix memory leak in VBE handling (only occured if deprecated "VESA" option was used); allow overclocking the 301/301B/302B video bridges (but beware that this might lead to hardware damage; the spec says 108MHz for LCD is maximum, driver will allow up to 130MHz but print a warning in the log if above 108MHz); speed-up for systems where the driver uses /dev/port instead of inX/outX (MIPS, ARM) by providing more specific macros.
UPDATE (04/11/18) sisfb: Sync mode switching code with X driver. Make it compile and work with >= 2.6.8.
UPDATE (04/11/23) X driver, sisfb: Code cleanup. (Remove sparse warnings from sisfb under 2.6.9).
UPDATE (04/11/29) X driver: Added separate gamma correction for CRT2. Previously, gamma correction could only
be enabled or disabled, but not set up separately for CRT1 and CRT2. From now on, the option CRT2Gamma not only accepts
a boolean value (such as "on" or "off"), but also one or three real numbers in the range from 0.1 to 10.0 for gamma correction. Additionally,
I added the options GammaBrightnessCRT2 and GammaPreBrightnessCRT2. These do the same as the old
options for brightness and pre-brightness, for CRT2, with one difference: It is not required to use SiSCtrl to set
brightness/pre-brightness. The driver can do this by itself. Updated SiSCtrl to support this. In the Gamma tab, there is now a checkbox
named "separate", which enables separate gamma correction for CRT1 and CRT2. You choose which one you want to set up by the radio buttons
beside the "separate" checkbox.
UPDATE (04/11/30) X driver: Fixed a "color-chaos" bug introduced yesterday. Sorry. Fixed CRTC setup for old
series. Sorry once again. / Added another MergedFB mode feature: Viewport-offset. This allows non-rectangular setups of the two "screen", such
as for physical configurations where the two display devices are not horizontally/vertically aligned. Documentation will follow tomorrow.
/ Simplified separate gamma setup for CRT2, documentation above updated.
UPDATE (04/12/03) X driver: Fix for low-resolution and doublescan Modelines (300/315/330 series). Removed
some left-over debug-logging from previous version.
UPDATE (04/12/06) X driver: Fix support for 1600x1200 panels with non-standard timing. Fix DGA in MergedFB
mode (do not pan in DGA mode, ie disregard PointerMoved() calls). Simplify set up of MergedFB mode with XFree86 4.3 or later (including X.org), the Modes named in the MetaModes option parameter do not need to be named in the Modes-section of the Screen section anymore. Addendum:
Refined overruling the frequency ranges for non-CRT devices in order to allow 640x400 and 320x200 (which will be listed as 70Hz modes but
actually run at 60Hz on LCD and TV).
UPDATE (04/12/15) X driver: A major cleanup and code size reduction. Now the driver calculates most of the
timing information from a minimum of data (instead of using huge tables as before). Users of LVDS machines (both 300 and 315/330 series) are
welcome to report any regressions (especially in 8bpp=256color mode). / Added interface for misc extension which will be used as soon as X.org
6.9.0 or XFree86 4.5 are released.
UPDATE (04/12/25) X driver: ATTENTION DEBIAN/UBUNTU USERS: I renamed the "sisxdriver" package to "x-driver-sis". sisxdriver is still available but it is only a transitional package that is basically empty. It is safe to remove it after today's update.
UPDATE (04/12/28) Installed a bulletin board here. Please read the board rules in the "Annoucements"-forum before posting.
UPDATE (04/12/30) SiSCtrl: Fixed some RandR-related problems (such as a crash if some other application changed
the desktop size behind SiSCtrl's back, and SiSCtrl being unable to change the desktop size a second time). Some new graphics and tooltips.
UPDATE (04/12/30) X driver: Fixed ShadowFB mode if using SSE for memory transfers. Added some further support
for SiSCtrl (not strictly required for current version). Prepare support for USB2VGA adapter (this will take some time yet).
UPDATE (04/12/31) SiSCtrl: Some further beautifications.
UPDATE (05/01/17) X driver: Order user given modes before the driver-default ones; let user force LCD despite secondary VGA connection detected. / Announcement: USB2VGA driver will be available soon.
UPDATE (05/01/19) X driver: Fixed a small bug for SiS630 based systems introduced recently. /
Added option ForcePanelRGB to overcome stupid BIOSes that report a RGB24 panel instead of RGB18.
UPDATE (05/01/21) X driver: Fixed typo in ForcePanelRGB option handling.
UPDATE (05/01/25) X driver: Work around a bug in DPMS handling in multi-head mode (DPMSSet called without
xf86EnableAccess()). / SiSCtrl: Fix compilation for older gcc versions. Add proper support for USB2VGA device and driver.
UPDATE (05/01/27) sisfb: Sync'ed mode switching code with X driver's version.
UPDATE (05/02/01) X driver: Fix fast memcpy for AMD64. This didn't even compile previously. Also, fix
mode restoring on AMD64 in pure64 mode. (Arch name "AMD64" was renamed to "amd64" a while back; I had missed that.)
|