View Issue Details

IDProjectCategoryView StatusLast Update
0000847OBS-StudioOBS Studio UI (Qt)public2019-08-10 18:03
ReporterAlex PettittAssigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformOBS StudioOSMac OSXOS VersionSierra
Product Version18.0.1 
Target VersionFixed in Version 
Summary0000847: Low framerate in Studio Mode
DescriptionEverything works fine in One Window mode and I get constant 30fps but as soon as I switch the Studio Mode on, the FPS drop to about 15-16. Both windows are choppy and I get the same fps in recordings. It's not an issue of the sources I add cause I get the same thing on a fresh install of OBS without anything added, with just Studio Mode turned on.
Steps To Reproduce1) Open OBS in Single Window mode -> FPS stays constant at 30FPS
2) Click Studio Mode -> FPS then drops to around 15fps and video becomes choppy.
Additional InformationThis happens before recording or streaming, just from opening the app and going into studio mode.
TagsNo tags attached.

Activities

Jim

2017-03-16 20:15

administrator   ~0001792

You have to use the OSX option to disable v-sync in advanced, though I thought I enabled that by default. This isn't technically a bug -- it's a flaw of OSX's design, if that makes sense. If that option isn't working there's probably nothing I can do on my end unfortunately. Could you check that and let me know if it's enabled/disabled, and see if it affects anything?

Regardless, this issue will have to be closed after that, because regardless of whether that option works or not, that's the only way I can influence v-sync on OSX that I'm aware of. Hopefully it was just that option not being set though.

Alex Pettitt

2017-03-17 17:42

reporter   ~0001798

Hey Jim,
You're right this option was already automatically selected, so I'm afraid the issue isn't linked to that. I've just downgraded back to Yosemite and OBS is working fit again (all be it on an older version). So the issue seems to be a compatibility between OSX Sierra with the Macbook Pro Retina (mid 2015) and OBS. Not sure if there is anything you can do? Keep me posted :)

sebix

2017-05-04 11:03

reporter   ~0001909

I have the same problem on Linux (OpenSUSE Leap 42.2) with obs from packman (18.0.2). CPU and GPU are basically idling.

In Studio Mode, FPS starts at the desired value (25 in my case) and then continously decreases. After 30min I had 10fps. In the one window mode I have 25fps again. When switching to studio mode I get 25fps in the beginning, then it drops again.

Stephen Bingen

2017-06-03 19:47

reporter   ~0001994

I have this same problem with my Mac Pro, 3 GHz 8-core, 32GB ram, 2gb AMD FirePro Graphics. I have no problem getting 60 fps when not in Studio Mode, but in Studio Mode the FPS drops to somewhere between 10 and 12 fps, even though CPU usage is below 2%. V-sync is already disabled by default, so it's not that. This is even the case even when I only have 1 video source available.

Matom3

2017-06-17 10:58

reporter   ~0002017

This is definitely a problem that need to be fixed. Has anyone run OBS on a beta version of 'Mac OS High Sierra'? I believe that they made a few changes regarding V-Sync. Anyone willing to test this let us know how it went.

Jim

2017-06-17 11:09

administrator   ~0002018

I'd like some of you who think it's not v-sync to do this test for me: create/switch to a blank scene, then go in to settings and set the FPS above your monitor's refresh rate (you can set the FPS to an integer value of up to 120). If the FPS indicator in the main window shows your monitor's refresh as the FPS rather than the intended FPS, then it's v-sync. Otherwise it's something else. Would like you to confirm.

I've been hearing reports that later versions of OSX aren't disabling v-sync as they're supposed to.

Alex Pettitt

2017-06-17 11:44

reporter   ~0002019

Just did as you asked. Set the FPS to 120, here are the results.

In single window mode, the FPS at the bottom right of OBS reads 60 FPS. I did notice that if I went to a different window like Chome for a second and came back to OBS it would read 120 FPS for a second then go back to 60.
In Studio Mode it reads around 18 FPS.

Hope this helps. I'm dying to get this issue solves. Right now my old work around it to have a hard drive that has a bootable version of an Old OSX and I have to plug that in every time I want to use OBS in Studio Mode. Annoying.

Jim

2017-06-17 11:46

administrator   ~0002020

It's definitely v-sync then. I think the API I'm using to disable it doesn't work on newer mac versions for whatever reason. I'm not entirely sure why Apple doesn't have a proper OpenGL function for disabling v-sync like windows and linux does, instead I have to rely on niche crap to get it to render properly. It's very annoying. I'll take a look to see if there are any recent changes/options on mac that can fix this, programmatically or not.

Matom3

2017-06-30 06:25

reporter   ~0002040

First of all. In the source code where can I find the scripts that run studio mode on mac and the script disabling v-sync.

Second of all in the Mac Sierra Update I have read some mention of BeamSync service in Mac OSX handling the vsync functions.

Lets get some discussion going and get this fixed. Getting this fixed is crucial for me and many others no doubt.

Jim

2017-06-30 06:26

administrator   ~0002041

https://github.com/jp9000/obs-studio/blob/master/UI/platform-osx.mm#L144

mntone

2017-07-04 21:39

reporter   ~0002055

No.
In El Capitan or later, studio mode is low framerate when VSync is both enable and disable.
This tip is good in only Yosemite or below.

Matom3

2017-07-19 06:43

reporter   ~0002108

Something I have noticed, While in studio mode, although their is still the problem of low fps. Media Sources for me are able to play back at a definite 30fps whilst in studio mode. Meaning that the low fps is directly related to obs handling live inputs. Not sure if this helps

asq

2017-08-25 19:40

reporter   ~0002545

i can confirm vsync options doesn't work in macOs Sierra 10.12.6 (16G29) on MacBook Pro (Retina, 13-inch, Early 2015).

there is another proposed solution here: https://stackoverflow.com/a/39458304
maybe it's worth to try.

Jim

2017-08-25 20:00

administrator   ~0002546

Hm, it's been a long time so I can't remember if I ever tried anything like that, but I'll give it a shot.

saloonstudios

2017-09-21 17:49

reporter   ~0002611

I don't have any helpful technical feedback but I wanted to say thanks Jim for continuing to work on this.

Jim

2017-10-06 13:03

administrator   ~0002673

I tried kCGLCPSwapInterval (or more accurately NSOpenGLCPSwapInterval in cocoa), and it produced somewhat interesting results -- the framerate was unrestricted in single-pane mode, but it had no effect when a second display view was showing. For example, if you set the framerate to 120 FPS, normally it would naturally cap in 60 FPS if your monitor's refresh rate is 60hz. However, with NSOpenGLCPSwapInterval set to 0, the framerate would go beyond your monitor's refresh -- as long as only a single preview display was active.

However, when a second preview pane is activated (such as properties or studio mode), it would go back to its original behavior. Definitely very strange, I'm not sure why it does this yet, but I feel like this may be a lead at least. Hopefully it's not a limitation of Apple's OpenGL implementation though (which unfortunately may be a possibility).

asq

2017-10-06 13:05

reporter   ~0002674

maybe adding the option to put Preview and Production panes on different displays would be sensible workaround here.

Jim

2017-10-06 13:07

administrator   ~0002675

I'm not sure I follow what you're saying.

asq

2017-10-06 13:09

reporter   ~0002676

i mean, ability to detach each video pane from main window so that operator may arrange them to different displays (so that each video pane is synced to it's own display).

Jim

2017-10-06 13:21

administrator   ~0002677

Last edited: 2017-10-06 13:21

View 2 revisions

Hm, well this is interesting. They're supposed to be considered "drawn separate", but right as I was originally going to say "they are separate displays already", I tested it just to verify, and wouldn't you know it, the properties window does not exhibit the same behavior as studio mode. Studio mode will set the FPS of obs to half the FPS of your monitor's refresh rate. Meanwhile, if I have a properties window open at the same time as the single-pane main view, the framerate is relatively unaffected -- this is a significant revelation.

It would appear that having two child displays within the same window will cause this effect, and having it split off in to a separate window will not have this effect. I wonder if this is a limitation of Apple's implementation. A proper implementation should really allow multiple widgets to be drawn separately within a single window, but in this case it doesn't appear to operate that way.

Your suggestion definitely has merit, and is an avenue of potentially fixing the issue. I'm not sure if I can fix this right away, but I at least have some other way of dealing with this now. Thank you.

Matte

2018-02-22 17:47

reporter   ~0003152

Hello,
I would like to report that this issue is still present on High Sierra 10.13.3, on a freshly installed OBS Studio. Macbook Pro 13" with Touchbar here, i5 with Iris550.

I'd also like to report that, if I set 120FPS in Video, in Single Mode I will get a floating framerate floating around 85FPS, while the CPU and the GPU remain completely unloaded. Clicking Studio Mode brings back the FPS to a floating 10-20FPS.

Ticking Disable OSX V-Sync has no effect at all.

Is there any workaround to use the fullscreen Multiview window with the Preview? Meaning:

the Multiview window shows all the scenes in little, a big Preview and a big Output. In Normal Mode, Preview and Output show the same feed, and if you click on the small scenes they just switch into both Preview and Output.
In Studio Mode instead, clicking a little scene brings it up into Preview while not sending that to Output yet, double clicking it streams it to Output.

Is there any way to disable the previews in the main program window, which are AFAIK the issue of the problem, while retaining the behaviour of the Multiview Studio mode?

thank you and keep up the amazing work!

Jim

2018-02-22 17:55

administrator   ~0003153

I am indeed still aware of the issue, the reason why it hasn't been "fixed" per se is because it's a limitation of either Qt on Apple systems or a limitation of Apple systems themselves. Initially I thought it was related to vsync, but I successfully disabled that. The problem is exclusively with having multiple graphics views within the same window -- if there's more than one view within the same window, there's some sort of massive graphics stall that occurs when it tries to render those additional views. You might note that it doesn't happen if you have say the properties window drawing and the main window drawing (when not in studio mode) at the same time, but if studio mode is active, the problem occurs. This doesn't happen on other operating systems, and I can't seem to trace any OBS code that would cause it to occur, so I'm leaning towards this being a limitation of either Apple or an issue with Qt on Apple systems.

The solution requires that I combine the two graphics view widgets in to one larger graphics view widget instead, which basically means significantly rewriting part of the main window -- that's why I haven't managed to do it yet. I planned on doing it when I rewrite part of the main window in 22 and 23. It may be a while still just because it's a significant rewrite.

I'm really sorry for making you wait on this.

Matte

2018-02-22 18:23

reporter   ~0003154

Last edited: 2018-02-22 18:25

View 2 revisions

hey Jim! Don't worry, and thank you for your work! I wanted to say that I've just in this exact moment found the workaround to this issue! Maybe it won't help those that need to edit their scenes on the fly, but it definitely helps if you're like in my case where I need to direct several cameras and feeds.

Here are the steps I've taken so you can reproduce it.

1) Start OBS
2) Start Stats screen and include it as a window capture in a scene (for debugging purposes only)
-) Stats will show your FPS correctly
3) Start Studio Mode
-) Stats will show high render latency with dropped frame rate
4) Start Multiview in fullscreen
5) Mission Control back to your main program window keeping the Multiview in the background
6) Click the top-left yellow button to minimize the main window into the dock
-) Stats will quickly go back to the original intended framerate
7) Bring the Multiview back
8) Now you can work in Multiview, with Preview working, at your intended framerate.

I was able to push it successfully to 60FPS!

tl;dr: minimize the main program window and start working with Multiview and/or single Projectors!

asq

2018-04-09 15:34

reporter   ~0003249

this is very nice workaround. but we loose a control over sources and mixer control.
so now, given that we have multiview that doesn't exhibit FPS slowdown, can we have an option to disable preview and program on main pane.
for preview, there is even an option on right mouse click, but it's greyed out.

RytoEX

2018-06-28 04:19

manager   ~0003318

@asq
I believe it has been possible to have separate projectors for the Preview and Program views since OBS Studio 21.0.0. However, it does not allow you to disable previews when in Studio Mode. The only workaround that I can think of for now would be to create Preview and Program projectors, and then minimize OBS, and use an obs-websocket controller to control OBS.

nickhype

2018-08-06 03:03

reporter   ~0003462

I posted a tutorial to youtube with the solution that Matte said, although I also included the source selector to use them.
https://www.youtube.com/watch?v=ZkfgSVkt3MQ

asq

2018-08-06 08:34

reporter   ~0003463

smart workaround with disconnected tool windows.
still it sucks that in default state OBS is unusable on Mac.

AndersM

2018-08-30 23:09

reporter   ~0003562

It will work as intended even if you just cover the preview window with a different window. You don't have to minimize the main window.
You can actually just right click the preview window and open "Windowed projector(preview)" and scale it to fit the original preview window, and the frame rate will be correct, and the whole gui will look identical. The only problem is that as soon as you click something, it will bring the main window to the top, and the frame rate will drop again.
If there was a way to have the windowed preview projector be Always on top, that could be a workaround that would more or less keep the original gui.

Jim

2018-08-30 23:38

administrator   ~0003563

I am finally going to attempt to look at this soon (23). Going to be doing some major UI reworking and will finally address this problem. Terribly sorry for the delay here, I know a lot of you have been annoyed that this has perpetuated.

Basically the problem is that the two studio "panes" need to be merged in to one. The middle part with the transitions/etc needs to be moved out of that area. That will solve the issue. It's annoying, but it seems to just be due to the way macOS works with OpenGL.

AndersM

2018-08-31 13:41

reporter   ~0003567

Thanks Jim, that is much appreciated!

If it is viable in this rewrite, it would be great to have the option to view the multiview scenes previews in the main window. That would really help us who want to use OBS for traditional multicam broadcasting on a single monitor.

Thanks again for your effort!

BlueH2O

2018-10-19 19:08

reporter   ~0003694

Believe it or not, this issue appears to be resolved in Mojave (latest Mac OS)!

I will admit I haven't tested it thoroughly by any means, but I just update my iMac Pro to Mojave and started up OBS to see what would happen and it's holding the frame rate steady (at 29.97) in studio mode. Of course, that could be because of the processor or graphics card in the iMac Pro (I normally stream with an older Macbook Pro), but it could also be because of some change to Quicktime or the OS. @jim what say you?

I'm not willing to update the OS on my laptop today because I will be streaming a football game tonight, but maybe somebody else wants to give Mojave a try?

AndersM

2018-10-19 19:18

reporter   ~0003695

I'm still getting fps drops in Mojave on my MBP 13 2016. To a lesser degree on a 15'' 2018, so I suspect it is just your iMac Pro that is overpowered.

BlueH2O

2018-10-19 19:22

reporter   ~0003696

@AndersM Thanks for the clarification. I was hopeful :-)

groenni

2019-04-20 15:28

reporter   ~0004512

Having this issue on MacBook Pro 2017 running latest Mojave and Latest OBS. Just using the windowed mutiview workaround to hide the Program Preview. It would be nice if we could disable the Program Preview on the main page, that would help a lot.

Norse

2019-07-30 21:37

reporter   ~0004678

Hi Jim.
Just wanted to ask if you have any updates regarding this issue. I reckon that you stumble upon som issues since we're far into v23 updating cycle and its almost a year since we last heard anything about this issue. Don't get me wrong, I don't doubt it is difficult, any update would be good at this point. Even bad news.

TylerDurd0n

2019-08-10 18:03

reporter   ~0004697

@Norse Jim has started working on Metal-support in a separate branch. Moving forward this might be the better choice than to fix OpenGL-based issues (as Apple's support for OpenGL has become sketchy at best). This might not help users with macOS older than 10.11, but we all know that in Apple land we have to keep up with the yearly deprecations of APIs and Frameworks. ¯\_(ツ)_/¯

(Do appreciate how hard Apple makes multi-platform development and a big tip of the hat at Jim and the other devs for not abandoning macOS.. yet.. �).

Issue History

Date Modified Username Field Change
2017-03-15 00:11 Alex Pettitt New Issue
2017-03-15 14:18 Osiris Priority immediate => normal
2017-03-16 20:15 Jim Note Added: 0001792
2017-03-17 17:42 Alex Pettitt Note Added: 0001798
2017-05-04 11:03 sebix Note Added: 0001909
2017-06-03 19:47 Stephen Bingen Note Added: 0001994
2017-06-17 10:58 Matom3 Note Added: 0002017
2017-06-17 11:09 Jim Note Added: 0002018
2017-06-17 11:44 Alex Pettitt Note Added: 0002019
2017-06-17 11:46 Jim Note Added: 0002020
2017-06-30 06:25 Matom3 Note Added: 0002040
2017-06-30 06:26 Jim Note Added: 0002041
2017-07-04 21:39 mntone Note Added: 0002055
2017-07-19 06:43 Matom3 Note Added: 0002108
2017-08-25 19:40 asq Note Added: 0002545
2017-08-25 20:00 Jim Note Added: 0002546
2017-09-21 17:49 saloonstudios Note Added: 0002611
2017-10-06 13:03 Jim Note Added: 0002673
2017-10-06 13:05 asq Note Added: 0002674
2017-10-06 13:07 Jim Note Added: 0002675
2017-10-06 13:09 asq Note Added: 0002676
2017-10-06 13:21 Jim Note Added: 0002677
2017-10-06 13:21 Jim Note Edited: 0002677 View Revisions
2018-02-22 17:47 Matte Note Added: 0003152
2018-02-22 17:55 Jim Note Added: 0003153
2018-02-22 18:23 Matte Note Added: 0003154
2018-02-22 18:25 Matte Note Edited: 0003154 View Revisions
2018-04-09 15:34 asq Note Added: 0003249
2018-06-28 04:19 RytoEX Note Added: 0003318
2018-08-06 03:03 nickhype Note Added: 0003462
2018-08-06 08:34 asq Note Added: 0003463
2018-08-30 23:09 AndersM Note Added: 0003562
2018-08-30 23:38 Jim Note Added: 0003563
2018-08-31 13:41 AndersM Note Added: 0003567
2018-10-19 19:08 BlueH2O File Added: Screen Shot 2018-10-19 at 12.03.58 PM.png
2018-10-19 19:08 BlueH2O Note Added: 0003694
2018-10-19 19:18 AndersM Note Added: 0003695
2018-10-19 19:22 BlueH2O Note Added: 0003696
2019-02-23 05:29 Fenrir Category OBS Studio UI => OBS Studio UI (Qt)
2019-04-20 15:28 groenni Note Added: 0004512
2019-07-30 21:37 Norse Note Added: 0004678
2019-08-10 18:03 TylerDurd0n Note Added: 0004697