[Savage40] Long-Standing Bug

Tim Roberts timr at probo.com
Tue Feb 1 09:17:52 PST 2005


Alex Deucher wrote:

>--- Tim Roberts <timr at probo.com> wrote:
>
>  
>
>>The problem happens when you try to display a gradient background
>>with a window manager.  When you do so, you see obvious striping in the
>>colors -- striping that you should not see at depth 24.  It looks as bad or 
>>worse than depth 16.
>>
>I looked into this a little this weekend, but I didn't have much luck. 
>It looks like the savages only have a 6 bit DAC, but I don't really see
>anything else that looks too out of place.  I did notice that lots of
>other drivers set a mem RAC for colormap setup, I don't know if the
>savages needs one too or not.  I've never really messed with the
>xf86colormap* stuff, so any pointers would be welcome.  Tim, do you
>have a old copy of savage_driver.c prior to the break?  I'd be curious
>to check it out.
>  
>

The Savages support a 6-bit CLUT mode for compatibility with the VGA, 
but it should be set to 8-bit CLUT mode for the modes we use.  The 6-bit 
mode uses the LOW-order 6-bits of the palette values; if that were set, 
the colors would be way too dim.

The attached zip contains my archive of 1.1.23t and 1.1.25t.  I believe 
the problem was introduced between those two.  There are two relevant 
changes: first, I set the number of palette bits to 8 instead of 6, but 
that only affects depth 8. Next, I set CMAP_PALETTED_TRUECOLOR when 
calling xf86HandleColormaps.  That turns on the xgamma extension and 
allows the colormap to be programmed.

I'm guessing that's the key, but you'd have to breakpoint in 
SavageLoadPalette to see what is going on.

-- 
- Tim Roberts, timr at probo.com
  Providenza & Boekelheide, Inc.



More information about the Savage40 mailing list