Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-120138

Showing a child Window more than once fails on WebAssembly

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P1: Critical
    • None
    • 6.6.0, 6.6.1, 6.7.0
    • None
    • Chrome, Firefox, Safari
    • WebAssembly

    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

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.webassembly qt.webassembly
            timangus Tim Angus
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes