1. Oct 21, 2014
    • Laszlo Agocs's avatar
      Fix failing makeCurrent in basic renderloop when closing windows · d6661ca4
      Laszlo Agocs authored
      
      The makeCurrent() call can fail if there is no underlying platform
      window present anymore (due to close()).
      
      Just continuing with the cleanup is wrong: There may be another context
      current (from the application or from some other component of Qt) and
      there are GL calls issued which would mess up the state in that context.
      Therefore we ensure there's a context/surface by using a temporary
      QOffscreenSurface.
      
      Task-number: QTBUG-41942
      Change-Id: I79f35a1f5bbe7a8a14943e8603764575ed119f93
      Reviewed-by: default avatarGunnar Sletta <gunnar@sletta.org>
      d6661ca4
  2. Sep 24, 2014
    • Gunnar Sletta's avatar
      Fix cleanup of non-threaded render loops. · c2706491
      Gunnar Sletta authored
      
      They would unconditionally call cleanupNodesOnShutdown on hide(), but
      QQuickWindow::sceneGraphInvalidated would only be emitted if this was
      the last window being hidden, leading to an inconsistent state in the
      application.
      
      Since the non-threaded render loops do not support releasing resources
      (there is one OpenGL context and one QSGRenderContext shared between
      all windows) we delay cleanup until the window is destroyed.
      
      This change also make the render loops track the windows until they
      are destroyed, similar to what the threaded one does. The purpose of
      this is to, in the case of dangling windows, only trigger invalidation
      of the scene graph when the last QQuickWindow is destroyed through
      QSGRenderLoop::cleanup().
      
      Task-number: QTBUG-41210
      Change-Id: I7e12a4f726ebb3e7935c822b6046abb3590c583a
      Reviewed-by: default avatarUlf Hermann <ulf.hermann@digia.com>
      Reviewed-by: default avatarLaszlo Agocs <laszlo.agocs@digia.com>
      c2706491
  3. Sep 18, 2014
  4. Sep 11, 2014
    • Ulf Hermann's avatar
      Select specific features to be recorded when profiling QML · 1de6e7b8
      Ulf Hermann authored
      
      Some features, like the memory profiler, create huge amounts of data.
      Often enough, we're not actually interested in all the data available
      from the profiler and collecting it all can lead to excessive memory
      consumption. This change enables us to optionally turn various aspects
      of QML profiling off.
      
      Task-number: QTBUG-41118
      Change-Id: I7bb223414e24eb903124ffa6e0896af6ce974e49
      Reviewed-by: default avatarGunnar Sletta <gunnar@sletta.org>
      1de6e7b8
  5. Aug 25, 2014
  6. Aug 08, 2014
  7. Aug 05, 2014
  8. Jul 03, 2014
  9. Jul 02, 2014
  10. Jul 01, 2014
  11. May 05, 2014
  12. Apr 25, 2014
  13. Apr 04, 2014
  14. Mar 29, 2014
  15. Mar 20, 2014
  16. Mar 17, 2014
    • Gunnar Sletta's avatar
      Fix potential crash during shutdown for QQuickWindows · 3f362cdf
      Gunnar Sletta authored
      
      The cleanup() function would deregister the render loop from all
      windows the render loop had seen, but the render loop doesn't see
      windows until the window gets a showEvent and for some implementations
      it was removed as a result of hideEvent. So add explicit tracking to
      QSGRenderLoop which is managed by QQuickWindow's constructor and
      destructor. With this, we no longer need the lists from the
      subclasses, so these functions are removed again.
      
      Change-Id: I05e5507ad57e23c80bacd99752654cc7d0890dc1
      Reviewed-by: default avatarPaul Olav Tvete <paul.tvete@digia.com>
      3f362cdf
    • Giulio Camuffo's avatar
      Unset the current gl window when deleted · 1bec5e80
      Giulio Camuffo authored
      This does in the QSGGuiThreadRenderLoop what 403045a5
      
       did for the
      QSGThreadedRenderLoop. Fix a memory corruption in Mesa's dri2 EGL
      when setting a window current after deleting the previous current
      one.
      
      Change-Id: I8df0bacdf12f71e969a9ea39842a402c9a2a303f
      Reviewed-by: default avatarGunnar Sletta <gunnar.sletta@jollamobile.com>
      1bec5e80
  17. Mar 14, 2014
    • Gunnar Sletta's avatar
      Make sure QSGRenderLoop is cleaned up cleanly. · 1656d600
      Gunnar Sletta authored
      e13547c5
      
       used a global static to clean
      up QSGRenderLoop which is triggered very late, potentially after
      SG backend API plugins have been unloaded. This results in crashes
      when used in combination with scenegraph-playgrounds's customcontext.
      
      Partially revert the change and instead clean up at the time of
      QApp::aboutToQuit and make sure we also disconnect cleanly from
      all QQuickWindows.
      
      This change also ensures that QSGRenderLoop::windowDestroyed() gets
      called for all QQuickWindows registered with the render loop. This
      ensures that rendering stops and that scene graph nodes and resources
      will be cleaned up regardless of whether the application has
      remembered to delete the window or not. This is a good thing as it
      makes the scene graph shutdown a bit cleaner.
      
      Change-Id: I9cb9093979f8eac05542f118a6ff9cfe5c84f745
      Reviewed-by: default avatarPaul Olav Tvete <paul.tvete@digia.com>
      1656d600
  18. Mar 13, 2014
  19. Mar 04, 2014
  20. Feb 25, 2014
  21. Feb 21, 2014
    • Laszlo Agocs's avatar
      Add an error signal to QQuickWindow · bbf1ec42
      Laszlo Agocs authored
      
      When nothing is connected to this signal, an error will be printed or,
      in case of Windows, a message box will be shown. If there is something
      connected, it is up to the application to handle the error.
      
      [ChangeLog] Added a new sceneGraphError() signal to QQuickWindow
      which applications can use to detect errors like OpenGL context creation
      failures and react in their own custom ways.
      
      Task-number: QTBUG-36138
      Change-Id: I33b1e5e0e3f25872af67c5bb5ae937e3470b25f3
      Reviewed-by: default avatarFriedemann Kleint <Friedemann.Kleint@digia.com>
      bbf1ec42
  22. Feb 20, 2014
  23. Feb 15, 2014
  24. Feb 04, 2014
  25. Jan 28, 2014
  26. Jan 22, 2014
  27. Dec 12, 2013
  28. Dec 03, 2013
  29. Nov 27, 2013
    • Robin Burchell's avatar
      Delay renderWindow with a timer · 7811c22f
      Robin Burchell authored
      
      Add an exhaust delay to QSGGuiThreadRenderLoop. Some updates
      may be done with posted events, and maybeUpdate event competed
      with those, leading to partial updates and frames drawn twice.
      
      Change-Id: I532bff692c597eeba5bbd6def89ae68c80fdd69b
      Done-with: Mikko Harju <mikko.harju@jollamobile.com>
      Reviewed-by: default avatarGunnar Sletta <gunnar.sletta@digia.com>
      7811c22f
  30. Nov 19, 2013
  31. Nov 18, 2013
  32. Nov 05, 2013
  33. Nov 01, 2013
  34. Oct 30, 2013
    • Gunnar Sletta's avatar
      Use one render loop per QQuickWindow · 906d5c5c
      Gunnar Sletta authored
      
      See the task for the full reasoning behind this patch.
      
      The threaded renderloop has been refactored to have one window per
      thread. This is mostly a simplification of the current code path where
      for loops over multiple windows are turned into if (window).
      
      The QSGContext has been split into two classes, QSGRenderContext
      for which there is one per OpenGLContext.
      
      The rest of the patch is name changes and a couple of cleanups
      in the hopes of simplifying this change.
      
      Task-number: QTBUG-33993
      
      Change-Id: I31c81f9694d7da7474a72333169be38de62613c4
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      906d5c5c
  35. Sep 30, 2013
  36. Sep 26, 2013