obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
58.67k stars 7.81k forks source link

OBS29 doesn't play nicely with BetterDisplay (https://github.com/waydabber/BetterDisplay) #8177

Open timboxyz opened 1 year ago

timboxyz commented 1 year ago

Operating System Info

macOS 13

Other OS

No response

OBS Studio Version

29.0.0

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/WLmdsKMtQIsImz2K

OBS Studio Crash Log URL

No response

Expected Behavior

When Selecting either [Full-screen Projector(Program) ]or [Mulit-view (Full-screen)] and choosing a dummy display I would expect to see the relevant output on that display (either via a PIP viewer or NDI screen grab of that screen)

Current Behavior

The dummy display screen turns black and no other output is observed.

Steps to Reproduce

  1. Create a dummy display 1920x1080 and activate it and a PIP display on the main screen to see it.
  2. Run OBS with a base setting of 1920x1080
  3. Select either [Full-screen Projector(Program) ]or [Mulit-view (Full-screen)] with the dummy display as the chosen destination.
  4. Result. Dummy display turns black.

Anything else we should know?

No response

WizardCM commented 1 year ago

I cannot reproduce this issue using BetterDisplay 1.3.16 on macOS Ventura 13.2 on an Apple M1 Mac mini. I tried a simple VNC into the dummy without any other displays connected, which worked fine (Multi-view Fullscreen), and did the same with the dummy display as an extended second display.

timboxyz commented 1 year ago

I am on an Intel Mac. Not sure I quite understand using VNC. Everything else works OK with the dummy display but looking at the log there are multiple lines of the form:-

10:32:42.865: glBindFramebuffer failed, glGetError returned GL_INVALID_FRAMEBUFFER_OPERATION(0x506) which I am told suggests OBS is using an outdated API. see:- https://github.com/waydabber/BetterDisplay/discussions/1430#discussioncomment-4817960

RytoEX commented 1 year ago

I am on an Intel Mac. Not sure I quite understand using VNC. Everything else works OK with the dummy display but looking at the log there are multiple lines of the form:-

10:32:42.865: glBindFramebuffer failed, glGetError returned GL_INVALID_FRAMEBUFFER_OPERATION(0x506) which I am told suggests OBS is using an outdated API. see:- waydabber/BetterDisplay#1430 (comment)

For the record, we do use the new ScreenCaptureKit mentioned for our "macOS Screen Capture" Source.

That said, what you're trying to do sounds like it does not involve Screen Capture Kit at all. You're not trying to capture a display. You're trying to create a projector window on a display that does not physically exist.

We do still use OpenGL, because a rewrite using Metal has not yet been done, and OpenGL still largely works for now. Please follow-up on the BetterDisplay author's question about a Sidecar display.

timboxyz commented 1 year ago

I did mention in reply that you now use ScreenCaptureKit, but as you say that is not what I am trying to do it's simply use a dummy display as a test projector. Not having an iPad I cannot test using Sidecar, unfortunately. However, I have tried using AirPlay to a projector and got the same result, so it's not just BetterDisplay.

gxalpha commented 1 year ago

For reference, this could be related to or a duplicate of #5105. Edit: I did test this on an M1 Pro with both Sidecar and a BetterDisplay Dummy, both worked. Could be specific to Intel Macs, which are not very common among OBS devs anymore.

timboxyz commented 1 year ago

I think it may well be related to #5105, Looking at the logs they both have the same glBindFramebuffer failed, glGetError returned GL_INVALID_FRAMEBUFFER_OPERATION(0x506) error. and near-identical symptoms.

I wonder how it works on an M1 using emulation rather than native Apple Silicon mode?