[haiku-development] Re: S3 Video Driver

  • From: Gerald Zajac <zajacg@xxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Tue, 20 May 2008 19:29:48 -0400

Hi Axel,

Axel Dörfler wrote:
Hi Gerald,

Gerald Zajac <zajacg@xxxxxxxxxxxxx> wrote:
The list of chips supported by this driver is:

That's an impressive list! Thanks a lot!
I've added the new driver to the repository in r25583. I just had to add a <errno.h> include in accel.c to make it compile under Haiku.
Thanks for adding it to the repository.
1) With the Virge VX chip, the hardware cursor disappears when the resolution is set to 640 x 480. Since Haiku uses a software cursor, this is only a problem for BeOS and Zeta.

Haiku will get a hardware cursor, too, one day. Maybe it could disable the hardware cursor for this resolution? Or are you already doing that? If that's not possible with BeOS (I'm not sure right now), we can easily change that for Haiku, though.
I looked into disabling the hardware cursor for that resolution, but Zeta does not obtain the pointers to the cursor functions when switching video modes; thus, I decided to leave it as is. I did not check BeOS, but I assume it does the same thing. Of course there might also be a bit in a register somewhere that will enable the hardware cursor at that resolution, but it might be like finding a needle in a haystack.
2) The Savage 3D and Savage MX chips perform rather poorly. In fact most of the Trio and Virge chips perform better. If the Savage 3D is stressed, it sometimes locks up.

Poor performance is acceptable, locking up doesn't sound too good, though. Do you have any idea what could be causing this? Do other platforms like Linux suffer from similar problems?
Judging from what I have read, there were very few video cards that used the Savage 3D chip because of the problems associated with it. It was succeeded by the Savage 4 which is a much better chip. I have also been able to hang the chip using Erdi Chen's old BeSavage driver. My code is adapted from the X.org Savage driver, and is quite different from his code. Thus, I think it is a problem in the hardware. By stressing the Savage 3D, I mean taking a BeShisen window full of bitmaps or the Kaleidoscope demo program from BeOS R4.5, and rapidly moving the window around the screen for a while. If the possibility the Savage 3D hanging is a concern, I suggest that we do not support it either by removing or commenting out the two lines for these chips in the S3_ChipTable in driver.cpp.

Best regards,
Gerald


Other related posts: