obs-studio icon indicating copy to clipboard operation
obs-studio copied to clipboard

Unable to select primary monitor, despite OBS claiming it is available

Open AndreasLangberg opened this issue 2 years ago • 31 comments

Operating System Info

Windows 10

Other OS

No response

OBS Studio Version

29.0.0

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/CwBu49DKcgb2xOaB

OBS Studio Crash Log URL

No response

Expected Behavior

OBS Display Capture and preview should be able to change between both displays

Current Behavior

OBS only shows the same one display, even if you select the other.

Steps to Reproduce

  1. Install version 29.0.0
  2. Have two monitors
  3. Add a Display Capture to scene
  4. Attempt to change between the two displays

Anything else we should know?

Tested on previous version 27.2.4, and it works no issues: https://obsproject.com/logs/fARkIWW934suHZ7v

Nightly version OBS 29.0.0-104-gcd78ecae5 has an interesting twist, where you are still only able to select one monitor, however it is the OTHER monitor, not the same one I'm only able to select in version 29.0.0; https://obsproject.com/logs/GOfaNioOnMCB2UVf

https://i.imgur.com/D70783Z.png reference image showing a capture of the secondary display, despite primary being chosen

AndreasLangberg avatar Jan 30 '23 23:01 AndreasLangberg

Where exactly are you attempting to change? In the source toolbar, or in the source properties? I'm not able to reproduce this behavior, might need further detail in the reproduction steps.

Fenrirthviti avatar Jan 31 '23 02:01 Fenrirthviti

I'm not sure if this is the exact same issue, but on v29 I am also unable to properly select my primary monitor.

I have 2 physical monitors, and disabled a 3rd "virtual" monitor through Windows display settings. After disabling the 3rd, both both "Display" options on OBS are still labelled correctly, eg, both show the expected monitor names and pixel resolutions/offsets, but now both options end up showing what's displayed on my secondary monitor.

Before disabling that virtual monitor everything worked fine and I could switch between which monitor I want captured. I've tried everything in the settings/capture settings/display option to try and get it back to the way it was, but nothing can change it back to the primary monitor.

Edit: I also installed the nightly version, and I experience the same thing as OP where now where whichever of the 2 monitors I select in OBS only results in my -primary- monitor being shown now (so the opposite monitor as before). Which technically 'fixes' it for me in that I can record the correct monitor, but it still obviously won't let me correctly choose one or the other. Removing and adding the display capture source makes no difference for me. Still experiencing this as of 29.1.0-beta3

jdy4389 avatar Jan 31 '23 06:01 jdy4389

I would have hoped this would be solved by. https://github.com/obsproject/obs-studio/pull/8081 You say you've tested the nightly, which includes that fix. Using the nightly, could you make double sure by deleting the current display capture source, and adding a fresh one?

flaeri avatar Jan 31 '23 12:01 flaeri

For me, I can see and select either display, but they show 2560x1440p @-2560.0 and 3840x2160 @0.0, and both monitors link to the 2560x1440p one.

v29.0 also seems to have broke my scene selection, as it was already set to the 3840x2160 monitor, but now it only shows the 1440p in that display window.

Forum post showing this as a common issue: https://obsproject.com/forum/threads/after-update-obs-only-detects-secondary-monitor-twice-but-reads-as-primary.164940/

Fuehnix avatar Mar 09 '23 00:03 Fuehnix

We are aware that this is affecting a very small number of users, and are still investigating why. I don't think a handful of reports makes this common, however.

If this affects you, please include a log file so we can continue to gather information on affected systems.

Fenrirthviti avatar Mar 09 '23 02:03 Fenrirthviti

I am having the issue described in this thread. My logs link

https://obsproject.com/logs/hw09qi9eWm32YVYG

gatherium avatar Mar 16 '23 01:03 gatherium

If you are still having this issue, could you please retest with OBS Studio 29.1 Beta 3 (or newer) and provide an OBS log file? We've added some additional logging that might help us look into this further. As far as I'm aware, we've so far been unable to reproduce this.

RytoEX avatar Apr 13 '23 19:04 RytoEX

Issue is still there in 29.1 Beta 4 Log file: https://obsproject.com/logs/MzjiANOYDV8pmmhb

AndreasLangberg avatar Apr 23 '23 20:04 AndreasLangberg

Where exactly are you attempting to change? In the source toolbar, or in the source properties? I'm not able to reproduce this behavior, might need further detail in the reproduction steps.

Doesn't matter. Either or

AndreasLangberg avatar Apr 23 '23 20:04 AndreasLangberg

For those having the issue, could you try opening Device Manager and view hidden devices, and screenshot what's available along with your OBS 29.1 beta log? After that, try removing the disconnected (greyed out) monitors and see if it makes a difference.

GIBvIZ67Z9

notr1ch avatar Apr 23 '23 21:04 notr1ch

image No greyed out monitors, but I do have 3 monitors connected which are not active in windows (As nvidia blocks for more than 4 monitors connected simultaneously on their regular cards, I have to switch between them depending on usage)

For testing, I removed the extra unused monitors, and OBS had no issue switching between the monitors afterwards. So it seems we are zeroing down on the issue here. It's not able to handle when you have inactive but connected monitors

AndreasLangberg avatar Apr 26 '23 08:04 AndreasLangberg

Problem still exists with 29.1.1

mohcow avatar May 19 '23 15:05 mohcow

Problem still exists with 29.1.1

Follow the steps in https://github.com/obsproject/obs-studio/issues/8181#issuecomment-1519167663

notr1ch avatar May 19 '23 17:05 notr1ch

I don't have any greyed out devices there and uninstalling currently disconnected monitor(tv) defeats the purpose. There should be no reason to remove disconnected monitors when i worked in previous versions, no?.

mohcow avatar May 22 '23 19:05 mohcow

I don't have any greyed out devices there and uninstalling currently disconnected monitor(tv) defeats the purpose. There should be no reason to remove disconnected monitors when i worked in previous versions, no?.

The display enumeration in OBS was changed to use a different Windows API to better ensure that the displays selected for capturing in OBS remain selected and unchanged between OBS sessions or Windows sessions (system restarts). We want to find out why that API is behaving in an unexpected way. To that end, we are gathering information, hence the ask in the linked comment.

RytoEX avatar May 22 '23 19:05 RytoEX

Problem still exists with 29.1.1

Follow the steps in #8181 (comment)

I also had greyed out displays and graphic cards but after removing them the problem persists.

https://obsproject.com/logs/cI20ifjVpiOkVGat

khezuu avatar May 29 '23 14:05 khezuu

Your log shows it's still finding a Samsung monitor from somewhere. Did you try rebooting after removing the disconnected devices?

notr1ch avatar May 29 '23 15:05 notr1ch

Your log shows it's still finding a Samsung monitor from somewhere. Did you try rebooting after removing the disconnected devices?

Thanks I figured out what caused the issue.

It was my Samsung TV that was turned off (standby) connected to the PC.

Once I disabled the TV in the device manager, source switching works again

khezuu avatar May 29 '23 15:05 khezuu

Thanks I figured out what caused the issue.

It was my Samsung TV that was turned off (standby) connected to the PC.

Once I disabled the TV in the device manager, source switching works again

That is exactly what is happening to me.

3 devices total - one turned off - no greys in device manager.

2X monitors via DisplayPort - turned on.
1X TV via HDMI - turned off.

It will not let me switch monitor captures between the monitors like that. They both show up in the drag down menu in properties, but it will only capture the primary.

As soon as I remove the TV HDMI cable...or disable the TV in the device manager...switching between monitors works.

TheHunterGT avatar Jun 09 '23 21:06 TheHunterGT

Your log shows it's still finding a Samsung monitor from somewhere. Did you try rebooting after removing the disconnected devices?

Thanks I figured out what caused the issue.

It was my Samsung TV that was turned off (standby) connected to the PC.

Once I disabled the TV in the device manager, source switching works again

I had the same issue but had a Sony TV connected in the same way but I DID have it disabled in the display settings. I still had the issue even with it disabled, I had to physically disconnect the TV from my PC for it to work.

BobKillen avatar Jul 15 '23 15:07 BobKillen

Same Issue, Fixed once i removed the Cable from my Drawing tablet that is only in use when doing design work. Since it is disabled on "display settings" but still plugged in, it was showing my 3 out of 4 displays on OBS but unable to change them from my "primary monitor" , once i plugged out the 4th Display that is not powered on and in use. It works as normal.

Its worth noting this was not a problem in prior versions of OBS and is to due with an update / change in how its coded.

So once again the fix is to unplug the cable physically so there is no data connection to unused monitors, dont just remove them via Software as you may of previously done. Its a pain but it fixes the issue.

Control-V

REmove the display not just disable it Control-V (1)

Data4GE avatar Jul 28 '23 02:07 Data4GE

I can confirm this is the cause of my issue, I have a silly number of screens on my machine, so that I can work at either a single large screen, triple screens, or a sim racing rig. To switch I have scripts setup, and a StreamDeck, but OBS is not liking when the screens are connected, but not active. If I "uninstall" the devices on device manager it works, but a "scan for hardware changes" will cause it to break again. If I just "disable" devices, it seems to work. Not sure what's happening with the enumeration, but its always my Primary (middle) screen; that gets lost, and when its selected, its a duplicate of the left most screen.

Any updates at all?

pjw29 avatar Aug 23 '23 20:08 pjw29

Also a sim racer and exact behavior as @pjw29. I have reverted to 28.1.2 until a fix is in.

lbollar avatar Sep 11 '23 20:09 lbollar

Still an issue I ran into with v30.0.0, ran into it again after having to change some monitor settings when removing/reinstalling display drivers.

Having my virtual monitor 'disabled' through Windows display settings but not device manager still causes the display capture sources in OBS to appear to show the correct monitors as available (correct names, pixel offsets), but choosing either of them will only ever display what's on one of them (the wrong one).

What I did as a workaround was to disable my virtual monitor in device manager temporarily, then restart OBS. At that point, the correct monitor can be chosen. Then, I could re-enable it through device manager, and OBS still seems to have the correct monitor available as a source.. It says the current display source is [Device not connected or not available] as a result, but it still works and can use it as the source, so I'm hoping it will remain available as long as I don't mess with the source options.

jdy4389 avatar Dec 06 '23 21:12 jdy4389

Issue is still there in 29.1 Beta 4 Log file: https://obsproject.com/logs/MzjiANOYDV8pmmhb

image No greyed out monitors, but I do have 3 monitors connected which are not active in windows (As nvidia blocks for more than 4 monitors connected simultaneously on their regular cards, I have to switch between them depending on usage)

For testing, I removed the extra unused monitors, and OBS had no issue switching between the monitors afterwards. So it seems we are zeroing down on the issue here. It's not able to handle when you have inactive but connected monitors

Just to circle back to this: your log shows both your ROG and ASUS displays identified by Windows as the same MSI display, which was not connected. This new display ID is what we switched to using in OBS Studio 29 as previously explained. So for some reason we are getting bad/unexpected results from that API.

@pjw29 @lbollar Please refer to the instructions here and provide a screenshot of the display devices and optionally remove unused devices later, if you'd like to see if that fixes the issue for you. Please also provide an OBS log from a recent version of OBS that logs the display IDs.

@jdy4389 What are you using to create a "virtual monitor"? Please also provide OBS logs for both broken and working scenarios.

RytoEX avatar Dec 06 '23 21:12 RytoEX

@jdy4389 What are you using to create a "virtual monitor"? Please also provide OBS logs for both broken and working scenarios.

Sorry for the delay, what I mean for virtual monitor is that I have a generic displayport 'dummy plug' called "DP1080P60" connected in to my graphics card, basically so that Windows thinks there is a monitor plugged in even when my real monitors are turned off. This is to allow me to VNC in to the computer correctly and have it "use" that monitor at 60hz with the monitors turned off, as I was having issues getting it to work at the correct refresh rate due to some kind of issue with Windows/GPU power saving features. I keep it enabled in Device Manager for it to work, but "disconnected" in Display Settings so it won't cause my mouse to go off into a dead area.

ApplicationFrameHost_2023-12-15_18-16-42

In order to visualize what happens with OBS, I did 2 videos showing what's going on

  • The first is when this "virtual monitor" is completely disabled in device manager - This let's me choose either of my 2 monitors to be a display source - I can then leave it in this state, re-enable the dummy adapater and it will stay be fine as long as I don't change the source in OBS.
  • The second video is when that device is enabled in device manager but set to disconnected in the Windows display settings - When this happens, if I ever try to change the display source, it will imply I can choose either of the 2 monitors but regardless of which I choose it will only show what's on one of them. It was displaying the correct monitor which I had set at the start, displayed as "Device not connected or not available", but changing it requires me to go through the previous step again to get it set to the right one.
Spoiler [Videos]

https://github.com/obsproject/obs-studio/assets/42285880/9886e6dd-ff04-49c0-8502-23b979a9953b

https://github.com/obsproject/obs-studio/assets/42285880/df7e0caa-7244-4a13-ba81-6db7e79d619e

WHEN ENABLED -2023-12-15 18-32-59.txt WHEN DISABLED - 2023-12-15 18-22-52.txt

I should note that the OBS logs don't seem to reference that dummy adapter at all - it only appears on the GUI or in the logs when it's enabled both in the device manager and connected/enabled in Windows monitor settings.

jdy4389 avatar Dec 16 '23 00:12 jdy4389

  • The first is when this "virtual monitor" is completely disabled in device manager - This let's me choose either of my 2 monitors to be a display source - I can then leave it in this state, re-enable the dummy adapater and it will stay be fine as long as I don't change the source in OBS.

As a note, I do not believe OBS supports changing display arrangements while OBS is running. We consider it a hardware change, and we don't track hardware changes very well (in many cases, not at all). In your described workflow, the displays are enumerated and the sources are configured before you have the dummy adapter enabled (or half-enabled).

I should note that the OBS logs don't seem to reference that dummy adapter at all

That makes sense. If the adapter is disconnected when OBS starts up, it won't be logged. Since we're using Windows APIs to enumerate displays, I'm not too surprised it wouldn't show up if you have the display set to disabled in Windows settings. If the adapter is enabled in both Device Manager and Windows Display Settings, I would expect it to be logged in OBS logs.

RytoEX avatar Dec 18 '23 22:12 RytoEX

Still an issue in 30.1.2

mohcow avatar Apr 06 '24 08:04 mohcow

Still an issue in 30.1.2

Please provide the data we asked for here and an OBS log.

RytoEX avatar Apr 06 '24 15:04 RytoEX

I found and operational solution to this I think.

I'm running a three monitor setup that I use for TV & Video colour grading and editing. I have 2 standard HP monitors for the desktop and a central EIZO monitor for grading which takes a signal over HDMI via a Blackmagic Design video output PCI card. When I'm not working I change inputs to the Display Port input which is connected directly to the graphics card giving me a 3 monitor setup for other activities. When I'm doing video work I usually open the Display settings and disconnect the EIZO so my GUI and cursor only go across the two HP monitors. When I recently decided to screen record my colour grading work I found the problem with OBS only seeing one screen. After reading the comments, I worked out that if the EIZO connection is active then OBS can see all monitors. My solution to continue to work in my normal 2 GUI monitor setup and be able to record both screen on OBS is simply to change the Multiple displays option on the Display settings panel to Duplicate Desktop on the EIZO to my second screen. That way my cursor doesn't have to travel too far and I OBS still sees all the screen and I can select just my GUI ones to record. Simples!

arbarday avatar Jul 31 '24 17:07 arbarday