[haiku-development] Re: ATI Video Driver Source Code

  • From: Gerald Zajac <zajacg@xxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 15 Jun 2009 12:49:13 -0400

Axel Dörfler wrote:
Cian Duffy <myob87@xxxxxxxxx> wrote:
For the Mobility (laptop) chips where the laptop LCD display is active, the ATI driver uses the VESA mode list that the Boot Manager sets up. This is the same mode list that the VESA driver uses, and the ATI driver uses mostly the same code to set the mode for the Mobility chips when the LCD display is active.. Were you able to select 1400x1050 before the ATI driver became part of Haiku? That is, were you able to select 1400x1050 with the VESA
driver?
VESA never offered me this mode either - is there a possibility that
the boot manager doesn't know of this resolution or the VESA BIOS
isn't reporting it properly?

Exactly, that's why using VESA modes only is always a bit problematic for LCD users. Unfortunately, switching the digital output mode is often done differently than the CRT one.


1400x1050 is the only mode that is a problem with the ATI driver. All the other VESA modes listed in the beginning of the syslog for my Thinkpad A22p are listed in the Screen Preferences and can be set. Although 1400x1050 is in the list of VESA modes listed in the beginning of the syslog, why is 1400x1050 not in the list of modes when the boot info is obtained by the driver? Also why is 1400x1050 not in the list of video modes in the boot menu?

Switching modes is certainly done differently if an external monitor is connected to a laptop computer and it is the active display. This works fine in the ATI driver, and the VESA code is not used for switching modes when the external monitor is the active display.

Before using the VESA code to switch modes, the Mach64 Mobility chips had a few problems, but general worked reasonably well; however, the Rage128 Mobility chips were a real PITA. Setting the mode to the native resolution of the LCD display generally worked okay; however, setting it to a lesser mode would cause the display to flicker, artifacts and/or noise to displayed, or the display would go blank.

I would have preferred not using the VESA code to set modes in the ATI driver, but, after messing around with the Rage128 Mobility (laptop) chips for sometime and not making any progress with getting them to work properly with the laptop LCD display, I decided to set the mode the way the VESA driver does since it did a much better job of switching modes on the Mobility chips. Part of the problem is probably the design of the ATI chips. When I did the S3 video driver, there was almost no difference in the code whether or not a laptop LCD display was active. In that respect, the S3 chips were a better design.

Best regards,
Gerald



Other related posts: