[haiku-development] Re: Proposed Change to Common Accelerant for EDID

Gerald Zajac <zajacg@xxxxxxxxxxxxx> wrote:
> > [...]
> After further thought, I have come to the conclusion that 1152x864 is 
> the only resolution that has a problem.  After examining the EDID 
> info 
> from 7 monitors, it was found that 6 of the monitors had only one 
> EDID 
> entry for 1152x864 and the refresh rate was always 75Hz.  The one 
> exception was an older CRT monitor which had no 1152x864 entry.
> 
> The resulting mode list from this EDID info will contain only one 
> entry 
> for 1152x864 which will have a refresh rate of 75Hz;  thus, for any 
> refresh rate < 75Hz (eg, 60, 70 or 72Hz), the Screen Preferences 
> computes the pixel clock from the 75Hz entry.  This causes some 
> problems 
> with the LCD monitors where the testing was performed.  When the mode 
> was set to 1152x864 with a refresh rate of 70 or 72Hz, the display 
> would 
> be offset to the right about 10-20 cm and auto-adjust would not 
> recenter 
> the display.  This occurred with ATI (Mach64 & Rage128) and S3 chips.  
> Futhermore, there are some problems at 60Hz where displays from some 
> of 
> the Mach64 chips had some flickering and/or ripples.
> 
> If the entries from the Common Accelerant base mode list for 
> 1152x864x60Hz and 1152x864@70Hz are added to the constructed mode 
> list, 
> the above problems do not occur. Thus, I'm proposing to modify the 
> Common Accelerant such that when EDID info is used to build a mode 
> list, 
> it checks the 1152x864 entries in the resulting mode list.  If the 
> mode 
> list contains one or more 1152x864 entries, and these entries have 
> refresh rates >= 75Hz, entries for 1152x864x60Hz and 1152x864x70Hz 
> will 
> be added to the mode list.

That doesn't really sound like a good solution to me; at least it seems 
to be a work-around for a broken mode generator/tweaker.
Can't we add a function (to the common accelerant code) that just 
generates good modes? So that we would only need to call that one from 
propose_mode() with info about the restrictions of the graphics card?

Bye,
   Axel.


Other related posts: