-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add persistent mode #6
Comments
On Mon, 09 Dec 2013 13:24:28 -0800
Thank you for the report. Do you know how exactly these changes appear Regards, |
Ok, could you please tell what are the programs that corrupt your gamma table? nvidia-settings is one, what are the others? I'm searching for the best solution right now. While it is possible to restore gamma immediately after it's changed by a third party, this may interfere with Argyll's dispcal as dispcal does not interact with colord right now. It just changes the gamma table. Either you'll have to disable color correction by hand while using dispcal or I'll have to patch Argyll. I have to make sure that restoring gamma automagically does not harm existing software as nobody else does so. Regards, P.S. Are you familiar with C? Could you add a couple of extra printf() to see what's going on? |
It does, it dlsyms colordcompat.so at runtime.
I think just fixing the nvidia driver (i.e. by filing a bug upstream) is the best thing to do. GCM used to reapply the gamma table at resume and stuff like that, but it was easier just to fix things in the kernel. Richard. |
I also think that restoring "corrupted" gamma is a good idea anyway. Regards, |
@hughsie: Of course the actual problem is rooted more deeply, possibly within X. Even if nvidia fixed their settings program, other apps could still mess up the calibration. Among those are:
@agalakhov: And indeed, forcibly restoring calibration would break applications that actually have a business changing the color profile, such as dispwin. It's probably not that easy to figure out what to do in such a situation... Yes, I know C. What program would you like me to inspect? |
If you Inhibit() the colord device, when you Uninhibit() it the changes get put back to the correct levels. Patching wine and doom3 probably is the right thing to do, although I agree it would be an uphill struggle. Ideas welcome, although polling the display adaptor every few seconds is going to make people on laptops very unhappy. |
There is a event processing loop in xiccd in file randr-conn-private.c printf("event=%d\n", ev.xany.type - conn->event_base); and then try to run nvidia-settings or other broken program? I'm trying
I think only very few programs really deal with changing color profiles Regards, |
On Tue, 10 Dec 2013 07:42:30 -0800
Most likely it could be done via RandR events without polling. It Regards, |
Good evening. @agalakhov |
On Thu, 19 Dec 2013 09:51:01 -0800
That's correct. Profile changes aren't X events. Gamma ramp changes by Regards, |
Then I am afraid that nvidia-settings doesn't offer much in that regard. While it CAN do things that trigger these events, they DON'T trigger just by starting the tool, which is what resets the profile in the first place. If you have other ideas for detection, I'm willing to try them. I hope there is a way, as polling would be rather annoying. |
I just don't understand why the software may want to change the gamma If the software is changing just about everything including the |
any update? |
On my machine with nvidia graphics, the currently loaded profile gets reset at most opportunities, such as opening nvidia-settings, changing resolution, launching certain programs which muck with the gamma, etc. Afterwards, I am stuck with the default profile.
xiccd could use a mode which detects these changes and reloads the colord profile. Currently I'm using a cludge with a script that calls xcalib every 3 seconds...
The text was updated successfully, but these errors were encountered: