Post Reply

Forums -> UltraMon™ -> Windows 7 - Applying a profile that disables the primary monitor and makes a second [previously disabled] monitor primary breaks all profiles
Mikey   2009-08-20 09:03
Short Version: When applying a profile that BOTH switches the primary monitor AND disconnects the current primary monitor, the profile does nothing. Furthermore once in this state, all profiles no longer work until the monitor is re-enabled in the normal Windows 7 Resolution screen.

------
Details:

I have two monitors on video-card 1 and a 1080 plasma on card 2.

Running Windows 7 (x64 both RC and RTM)...

Generally I setup my profiles to "single monitor" "two-monitors," "plasma only," etc..

This only happens in Windows 7 and has been occurring in both 3.0.6 and 3.0.7. (I am running a dual-boot system and the Vista partition runs fine. In addition, changing something in the normal Windows resolution screen resolves the "profile broken" state.)

Reproduction Steps (I am a Software Engineer ;)

1) Start with a system with two or more monitors on Windows 7. (Let's call it Monitor 1 and Monitor 2)

2) Create a Display Profile A:
Primary: Monitor 1
Extended: Monitor 2

3) Create another Display Profile B:
Primary Monitor 1
[Monitor 2 Disconnected]

--Verify That you can switch between both profiles without trouble.

5) Add another profile:
Primary: Monitor 2
Extended: Monitor 1

--Verify that everything is still peachy

6) Add another profile C (but do not apply it yet:)
Primary: Monitor 2
[Monitor 1 Disconnected]

7) Apply Profile B (Monitor 1 Only)

8) Apply Profile C.

--Verify that NOTHING happens. Furthermore ALL display profiles no longer work.

--Verify that going into "Screen Resolution" and re-enabling monitor 2 puts the system back to normal state.

--Verify that ALL other combination work; I think the key is that Ultramon does not like switching to a primary monitor that is currently disconnected.

I hope this helps. I took the time because I LOVE this app!!!

MikeY

MikeY
Christian Studer   2009-08-21 08:33
When this happens, does Display Properties show different monitor numbers than UltraMon menu > Display Settings?

Christian Studer - www.realtimesoft.com
Mikey   2009-08-21 13:51
Hi there!

First, to answer your question, regardless of if Ultramon is in a normal state or in the "profile dead" state, the:

Ultramon->Display Settings
Windows 7->Display->Screen Resolution
and
NVidia Control Panel (v2.7.130.16)

Always correctly show the [correct] current configuration. In fact, if I apply the profile while the last two screens are *open* they correctly update themselves.

Unfortunately, while that reproduction scenario in my last post is correct, I spent most of the night [finally] configuring Windows 7 to be my primary partition, and unfortunately I do not think I found the exact culprit scenario. As a [recently laid-off :( ] software engineer, I enjoy trying to isolate problems, so I kept notes...

For instance, just now I was in the living room watching a BluRay on "ProfilePlasmaOnly" and without thinking about it I hit the "DualOfficeMonitorsProfile" hotkey on my terminal to fire up my office monitors...it worked. If my hypothesis was correct, it should not have worked since the profile correctly re-enabled a disabled monitor, set it to primary, and disabled the current one.

Sine Ultramon otherwise works so amazingly well with Windows 7 I assume you have been working with the OS a lot?

I ask because I have seen this behavior since the Beta Builds. I just did not report it thinking it was a MS Beta-bug or something so obvious that there should have been hundreds of forum posts on it.

My best line of thinking:

Without Ultramon [or with it in profile-bad mode], it is a pain in the arse to do this without Ultramon profiles. (MUCH moreso than Vista or XP!)

When I am done typing and return to finish my BluRay, since the profile again failed I will have to:
1) Open the standard "Screen Resolution" in Windows 7

2)Click on my disconnected plasma, and select "extend desktop to this display" ...At that point a warning comes up saying you cannot do anything else without hitting "Apply" ! (This is new!)

3) Once I hit Apply, all screens shut off for about 10 seconds, then turn back on with the "you have 12 seconds to revert" dialog.

4) I then have to click on the plasma, set it as the main display, hit apply, and run over to the living room, grab my "Wii" air-mouse, and click "keep changes" with about 2 seconds to spare.

5) Then I have to go back and disable the other two monitors back in the office.

First off, simply hitting a hotkey->Ultramon Profile instead is one of the many reasons why I LOVE Ultramon (and why I am taking this much effort to resolve this!) But the manual process was not nearly as bad prior to Windows 7. (And they always worked! ...With the "You must hit apply before continuing" warnings, I am amazed you were able to make these profiles work at all in Win7!)

I apologize for being long-winded, but I wrote all that to ask:

a) Do you, or anyone else, see this behavior?
b) Could some sort of order-of-operations with these extra steps be causing these problems? (I am assuming you are not using automation to click buttons ;)
c) Since it works for everything but my plasma, could it just be a delay issue in the method that does this fun?

LOL I could have possibly just written that last sentence instead of this entire post!

Oh and one final thing. Remember I said there were multi-second delays when changing these configurations? If I hit a profile and it is not going to work, I can tell *instantly* ...Nothing Happens. Then I can hit every other profile and it immediately ends without even a flicker of the cursor. It seems like an exception is being swallowed extremely early in the code...

Thanks for your time, and please let me know if I can help further. (Remember, I can understand much deep in the code-layer. I have "real" experience with low-level C++/ATL/MFC/message pumps etc in addition to managed code, which I assume you needed to make this magicapp.. ;)

MikeY
Mikey   2009-08-21 15:14
I think I found the scenario!!!!

I went through how I would manually perform the tasks in the NVidia Control Panel (just like I wrote-out on the last post.)

It has to do with the ORDER of the operations and the display Identification NUMBER and an error thrown manually in the NVidia Control Panel!

[Incidentally I think I found the bug you were inferring by your question. This is actually unrelated; Ultramon id numbers are always in sync with this problem...]

For instance, I have Monitors 1, 2, 3
[Lets use a nomenclature Prof1and23 to refer to a profile with primary monitor 1, and secondary monitors 2 and 3..]

Here are the tests I ran, think about a loop going down the monitors in order applying the changes...

"!!!" means it does not work and breaks all profiles until you're out of that state.

"====>" means the profile was correctly applied

Prof1 ==!!!==> Prof2
Prof2 ==!!!==> Prof3
Prof1 ==!!!==> Prof3
BUT!
Prof2 =======> Prof1
Prof3 =======> Prof2
Prof2 =======> Prof1

Basically when talking single monitors it looks like the code is looping sequentially. Try it in the Control Panel, since the first step in moving from Monitor 1 only to Monitor 2 only is to Disable Monitor 1, NVidia throws an error saying "One Display Must be Active!" and will not let you do it! (it is even greyed out!) *That* I believe is what is breaking.

But if the monitor your enabling comes *first* then when the loop gets to the last monitor it passes the check for at least one monitor.

Therefore think about it...I verified that this is also inevitable:
Prof1 ==!!!==> Prof3
Prof1And2 ==!!!==> Prof3
Prof1And23 =======> Prof3
Prof3 =======> Prof1And2
Prof3 =======> Prof1And23

Do you see why? In the first case, "3" is already enabled, thus NVidia does not stop you from disabling 2. But if not...

{I went through several more permutations and the pattern matches...}

So THAT is why I was able to go to my Plasma 3->Office (1 and 2) but I could never get to the Plasma unless I already had all three monitors working! :)

So either keep track of how many are enabled while iterating or squash the error!

{LOL Sorry I'd write code samples but I have not installed Visual Studio and Resharper on this new Windows 7 partition! ;) }

Of course I am simplifying matters. I simply think that the NVidia Control Panel/drivers prior to the Windows 7 one did not throw this error...)

This is assuming correct monitor identifiers; I'm not touching that problem! ;)

LOL darn I need a job! :) ...Is anyone in the Chicagoland area hiring? (Heh although it's true I am just joking... how sad am I on a Friday night writing fake code to someone who has probably already figured out the problem?)

Thanks for bearing with me. I hope beyone hope that this helps...

MikeY
Christian Studer   2009-08-23 09:28
Thanks for the information, I've been able to reproduce the issue. Will look into this for the next release.

Christian Studer - www.realtimesoft.com
AKS   2010-01-20 01:57
I have the same problem - V3.0.9 RC on Windows 7 Professional 64 (had no problems on Vista Ultimate 64)

Monitor 1 Radeon X1900 Series
Monitor 2 RADEON X850 XT Platinum Edition
Monitor 3 Radeon X1900 Series
Monitor 4 RADEON X850 XT Platinum Edition

Profile Work: All monitors connected - monitor 2 is primary

Profile Game: Only monitor 3 connected and primary

When i to switch to profile "Game" monitor 1 and 4 get disconnected, 2 stays primary and connected.


Regards
AKS
Christian Studer   2010-01-20 08:42
AKS, this works fine for me with 3.0.9, I have two Nvidia cards though.

Make sure you have the latest drivers for the video cards. Let me know if that doesn't fix the problem, I could send you a debug version which outputs diagnostic information in case something goes wrong with the display settings change.

Christian Studer - www.realtimesoft.com
AKS   2010-01-21 05:58
Hi Christian,

i installed Windows 7 last week - with the latest Catalyst drivers i found (version 8.593.100.0 - 29.09.2009).

Regards
AKS
Christian Studer   2010-01-21 09:06
I just installed an ATI card for testing, but so far couldn't reproduce the issue. The ATI card is driving a TV via HDMI, and an Nvidia card handles the two other monitors. Setting the TV as primary and only monitor works fine. Driver version is 9.12.

If you're interested in installing the debug version let me know, you would also need to be able to have a debug monitor like DebugView running.

Christian Studer - www.realtimesoft.com
DiamondTear   2010-01-23 09:31
I'm using nvidia GTX 285 with 195.62 drivers on win7 x64. I cannot changed between my TV-only and Monitor-only profiles (which is the only reason I'm using ultramon). Wasn't this supposed to be fixed in 3.0.9?
Christian Studer   2010-01-24 09:44
This works fine for me with 3.0.9, what happens if you apply one of the profiles?

Christian Studer - www.realtimesoft.com
DiamondTear   2010-01-25 02:58
After the first time, nothing. Just like in 3.0.7. I have two screens, one connected to the card with DMI-DMI and the other with DMI-HDMI.
Christian Studer   2010-01-25 07:55
Would you be interested in installing a debug version for further testing? You would also need to be able to have a debug monitor like DebugView running.

If you'd like to do this, please send me a mail to support@realtimesoft.com.

Christian Studer - www.realtimesoft.com
Forums -> UltraMon™ -> Windows 7 - Applying a profile that disables the primary monitor and makes a second [previously disabled] monitor primary breaks all profiles

Post Reply