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

Reply via email to