--- Operating System, Graphics card ---
Windows Ultimate 7 x64, GTX 580 3Gb x2
--- Blender version with error, and version that worked ---
2.66a x64, worked in 2.65 x64
--- Short description of error ---
Until today, Blender always opens in my 2nd monitor but just after worked with 2 instances of Blender, Blender now always opens on my third monitor.
--- Steps for others to reproduce the error (preferably based on attached .blend file) ---
To make it clear : I have 3 monitors, 2, each one on one of the 2 GTX 580 (as 1st and 2nd monitor) and 1 on an USB graphic adapter (as third monitor).
So, by copying the startup.blend from 2.65 folder in the 2.66 folder, Blender opens in my 2nd monitor as expected BUT if I save the startup file using CTRL + U in Blender 2.66a and want to open Blender again, it opens in my third monitor. So, the only way to keep Blender opening in my 2nd monitor and change the startup file is to using Blender 2.65.
If instead of using CTRL + U to save the startup file, I use CTRL + S, Blender opens in my first monitor ?!
It drives me crazy as it works perfectly until now. The only thing that I can do is to save the startup file but unfortunatly, I don't remember if I did it this morning or few days ago (I did many things between the work on Blender and searching the reason why it suddenly stopped to work that I forgot if I did a save for startup file) .
Anyway, I let you the startup file from Blender 2.65 and the same saved in 2.66a.
--- Operating System, Graphics card ---
Tested with r56284, on XP.
I tried the following, and all worked perfectly...
- Starting with factory settings, making a window in second and third screens, saving file, reloading blender with factory settings, reloading the saved file.
- same as above... but maximize both windows before saving to a file.
- Starting blender with factory settings, making 2 windows in the second and third monitors, then saving user defaults.
@Emmanuel, could you try test with a recent build?
@Ton, how are window coords not saved correctly?
@Emmanuel, Its just hard to fix bugs if a developer can't redo, I took the time to setup 3 monitors but its on Windows XP, so perhaps some difference to Windows7?
From your startup blend: http://www.pasteall.org/blend/21009 - this does load with 2 windows on one monitor, but when I move this onto the 3rd. save user defaults and restart - it loads on 3 monitors as expected.
Tried 2 other configurations but both worked ok.
- reversed monitor order, had 1,2,3 - reversed to 3,2,1 so primary screen was last.
- tried moving the blender icon to another monitor in case the screen you start blender from matters.
I understand that my setup is not usual. I don't know how startup file "knows" where window should be opened but as it worked in 2.65, can't you find what changed between 2.65 and 2.66 that could make this happen ?
I just wish that only one window of Blender to be opened in the monitor I want. I'm stuck with my 2.65 config and can't change it :(.
Hmm... where does Blender store the Window Positioning information?
If someone could lead me to the portion of code I could have a look into this.
I had similar problems with window placement in other projects recently.
All I can tell after testing this is that Blender seems to work "as intended" I can not redo this bug on my system.
I tested this on my Dell CAD workstation with Win 7 and 3 Monitors on one Graphics card. Unfortunately I don't have a USB display adapter to test this.
As far as I can tell there is no logic error within Blender's handling of window positions. The window position is stored correctly within the startup .blend and is read correctly.
The code within blender that restores windows from the blend files is quite simple and could be improved for Windows but I fear this would break some things regarding portability. Win32 API in Vista,7 and 8 has a great deal of APIs for working with multiple monitors.
I just tried with 2.69 but it doesn't work for me, Blender appears in my USB monitor (seen by Windows as my third monitor) instead of my 2nd monitor (where Blender is when I save Startup file).
The issue reported can't be reproduced so far, and has been moved to the BF Blender: Unconfirmed project.
If 2 other people aren't able to redo the bug after 2 weeks, it will be closed.
We appreciate the effort that goes into making bug reports, but to be able to fix bugs we have to be able to redo them.
If there is anything you can provide to help others to reproduce the problem, be sure to include it.
I ran into a simular problem with a multi monitor setup.
Using Blender 2.71
Monitors were setup so that top monitor straddles two lower monitors.
monitor 3 monitor 1
Default setting works fine.
Save a Startup Setting that has window at full screen.
The next time you open Blender it will appear full screen on monitor 2.
If you make the window less then full screen then it will appear on Monitor 1.
If you reposition Monitor 2 so it does not overlap then, Blender will open full screen on monitor 1.
monitor 3 &1 are 1080
monitor 2 is 1024x768
If you stack the 2 1080 one on top of the other no overlap with mon2
Open Blender. Every thing is ok. Save the Startup Settings at full screen.
Close and open Blender.
Blender will crash to desktop.
The two 1080 monitors are on separate video cards.
It appears that if the monitor are on the same video card then windows treats them as a single surface and for purposes of resizing will use the top surface.
I am not sure what logic windows is using for it assignments. It appears that the top monitor has priority.
The crash when on separate video cards is a problem. All it takes is a small overlap.
Not sure if my ascii graphics of the screen position will come out right. They are looking a bit funny in the post preview.
One crash when monitor on different video cards are stacked on top of each other or have any surface in common when stacked.
Annoying feature of Blender not starting on the expected monitor.
Workaround, don't stack monitors on top of each other. This prevents the crash or the annoying behaviour.
Hope this is useful information.
Another variation of the above.
Each monitor is on a different video card. Side by side.
mon1 is the main display.
Default everything works fine.
Move Blender to second monitor.
Save a Startup Setting and exist.
Blender crashes to desktop when you start it.
Workaround, don't move Blender to the second monitor and save a startup settings or make mon2 the main display.
Looks like you need to keep blender to one physical video card to make any startup file that will work.
video cards were a ati 7800 and on board intel 4000.
Is there any word on fixing this bug yet?
It is still happening to me in Blender 2.74.
There are no workarounds that work for me.
No matter what, after installing and launching Blender it starts on the correct monitor.
But after saving prefs and relaunching it always jumps to the monitor of a 2nd video card.
Because of this i have to move Blender back to the main monitor, ever, single, relaunch.
Seems like such a simple dumb problem for such an amazing piece of software.
It seems no developers can redo the error (I tested as mentioned above and Blender worked properly),
Moving this to TODO. - http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Install-OS#Windows
I'm encountering the same issue, have been for some time. Was going to submit a bug report but decided to do a search first and found this. Noticed it wasn't some weird monitor enumeration issue when trying the 2.68RC; it opened on my #1 (as determined by Win10) monitor. As soon as I copied my previous settings, every subsequent time it opened on my #2 monitor. After some troubleshooting I discovered that saving a startup file did it. Steps (for me) to reproduce:
- Delete config folder in current version folder in %userapps% directory
- Open Blender (opens on primary monitor)
- Ctrl-U, confirm save startup file.
- Close and re-open Blender (opens on secondary monitor).
Windows 10 (fully patched)
GTX 980Ti, latest Nvidia drivers, primary and secondary monitors both running off of this card
Blender 2.78 release
I've been experiencing this issue for over a year; in the intervening time I've built a new computer and upgraded to Win 10.
Hope this helps if anyone ever gets back to this.
Hi all, I would like to know if there are news about it cause there are a lot of things in 2.78 that can't be done in 2.65 so it becomes hard to me to have a useful startup file :( ?
There is no way to bring back how screen positions were saved in startup file in 2.65 ?
Hi, perhaps a clue if someone follows this : I changed the way I plug my monitors. Now, the 3 monitors are on the same graphic card (GTX 1060 6Gb). Blender always opens in the monitor that Windows 10 Pro x64 recognizes as the monitor "3" (whether I saved Startup file with Blender opened in monitor 1, 2 or 3). It was the same when this monitor was plugged in USB so it doesn't come from the way monitors are plugged.
I hope it will be fixed in a 2.79x release and not 2.8 :(. As I wrote, it's very frustrating to not have the ability to customize the startup file regarding all the new features.
I did further investigations to help understand what happens.
Here are different cases :
- if I save startup.blend with Blender opened in fullscreen (Alt + F11) or maximized window (i.e with the square at the left of the "X" to close window) in monitor 1, 2 or 3, regardless the monitor I chose when saving the startup.blend, Blender opens next time in fullscreen or maximized window in monitor 3
- if I save startup.blend with Blender opened whether at the half right of monitor 1 or half left of monitor 2 by dragging the window of Blender at the right or the left and "touch" the edge of the screen so Windows 10 put the window of Blender at half size, Blender opens next time at half size but in the right monitor !
- in other cases, like just stretch the right half size window of Blender to the left by few pixels in monitor 1, Blender opens not in fullscreen in monitor 3
My monitors are like this in Windows 10 x64 :
I tried this :
- 2 1 3 : Blender opens in the monitor 1 where I want Blender to be after I saved startup.blend with Blender maximized in monitor 1
- 3 2 1 : works the same as above without saving startup.blend again
- 2 3 1 : works, but I have to save startup.blend again with Blender maximized in monitor 1
It even works when monitor 3 is below monitor 1 and 2...
If I put my config again with monitor 3 above, using the previous saved startup.blend, it opens in monitor 1 but if I saved startup.blend again with Blender maximized in monitor 1, it opens next time in monitor 3 as described before. If I put the monitor 3 below without changing startup.blend, it opens on monitor 1.
Looks like this is caused by Win32 clamping windows bounds based on the default monitor.
Try remove clamping of these lines to see if it resolves: https://developer.blender.org/diffusion/B/browse/blender2.8/intern/ghost/intern/GHOST_WindowWin32.cpp;f84448d4a0019375cf01e52f3320846a98e8f2e8$134-150
See also: T36707
Workaround: I'm using v2.79 and experiencing same problem as described, where regardless of which monitor I was using as my main display, Blender was always opening up in the secondary monitor. I forgot to do a diff on the startup files, but this is how I worked around it: In Windows 10 I have a single video card with multiple monitors, but I think the problem is in the settings somewhere and doesn't matter the setup:
- I had to right-click on the Desktop and select Display Settings.
- Under "Multiple Displays" I changed it from "Extend These Displays" to "Duplicate These Displays"
- I opened Blender and with it selected in the primary display I Saved Startup File and then Close Blender.
- Under "Multiple Displays" I changed it from "Duplicate These Displays" back to "Extend These Displays"
- Reopen Blender, and it opens in the primary display as selected.
If I get a chance, I'll try to experiment to see exactly what is happening here, but in the meantime I hope this helps!
Gary's workaround unfortunately didn't work for me, but I did find another workaround for anyone else who might still be having this issue. I have an 8 monitor setup (I trade currencies during the week that's why all the monitors) and work on learning Blender on weekends. Similar to other's posts I too was having the issue of Blender opening on a monitor other than my primary monitor (which happens to be monitor 4 in my setup).
Re-saving the startup.blend file while Blender was on my primary monitor did not fix the problem, but adding the following to Blender's desktop icon target path forces it to startup on the monitor of your choice:
- Right-click on the Blender desktop icon
- If you're not on the Shortcut tab, switch to that tab
- Edit the Target by adding a -p option at the end, as follows:
"C:\Program Files\Blender Foundation\Blender\blender.exe" -p [blender window x start position] [blender window y start position] [blender window width] [blender window height]
Example: "C:\Program Files\Blender Foundation\Blender\blender.exe" -p 1920 0 1920 1080
Note1: The X and Y start positions must be for the lower left corner of the monitor you want Blender to startup in.
This is a useful workaround until the developers eventually fix whatever the problem is with saving the startup file.
Blender 2.79b was opening on Monitor 4 every time, after doing the workaround:
I was able to get it to get it open on Monitor 1 as desired.
Monitor 3 and 4 are using on-board Intel video output. Monitor 1 and 2 use GTX 970 GPU.
Same issue in Blender 2.80: I saved two startup.blend files (startup-wrong.blend which sends to the monitor I don't want to use which is 3840x2160 and startup.blend which I saved after performing my workaround in my previous post which sends it to the correct monitor which is 1920x1080). They're binary files, so doing a file comparison (like fc.exe) just spits out the differences in hex which is meaningless to me right now. I do have a hex editor, but I'm not sure what I'm looking for. I'll upload the two files so someone who knows what they're doing can maybe figure out what is different that is causing the issue. Or, if someone gives me a clue what to search for, I can open them in a hex-editor and try to parse through them. I'd really like to have this fixed by the final release of v2.80 if possible. Thanks!
I've done some more digging but without much luck. In case it helps someone, this is what I've looked at so far:
To view the differences in the two startup.blend files, I switched to a Linux machine and did:
colordiff -y <(xxd startup-wrong.blend) <(xxd startup.blend)
(you can use diff but colordiff highlights the differences in color making them much easier to see)
the -y argument puts the two side-by-side for easier comparison
xxd converts the hex into ASCII so it's more human readable, so the entire command pipes that output into colordiff for comparison
Since I don't know what I'm looking for, I can see the differences but I'm unable to find the problem. Someone familiar with Blender code can probably spot it right away. I would paste my diff results but they'd lose the coloring and it would take too many screenshots to capture the whole file. Hopefully a Blender dev can easily compare the two startup files and find the problem.
To look for the Windows setting that controls the Primary Display I went to the Windows Registry with regedit.exe (not recommended for non-developers!):
That contains each display connected to the system, but I don't think it is related - but I wanted to include it in case it helps deciphering the other keys.
That contains each display configurations apparently for every display ever connected to the system. Again, I don't think it is related - but I wanted to include it in case it helps deciphering the other keys.
I'm seeing keys here for "eXtend" and "Clone" on some displays, so I think this may be related to the problem.
There's a Windows command line utility "displayswitch.exe/clone" and "displayswitch.exe/extend" that allows you to duplicate or extend your displays, but I wish I knew exactly what they were doing behind-the-scenes! I'm assuming they're setting the magic registry key we're looking for... Since my workaround fixes the problem, I think there's a Windows setting that is confusing Blender - but I haven't been able to find it yet. I believe the secret lies in a Windows registry key setting and the Blender startup.blend file, but I could be wrong.
Short of decompiling the displayswitch.exe binary, I'm not sure with my current Blender knowledge I can make much more progress on this bug. Hopefully, what I've found so far can point the developers in the right direction. I know this is an issue that is difficult to duplicate, but it is beyond annoying and I'm afraid it will frustrate newbies or those with less patience.
I just wanted to chime in to report that this bug is still there, and I unfortunately discovered it today.
I'm on Windows 10 64bit. GTX 1080 GPU. Blender 2.8a.
I'm currently using a dual monitor setup.
I should explain there is a problem with the setup which I can't find a way to fix, which I think is linked to the bug I'm observing:
For some reason, the monitor I'm intending to use as my secondary monitor is marked as "1" and my intended primary monitor (set as "main monitor") is marked as "2" on my computer.
It seems, because of this, I'm seeing undesired behavior. For instance, all my desktop icons appear on monitor "1", the intended secondary monitor.
So with that in mind...
I saved a new Blender startup file, and to my dismay, I found now Blender keeps opening on my intended second monitor.
I tried saving the startup file on the second monitor to see if that'll trick it to swap. Nope.
So now, I seem to be stuck always having to drag new Blender instances from my secondary monitor to my primary, then go full screen. Minor inconvenience, but annoying every time I open up Blender now.
On a side note... Holy cow, this bug dates back 7 years..?!
I googled a way to force Blender to open up correctly on my primary monitor and found this task, and KiJeon's comment. I still have this very same - unintended - behavior on my 2.91.0 build on Windows 10.
Can't save correct monitor in my startup file.
Not sure it's related but I'm also trying to fix a Windows issue where some windows being full screen on my primary (bottom) monitor overflow a few pixels to the bottom of the top one.
I'm just mentioning this because Campbell wrote something about Windows clipping behavior upper in this thread years ago, probably unrelated :)
"Looks like this is caused by Win32 clamping windows bounds based on the default monitor"
I think this can help.I ran different screens setup and activated the save startup file option in blender . And I found that, if the monitors don't have the same resolution and are arranged side by side, Blender opens all the windows of my setup in just 1 screen. The screen has to be perfectly aligned but you can't arrange them top and botton or just with a little vertical offset in side by side. But if I set up my screens side by side perfectly with the same resolution, Blender opens the windows in this setup just fine. I think that this is the main problem to check. But I`m not a programmer so I can't tell If this can take too much effort to fix, but at least there is something that I found. and hopefully this can help the developers.
For anyone who compiles Blender, I'd appreciate them checking the following patch to see if it makes this problem better, worse, or stays the same. It does change the way that windows are constrained to available monitor space and how owned windows should open on the monitor of parents.
I tested the final release of Blender v3.0 and the daily build v3.1.0-alpha for December 23rd, 2021 and the startup file screen problem seems to be have been fixed. If anyone experiences the screen issue in v3 or greater please document it. For me, it seems this bug is now resolved but I don't know what version fixed it so I'll let the developers decide whether to close it as fixed.