xfree86/modes: Handle no palette case better in xf86RandR12CrtcSetGamma
Just use the RandR gamma ramp directly. Fixes random on-monitor colours with drivers which don't call xf86HandleColormaps, e.g. modesetting. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97154 Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
d3d4ff0ed4
commit
a446ff84de
|
@ -1310,9 +1310,17 @@ xf86RandR12CrtcSetGamma(ScreenPtr pScreen, RRCrtcPtr randr_crtc)
|
||||||
|
|
||||||
if (randrp->palette_size) {
|
if (randrp->palette_size) {
|
||||||
xf86RandR12CrtcComputeGamma(pScreen, randr_crtc);
|
xf86RandR12CrtcComputeGamma(pScreen, randr_crtc);
|
||||||
xf86RandR12CrtcReloadGamma(randr_crtc);
|
} else {
|
||||||
|
memcpy(crtc->gamma_red, randr_crtc->gammaRed,
|
||||||
|
crtc->gamma_size * sizeof(crtc->gamma_red[0]));
|
||||||
|
memcpy(crtc->gamma_green, randr_crtc->gammaGreen,
|
||||||
|
crtc->gamma_size * sizeof(crtc->gamma_green[0]));
|
||||||
|
memcpy(crtc->gamma_blue, randr_crtc->gammaBlue,
|
||||||
|
crtc->gamma_size * sizeof(crtc->gamma_blue[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xf86RandR12CrtcReloadGamma(randr_crtc);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue