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

QOpenGLWidget causes the entire window uses OpenGL

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • Not Evaluated
    • None
    • 5.4.0, 5.4.1, 5.5.0 Alpha
    • None
    • Arch Linux, Mesa 10.5.1, Qt 5.4.1, Qt 5.5.0 alpha

    Description

      Create a QOpenGLWidget and set it as a child for a QWidget. Then the QWidget and all other raster widgets in this window renders using OpenGL. It slows down the whole application, application speed depends on V-Sync and uses much GPU power for repainting raster widgets.

      In the attachment there is simple example which describes the problem. It contains QLabel with FPS counter and two buttons which creates old QGLWidget and QOpenGLWidget. Timer updates the raster window at maximum speed. When QGLWidget is shown, the application still works correctly. When QOpenGLWidget is shown, raster window updates are limited to V-Sync (if enabled) and GPU is used (check "intel_gpu_top" or nVidia control panel).

      Using QOpenGLWidget:

      • slows down all raster widgets in window,
      • slows down whole computer (because GPU is used when it shouldn't be),
      • when V-Sync is enabled and there are many raster updates, sometimes application works too slow for convenient usage.

      Expected result:

      • QOpenGLWidget shouldn't convert the whole window into OpenGL.

      If it is not a BUG - please add a new feature which allows to use QOpenGLWidget as QGLWidget replacement.

      Attachments

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

        Activity

          People

            lagocs Laszlo Agocs
            zaps166 Błażej Szczygieł
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes