Display Numbers are switched after update to 27.0.0

KingLancifer

New Member
After the update to 27.0.0, my screens have switched number identifiers.
Selecting Display 1 actually shows Display 2 and vice versa. It was working fine before the update.
Has anyone had this problem before? If so, is there a fix? I tried a search but found nothing.
38CBHQh.png
 

KingLancifer

New Member
Has nobody had this problem before?

I don't know what else to do. I've spent several days troubleshooting this by reinstalling OBS, changing display settings, and switching monitor connections around. I'm still having this problem. Monitor 1 is showing as "Display 2" and Monitor 2 is showing as "Display 1".

It was fine before the update.
 

KingLancifer

New Member
Thank you for replying.
Yes, I am aware of that setting. I have adjusted it multiple times and it does not correct the problem.
As I said before, it was working perfectly before I updated OBS. It looks like I may have to downgrade back to v26.
 

KingLancifer

New Member
After downgrading back to v26, I'm seeing a difference in the log. OBS is changing the display placement in v27.

In v26.1, it shows this...
output 0: pos={0, 0}, size={1600, 900}, attached=true, refresh=60, name=2036
output 1: pos={1600, 0}, size={1600, 900}, attached=true, refresh=60, name=2036

But, in v27, it shows this...
output 0: pos={0, 0}, size={1600, 900}, attached=true, refresh=60, name=2036
output 1: pos={-1600, 0}, size={1600, 900}, attached=true, refresh=60, name=2036

Notice that in v27, output 1 is being given a negative number. Anyone know a fix? Or should I submit this as a bug?
 
Last edited:

koala

Active Member
The negative number is from Windows and is an indicator of monitor location. The Windows primary monitor (the one with the task bar and the system tray) is always the one with (0,0). It's also the one where true fullscreen games will show their game screen.
Monitors to the left of the primary monitor have negative x coordinates (-1600, y) and monitors to the right have positive x coordinates (1600, y). The y value is the same, but for above or below. Reference is the bottom left corner of the primary monitor.
If you switch the primary monitor, it seems monitor numbering is changed for you. For me, numbering and the sign of the x coordinate hasn't changed from v26 to v27. I have a desktop PC and a stable monitor configuration.

If you have a laptop with the internal laptop screen and one external monitor, things might be different/not so stable. If you perhaps switched the external monitor on after you switched on your laptop, things might appear different, especially if you configured Windows to use your external monitor as primary monitor.
 

koala

Active Member
This is my configuration, but the iGPU hasn't a monitor connected:
Code:
18:28:55.561: CPU Name: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
18:28:55.561: CPU Speed: 4008MHz
18:28:55.561: Physical Cores: 4, Logical Cores: 8
18:28:55.561: Physical Memory: 16253MB Total, 8931MB Free
18:28:55.561: Windows Version: 10.0 Build 19043 (release: 2009; revision: 1052; 64-bit)
18:28:55.561: Running as administrator: false
18:28:55.561: Aero is Enabled (Aero is always on for windows 8 and above)
18:28:55.561: Windows 10 Gaming Features:
18:28:55.561:     Game Bar: On
18:28:55.561:     Game DVR: On
18:28:55.561:     Game DVR Background Recording: Off
18:28:55.561:     Hardware GPU Scheduler: On
18:28:55.563: Sec. Software Status:
18:28:55.564:     Microsoft Defender Antivirus: enabled (AV)
18:28:55.564:     Windows-Firewall: enabled (FW)
18:28:55.564: Current Date/Time: 2021-06-13, 18:28:55
18:28:55.564: Browser Hardware Acceleration: true
18:28:55.564: Portable mode: false
18:28:55.872: OBS 27.0.1 (64-bit, windows)
18:28:55.872: ---------------------------------
18:28:55.873: ---------------------------------
18:28:55.873: audio settings reset:
18:28:55.873:     samples per sec: 48000
18:28:55.873:     speakers:        2
18:28:55.874: ---------------------------------
18:28:55.874: Initializing D3D11...
18:28:55.874: Available Video Adapters:
18:28:55.877:     Adapter 0: NVIDIA GeForce GTX 1070
18:28:55.877:       Dedicated VRAM: 4185915392
18:28:55.877:       Shared VRAM:    4226576384
18:28:55.877:       PCI ID:         10de:1b81
18:28:55.877:       Driver Version: 27.21.14.6627
18:28:55.878:       output 0: pos={0, 0}, size={2560, 1440}, attached=true, refresh=59, name=ROG PG278Q
18:28:55.878:       output 1: pos={-1920, 145}, size={1920, 1200}, attached=true, refresh=59, name=SyncMaster
18:28:55.878:     Adapter 1: Intel(R) HD Graphics 530
18:28:55.878:       Dedicated VRAM: 134217728
18:28:55.878:       Shared VRAM:    4226576384
18:28:55.878:       PCI ID:         8086:1912
18:28:55.878:       Driver Version: 27.20.100.8682
18:28:55.881: Loading up D3D11 on adapter NVIDIA GeForce GTX 1070 (0)
The display numbers are as in my screenshots above. I assume my configuration is the typical desktop configuration with an external GPU. No issues with switched numbers.
(Windows release name is still not fixed: shown as 2009, but actually is 21H1)
 

KingLancifer

New Member
If you switch the primary monitor, it seems monitor numbering is changed for you. For me, numbering and the sign of the x coordinate hasn't changed from v26 to v27. I have a desktop PC and a stable monitor configuration.
I have not switched the primary monitor. Monitor 1 has always been the primary monitor and OBS worked fine for as long as I can remember.
I've changed nothing except upgrade to v27.
As the log entries show above (and my screenshot in 1st post), OBS is changing my primary monitor to Display 2 and forcing it left of Display 1.
I've tried unplugging monitor 2 to force OBS to recognize only monitor 1. But, each time I re-plugin Monitor 2 it forces it to become the primary monitor, even though my Win10 settings have Monitor 1 set to be the primary monitor.

I've tried everything I can think of. I've even updated my gfx drivers to see if that helped. Nope.
Only solution I've found to fix the problem is to downgrade back to v26. Then, it works perfectly.
One of you has integrated Intel GPU, isn't it?
I have a dedicated AMD Radeon RX 580 (4 GB GDDR5)
Using 2 AOC monitors that are the same make/model plugged in via hdmi connectors.

I appreciate everyone's attempt to help. It looks like I'm the only one having this problem, so I'll just have to live with it.
 
Last edited:

R1CH

Forum Admin
Developer
Are you saying that OBS is causing changes to your Windows display settings, and this is not simply a number changing in the dropdown?
 

KingLancifer

New Member
@KingLancifer can you at least post the log-file part between the: Initializing D3D11... and Loading up D3D11 on adapter...?

I had to reinstall v27 so that I could accommodate. Here is the full log file... https://obsproject.com/logs/LjxSSr6goJins7lr
This time, the log is noting the correct positioning of the displays. But, it's still messed up in the dropdown.

j4w1blU.png

Display 1 is supposed to be 0,0 (Primary Monitor)

Are you saying that OBS is causing changes to your Windows display settings, and this is not simply a number changing in the dropdown?
Hi R1CH. No, OBS isn't actually changing my win display settings. It's only showing the wrong numbering in the dropdown. Sorry if I wasn't clear before.
 

Suslik V

Active Member
Can you compare these two builds of OBS?

1) https://github.com/obsproject/obs-studio/runs/2163376039
(the file 2021-03-22-85334d562-26.1.2-win64.zip)

2) https://github.com/obsproject/obs-studio/runs/2163380712
(the file 2021-03-22-c83eaaa51-26.1.2-win64.zip)

The (1) build is before the https://github.com/obsproject/obs-studio/commit/c83eaaa51c260c3844baaf1cb76de63e0f096cea
the (2) is after the changes were accepted.

The each page requires log in onto the github site to get the files. After the log in you will find artifacts ("beta" builds of the OBS) to download:

github obs artifacts.png
 

KingLancifer

New Member
Thank you for helping.
Both of those versions are also showing display numbers incorrectly. The last version I used that was correct was 26.1.1 release.
 

Suslik V

Active Member
OK. So, it's some change between 7jan-22mar. It is obviously the:

3) https://github.com/obsproject/obs-studio/runs/1773845802
(the file 2021-01-27-475172cff-26.1.2-win64.zip)

4) https://github.com/obsproject/obs-studio/runs/1775309959
(the file 2021-01-27-44ace7618-26.1.2-win64.zip)

The (3) build is before the https://github.com/obsproject/obs-studio/commit/80b4a65cd2e7fe2cfd12efa4d8a0778958c739fe
the (4) is after the changes were accepted.

This only the place where the function enum_monitor_props was modified.
Unfortunately the artifacts life-time expired, so nothing to download and to test for you...

@R1CH any ideas on this?

Edit: I think the flag check in the code should look like this (it is easier to understand and this is flags - that may change in the future):
if (mi.dwFlags & MONITORINFOF_PRIMARY != 0) { //some stuff here }
 
Last edited:

Suslik V

Active Member
Big chance that this is side effect of the changes. Earlier the display numbering ("monitor") was saved in OBS settings and was used directly. Now it is read but compared to some monitor.id inside the function enum_monitor .
It would be nice to make new Scene Collection with the display capture source (v27) to see how it will be seen from the v26.
 

KingLancifer

New Member
Not sure what some of that means, but I'm happy to see people like you going the extra mile to fix problems, no matter how small they seem to be. :)
 

Suslik V

Active Member
It means:
1) try to make new Scene Collection (in v27.0.1 of OBS), make new Display source in it,
2) then try this Scene Collection in OBS v26.1.2 and see if the order changed too.

I will fix nothing here. Sorry. And I simply made a poke (a little bit) a much higher level developers by saying that sometimes they are making step a side from the fundamental rules that they usually strictly follow (bit flags handling).

More likely that what you are seeing is just feature - a new (better) way to handle the displays numbering in OBS. Just make new Scene Collection and forget about everything else.
 
Top