Saturday, 2026-10-31

Mister_Magisterabranson: per gstreamer's AGENTS.md i had to first comprehend entire issue and now I fully and utterly comprehend the issue i believe and the fix has to go upstream but might also need minor tweaking in qtwayland00:36
Mister_Magisterabranson: also I've concluded i'm in no way qualified to CR/fix it either so i've asked gstreamer guys00:59
Mister_MagisterI've caught great asset in form of gstreamer dev into my sfos chat >:)00:59
Mister_Magisterthe proper description without llm garbage is *atchoo* The issue is with EGL context invalidation of the context that comes from Qt via qmlglsink. Let me explain. Gstreamer in no way is prepared for qt to get rid of its egl context. The pipeline caches it, the element cache it, and there's no way to send signal to the pipeline to make everything invalidate the context and fetch new one. And that problem probably has never ever arisen before00:59
Mister_Magisterbecause to the best of my knowledge desktop has no reason to throw away egl context. SFOS does so when you turn the screen off (mostlikely because it shuts down the GPU) and when screen comes back on the qt has new egl context but the pipeline/qmlglsink/glupload/glcolorconvert don't get new one and the video stays forever black (thats the actual bug) because it's writing to old context, egl doesn't throw any error by design and video is00:59
Mister_Magisterforever black. Now the solution that claude implemented is to listen to the aboutToBeDestroyed signal and set flag so that on next frame (because the context is still old when the signal arrives) fetch new context, walk up to the root of the pipeline and set new context using gst_element_set_context + minor fixes because glupload/glcolorconvert won't do anything with it because they react only if display changed and don't care if context00:59
Mister_Magisterchanged00:59
Mister_MagisterMy head hurts01:00

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!