Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
6.6.0, 6.6.1, 6.7.0
-
Chrome, Firefox, Safari
-
-
a47f6fde8 (dev)
Description
Showing child windows more than once fails on WebAssembly builds. When a window is shown for a second time, the space where it should appear is filled with a solid colour. Weirdly, if the window is clicked, this colour changes. In addition to the obvious visual absence, and corresponding inability to interact, a large quantity of warnings are shown in the console:
WebGL warning: bindBuffer: `buffer` is from a different (or lost) WebGL context. 4 WebGL warning: useProgram: `prog` is from a different (or lost) WebGL context. WebGL warning: uniform setter: No active linked Program. WebGL warning: bindBuffer: `buffer` is from a different (or lost) WebGL context. 2 WebGL warning: drawElementsInstanced: The current program is not linked. WebGL warning: useProgram: `prog` is from a different (or lost) WebGL context. WebGL warning: uniform setter: No active linked Program. 2 WebGL warning: bindTexture: `tex` is from a different (or lost) WebGL context. WebGL warning: uniform setter: No active linked Program. WebGL warning: drawElementsInstanced: The current program is not linked. WebGL warning: uniform setter: No active linked Program. 2 WebGL warning: bindTexture: `tex` is from a different (or lost) WebGL context. WebGL warning: uniform setter: No active linked Program. WebGL warning: bindBuffer: `buffer` is from a different (or lost) WebGL context. 2 WebGL warning: drawElementsInstanced: The current program is not linked. WebGL warning: deleteBuffer: `obj` is from a different (or lost) WebGL context. 2 WebGL warning: useProgram: `prog` is from a different (or lost) WebGL context. WebGL warning: uniform setter: No active linked Program. WebGL warning: bindBuffer: `buffer` is from a different (or lost) WebGL context. 2 WebGL warning: drawElementsInstanced: The current program is not linked. WebGL warning: useProgram: `prog` is from a different (or lost) WebGL context. WebGL warning: uniform setter: No active linked Program. 2 After reporting 32, no further warnings will be reported for this WebGL context.
Observe the issue with an unmodified instance of the "Window and Screen" example project:
This happens on recent versions of Chrome, Firefox and Safari on Linux and macOS. I haven't tried Windows, but it seems unlikely the underlying OS is involved here. I've tried Qt 6.6.0, 6.6.1 and the 6.7.0 RC available from MaintenanceTool. I've tried various emsdk versions around about the recommended 3.1.37, to the extent that they are compatible with Qt's binaries, but it doesn't seem to have any effect.
Widgets based applications don't seem to exhibit the problem for what it's worth, so I'm assuming this is a QtQuick issue, but I could be very wrong here. Indeed, widgets based child windows such as file dialogs and the About Qt dialog work as expected, even in a QML context.
Attachments
Gerrit Reviews
For Gerrit Dashboard: QTBUG-120138 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
577689,2 | wasm: don't recreate WebGL context on surface change | dev | qt/qtbase | Status: NEW | +2 | 0 |
577690,2 | QRhiGles2: Skip GL cleanup on context loss | dev | qt/qtbase | Status: MERGED | +2 | 0 |
577691,1 | QRhiGles2: Skip GL cleanup on context loss | 6.8 | qt/qtbase | Status: ABANDONED | 0 | 0 |