modesetting: Adapt xf86HandleColorMaps() for > 24 color depth. (v2)
This retains old behavior for depths <= 24, but allows gamma table and colormap updates to work properly at depth 30. This needs the xf86Randr12CrtcComputeGamma() fix for depth 30 from a previous commit to work. Otherwise the server will work, but gamma table updates will silently fail, iow. the server would always run with a default identity gamma lut. v2: Simplify as proposed by Michel. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Reviewed-by: Antoine Martin <antoine@nagafix.co.uk> (v1)
This commit is contained in:
parent
b5f9fcd50a
commit
7bc86c7d23
|
@ -2262,13 +2262,17 @@ drmmode_load_palette(ScrnInfoPtr pScrn, int numColors,
|
|||
Bool
|
||||
drmmode_setup_colormap(ScreenPtr pScreen, ScrnInfoPtr pScrn)
|
||||
{
|
||||
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0, "Initializing kms color map\n");
|
||||
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0,
|
||||
"Initializing kms color map for depth %d, %d bpc.\n",
|
||||
pScrn->depth, pScrn->rgbBits);
|
||||
if (!miCreateDefColormap(pScreen))
|
||||
return FALSE;
|
||||
/* all radeons support 10 bit CLUTs */
|
||||
if (!xf86HandleColormaps(pScreen, 256, 10, drmmode_load_palette, NULL,
|
||||
CMAP_PALETTED_TRUECOLOR |
|
||||
CMAP_RELOAD_ON_MODE_SWITCH))
|
||||
|
||||
/* Adapt color map size and depth to color depth of screen. */
|
||||
if (!xf86HandleColormaps(pScreen, 1 << pScrn->rgbBits, 10,
|
||||
drmmode_load_palette, NULL,
|
||||
CMAP_PALETTED_TRUECOLOR |
|
||||
CMAP_RELOAD_ON_MODE_SWITCH))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue