Crashes when using with f.lux
I've used NegativeScreen and f.lux together in the past without issue. It appears that an update to f.lux now is causing a conflict with NegativeScreen. I have not yet tried uninstalling f.lux and installing an older version of f.lux to confirm this yet though. It might be that I am now using the "expanded" color range within f.lux, where I was not before, but have not confirmed this to be causing the issue. I'm using an NVIDIA GTX 680 for monitors 1-2, and am also using a few USB based DisplayPort video adapters for monitors 3-6, which might further be causing complications. I use this registry key to allow DisplayPort to play well with GreenShot (screen capture tool). I mention it, as perhaps it putting the PC into a mode that is causing the issue: [HKEY_LOCAL_MACHINE\SOFTWARE\DisplayLink\Core] "EnableGammaRamp"="true"
Anyhow, I am hoping that you will be able to install f.lux so you can reproduce this issue first hand, and possibly make a change to NegativeScreen so the two can play well together again. I use f.lux for preventing headaches, and when it's not enough, I toggle my screen colors with NegativeScreen, which always seems to make my head feel better. Thanks again for creating this tool!
Below is the error message I'm getting when I try toggling NegativeScreen with f.lux already tweaking my colors:
Sorry, I'm bailing out!
System.Exception: An error occured while applying a color effect. Another application using the same API might be interfering... ---> System.Exception: SetMagnificationDesktopColorEffect() ---> System.ArgumentException: Value does not fall within the expected range.
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at NegativeScreen.BuiltinMatrices.ChangeColorEffect(Single[,] matrix)
at NegativeScreen.BuiltinMatrices.InterpolateColorEffect(Single[,] fromMatrix, Single[,] toMatrix, Int32 timeBetweenFrames)
at NegativeScreen.OverlayManager.ControlLoop()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
OK
Mmh, strange. I use f.lux on a daily (well, nightly) basis, and I didn't notice any problem with NegativeScreen. Which version of f.lux do you use? Mine is at 4.76, and I also have the expanded color range enabled.
- The problem only appears when f.lux is started alongside NegativeScreen? If you kill it (disable it, or preferably end its process), does NegativeScreen work?
- Which version of Windows do you use?
- Can you try to use the Windows Magnifier to invert the colors? It works basically the same as NegativeScreen so if it does not work I will know there is little chance I can help you. If it does work while NegativeScreen doesn't, that's an actual bug for me. :)
The problem only appears when f.lux is started alongside NegativeScreen. If I kill f.lux, functionality of NegativeScreen returns.
I'm using Windows 10 x64 1803 (build 17134.228) f.lux ver 4.76
With f.lux open, Windows Magnifier does nothing. I hit Winkey+"+" to bring up Magnifier, then click the "gear" icon to bring up settings. I can then click the checkbox, or click Ctrl+Alt+I to toggle the "Invert colors", which I see checks and unchecks the checkbox for "Invert Colors". Nothing happens to my screen when f.lux is running and I toggle colors using Windows Magnifier. However, if I exit f.lux, Ctrl+Alt+I toggles the colors without issue. Perhaps I need to open an issue on the f.lux forum to further troubleshoot. I should also try removing the EnableGammaRamp registry key and doing a reboot and try again. I'll try this over the weekend and report back. I could also unplug all my DisplayLink monitors to see if the issue follows them, and perhaps try an older DisplayLink driver.
And just for fun, I tried NegativeScreen-custom-multi-monitor.exe. The issue is not present in this version of NegativeScreen, but I know that code base is entirely different, (but very cool to have multi-monitor control of NegativeScreen on a per monitor basis). I'm not going to use that as a solution, as performance across 6 monitors is a bit laggy, and there's not way to exit other than killing the process.
I forgot to mention that I do not need to exit f.lux to get NegativeScreen and Windows Magnifier's "Invert Colors" to work. I only need to disable f.lux (using Alt+End to disable for an hour).
The zoom portion of Windows Magnifier continues to work regardless of whether f.lux is enabled or disabled. It is only the "Invert Colors" feature that fails to work (just like NegativeScreen's behavior, only without a crash message).
It appears to be a bug in f.lux. I found a similar issue already posted in the f.lux forums: Inverting Color Selection with Windows Magnifier Doesn't work anymore
Interesting. Especially the part where the multi monitor version of NegativeScreen works, but not the normal one. It's not the same code but the underlying api is supposed to be the same!
It seems there is indeed a bug either in f.lux, or in the Windows Magnifier apis...
I'm afraid I can't do anything from withing NegativeScreen to fix the problem. Sorry.
(BTW, are you using the latest version of NegativeScreen? I'm pretty sure the crash you are experiencing has been fixed (It does not work but it does not crash))
I was using Negative 2.4. I've upgrade to 2.5, and how it no longer crashes when f.lux is enabled, but still doesn't work either.
One interesting thing I thought I'd share is that when I launch NegativeScreen-custom-multi-monitor.exe I see my video driver pop up an overlay that says "Press alt+z to use GeForce experience in-game overlay". I do not see this popup when using Negative 2.4 or 2.5. I also just figured out that Win+Alt+N and Win+Alt+H work with NegativeScreen-custom-multi-monitor.exe, so perhaps I'll be using it more.
The GeForce in-game overlay reminded me that I disabled Windows 10's "Game Bar" (under Settings > Gaming > Game Bar) due to it thinking that a hard drive search tool that I use (called Everything by VoidTools) was a game. The Game Bar pretty much killed the performance of some elements of my OS (ie: Windows Explorer) until I disabled it. Now I can use my favorite drive index tool again, but I'm wondering if perhaps having the Game Bar disabled, or having the Everything service running might be causing the issue. I've also got Skype for Business and the Twitch client running both of which can do video capturing of the screen. My system is also telling me there's a new video driver available to install. Perhaps I'll install just the base driver without the GeForce gaming extras. It looks like I've got a few things to isolate root cause. Perhaps I'll start by posting to the f.lux forum first, then do all these items that require rebooting over the weekend.