@flypig just read your diary and noticing that you seem to be in the render engine swamp (Note: i dont have experience with firefox per se, but made my bones whilst wrestling with alot of game engines in the past); my bet is the change from back buffer to swap chain on the opengl side is what has broken the rendering (swap chain set up differs from.“normal” double buffering), also readback for the offscreen / headless rendering might differ (not sure about that); btw I havent paid attention so just adding this here in case: env var LIBGL_DEBUG (on mesa at least, see here for more https://docs.mesa3d.org/envvars.html ) can add precious hints to the output…
EDIT : also and now we might have a real bone here, the Wayland integration on OpenGL might need some love too…but this is just speculation…
bottom line, I’d say if you can trace the OpenGL Error first, it will be a good lead where to look next, as the code that you are merging is “a child between worlds” and hence has no real reference / is a new path (code)…