Long ago, it was possible to apply color profile with modesetting driver.
But it's not working now. (Stopped approximately after 1.19.0 release).
Bisecting points to the patch b4e46c04 (xfree86: Hook up colormaps and
RandR 1.2 gamma code v6). Applying color profile still works with intel
driver.
As far as I understand, it was working because there were fall-backs which
were removed by the patch b4e46c04. And now, since modesetting does not
provide LoadPalette method, fails. Fortunately, there is
drmmode_setup_colormap(), which in turn calls xf86HandleColormaps().
Patch below works on my machine. "xcalib -i -a" inverts colors as before.
Applying .icc file also changes colors as expected. But this colormap
handling surely has pitfalls. So I'm not sure. Is this a correct way to fix it?
---cut---
diff --git a/hw/xfree86/drivers/modesetting/driver.c
b/hw/xfree86/drivers/modesetting/driver.c
index 4d5c4e339..45a061efc 100644
--- a/hw/xfree86/drivers/modesetting/driver.c
+++ b/hw/xfree86/drivers/modesetting/driver.c
@@ -1669,7 +1669,7 @@ ScreenInit(ScreenPtr pScreen, int argc, char **argv)
if (!xf86CrtcScreenInit(pScreen))
return FALSE;
- if (!miCreateDefColormap(pScreen))
+ if (!drmmode_setup_colormap(pScreen, pScrn))
return FALSE;
xf86DPMSInit(pScreen, xf86DPMSSet, 0);
---cut---
---
Rinat
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel