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

QEGLPlatformContext::makeCurrent: eglError: 3009, this: 0x2c650

    XMLWordPrintable

Details

    Description

      Probably I have chosen a wrong Component value, sorry for that. As far as I understand QEGLPlatformContext class is part of https://github.com/qtproject/qtbase repository.

      Anyway, this bug breaks my heart so I've made some investigation (although I'm quite far from Qt and EGL).

      So... This happens even if I write a simple Helloworld program (attached). The program displays a blank window and that's all. If you close the window you get this error and the program hangs.

      What I've managed to find out is that QEGLPlatformContext class is only created with support EGL_WINDOW_BIT surfaces although its subclass QEGLXcbPlatformContext also uses an offscreen surface (EGL_PBUFFER_BIT). And this actually happens when the application is closed: an attempt to bind the context with an offscreen surface results in 3009 (EGL_BAD_MATCH) error.

      As a dirty fix I modified the constructors of QEGLPlatformContext and QEGLPbuffer so that they both supported EGL_WINDOW_BIT and EGL_PBUFFER_BIT. And the error seemed to have gone. But I guess the proper solution must be something more sophisticated.

      If you need any additional info or my explanation seems obscure please let me know, I'll provide you with every detail you may need.

      Attachments

        1. main.cc
          0.3 kB
          Vitaliy Kirsanov
        2. Main.qml
          0.1 kB
          Vitaliy Kirsanov
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lagocs Laszlo Agocs
            krokoziabla Vitaliy Kirsanov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes