Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
AndreasLangberg opened this issue Jan 30, 2023 · 29 comments
Open

Comments

@AndreasLangberg
Copy link

AndreasLangberg commented Jan 30, 2023

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

@Fenrirthviti
Copy link
Member

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.

@jdy4389
Copy link

jdy4389 commented Jan 31, 2023

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

@flaeri
Copy link
Contributor

flaeri commented Jan 31, 2023

I would have hoped this would be solved by. #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?

@Fuehnix
Copy link

Fuehnix commented Mar 9, 2023

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/

@Fenrirthviti
Copy link
Member

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.

@gatherium
Copy link

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

https://obsproject.com/logs/hw09qi9eWm32YVYG

@RytoEX
Copy link
Member

RytoEX commented Apr 13, 2023

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.

@AndreasLangberg
Copy link
Author

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

@AndreasLangberg
Copy link
Author

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

@notr1ch
Copy link
Member

notr1ch commented Apr 23, 2023

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

@AndreasLangberg
Copy link
Author

AndreasLangberg commented Apr 26, 2023

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

@mohcow
Copy link

mohcow commented May 19, 2023

Problem still exists with 29.1.1

@notr1ch
Copy link
Member

notr1ch commented May 19, 2023

Problem still exists with 29.1.1

Follow the steps in #8181 (comment)

@mohcow
Copy link

mohcow commented May 22, 2023

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?.

@RytoEX
Copy link
Member

RytoEX commented May 22, 2023

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.

@khezuu
Copy link

khezuu commented May 29, 2023

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

@notr1ch
Copy link
Member

notr1ch commented May 29, 2023

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

@khezuu
Copy link

khezuu commented May 29, 2023

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

@TheHunterGT
Copy link

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.

@BobKillen
Copy link

BobKillen commented Jul 15, 2023

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.

@Data4GE
Copy link

Data4GE commented Jul 28, 2023

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)

@pjw29
Copy link

pjw29 commented Aug 23, 2023

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?

@lbollar
Copy link

lbollar commented Sep 11, 2023

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

@jdy4389
Copy link

jdy4389 commented Dec 6, 2023

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.

@RytoEX
Copy link
Member

RytoEX commented Dec 6, 2023

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.

@jdy4389
Copy link

jdy4389 commented Dec 16, 2023

@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]
obs64_2023-12-15_18-28-44.mp4
obs64_2023-12-15_18-29-30.mp4

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.

@RytoEX
Copy link
Member

RytoEX commented Dec 18, 2023

  • 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.

@mohcow
Copy link

mohcow commented Apr 6, 2024

Still an issue in 30.1.2

@RytoEX
Copy link
Member

RytoEX commented Apr 6, 2024

Still an issue in 30.1.2

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests