-
Notifications
You must be signed in to change notification settings - Fork 227
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
Visuals Stop Rendering When Source is Repeatedly Refreshed #356
Comments
Hmm, confirmed with your example URL (thanks for providing that!). This only seems to happen with hardware acceleration enabled. |
not sure if relevant, hopefully not derailing investigation:
|
This is interesting. The first time the bug is triggered, it's like the page/renderer dies entirely: After the bug is triggered once, if you then tweak the properties again, it recovers on the CEF side, but not in the OBS renderer: Deleting and recreating the source does not fix rendering (essentially it breaks rendering for all browser sources). This is confirmed with CEF error logging enabled:
With additional logging, what actually seems to be happening is that each time we trigger a properties update in this situation, we're actually crashing the GPU process. This is after the first properties update:
Obviously you repeat 2-5 times, which crashes the GPU process 3 times, and it just.. doesn't relaunch properly.
(notice the 0ms, it should be closer to 200ms) The reason this doesn't happen with other browser URLs, is because other URLs don't crash the process:
|
As another point of data, I am also experiencing the same issue. After doing a few tests, it seems like it might be related to socket.io? I'm using locally served html documents, so I can't link to an example, but a totally static html page reloads without any problems. When I add socket.io to the header, it will consistently stop loading after 4 or 5 refreshes. I have no idea how socket.io could be causing a GPU crash, but it seems to be related, at least |
Interesting, I had this theory as well since the Don't necessarily want to mislead the investigation but signs do seem to point in that direction 🤔 |
This is unrelated to socket.io. I've had this happen with a variety of sites, and on a rather frequent basis at this point. Have it happen with Raider.io Widgets (https://raider.io/widgets/) (scroll down the page). Even occurred once while being in Studio mode, and adding a VDO.Ninja browser source to an empty scene. Results are basically: All browser docks flicker white for a second, then restores themselves. Any browser source you have will either try to restore itself if possible - if not stay broken. Players such as twitch players for example do not restore themselves. Unfortunately, this has resulted in me 4 times in the last 10 days having to kill OBS; to start it up again while being live. I am fortunate enough that we rebroadcast through 2PC setup (for this exact reason) so damages have been minimal. Considering VDO doesn't do anything but display a WebRTC feed, and having reached out to Raider.io staff and having them disable all GPU accelerated items they could get their hands on (and it still happening) this is a rather peculiar bug. |
Your issue sounds entirely unrelated to this, and doesn't match the behavior being described at all. |
@lindenkron Please provide an actual URL we can test with rather than "scroll down". |
This thread was mentioned to me by Matt when describing the issues I was having. If it's unrelated to this, then I apologize.
I've had the issue to a higher/lesser extend with all of their widgets. And I've only had it occur once with a VDO link. Step by step:
Repeat steps until your Browser Dock flashes white (which I believe Matt said indicates the gpu renderer crashed?) Do this enough times, and all browser docks will disappear. Short video of the outcome on an empty Scene Collection: |
I have an url to add to the pile: From https://galactic.ink/labs/JS1k/BreathingGalaxies.html navigating to https://galactic.ink/ (top left link). Only happens with hardware acceleration and indeed logs to the GPU process crashing, same exit code. As a bit of a background, I'm actually trying to make use of OBS' CEF fork for my own application (I get the same behavior in OBS). The affected URL here is part of the tests listed in the cefclient test application. I don't exactly need this page to work, but thought it might help at narrowing down the exact cause here. Don't really know anything about the CEF's internals, so this is about all I can say. |
I've managed to crash the GPU renderer without touching any sources. Basically just switching between scene collections. It appears it can be triggered simply by loading a browser source/browser dock. |
The whole reason for the crash in the original ticket is when a browser source is unloading. So yes, switching scene collections will trigger it too. OBS has to unload all the sources before it switches to the new collection. |
I doubt unloading is a necessity. Had all browser sources crash/flicker twice during tonight's stream - and second time I did not touch anything prior to it happening. It appears it can happen at any given time for any or no reason. |
The bug is fixed with an upgrade to cef 5060 (chromium 103). We'll provide a test build to confirm. |
This issue can be reproduced almost 100% on my PC. |
So far I've not been able to replicate any of the issues from CEF 95 in the CEF 103 test version. |
Unfortunately, having tested CEF 103 in production - while the regular ways we used to force the issue, appear gone - other methods still crash the GPU render. I'm unable to find a specific method for reproducing - but having used a CEF 103 in live production, I still ran into all browser sources crashing multiple times, and a strange 'freeze speedup' issue. CEF103 GPU render crash CEF103 freeze speedup issue Has anyone else experienced similar issues? I know my vast amount of browser sources is not common, but hoping there's others out there with similar experiences that might help get the issue solved. |
For anyone who is having issues with this. R1CH dug out this argument that I tested and confirmed working: Add it to your OBS executable path, and you will not have to reboot OBS after third crash. You still have to refresh the browser sources after they crash, but it saves you a boot/potential stream going down. Your path should look something like this: |
Operating System Info
Windows 11
Other OS
No response
OBS Studio Version
27.2.1
OBS Studio Version (Other)
No response
OBS Studio Log URL
https://obsproject.com/logs/qeEA-zfJeNJauEFY
OBS Studio Crash Log URL
No response
Expected Behavior
For the source not to stop rendering visually after being refreshed.
Current Behavior
After several refreshes, the source stops visually rendering.
Steps to Reproduce
Anything else we should know?
In my testing, this bug does not happen on every single URL. "trev.zone/alerts" is my own personal website and is the first URL I discovered the bug on. However, after further testing, I am able to reproduce on some other URLs as well (specifically Streamlabs widget URLs).
The text was updated successfully, but these errors were encountered: