diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-08-30 11:10:08 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2017-09-04 11:00:14 +0000 |
commit | ac080cda6d9391663f882a4317be78ad89986ee2 (patch) | |
tree | d6f8dc1a91b240ea03f36f3137cdb55486083d4c /src/quick/scenegraph/qsgwindowsrenderloop.cpp | |
parent | d031e8f7b51a28a9c609f40a6245657f303277f2 (diff) |
Make releaseResources() free the renderer's shader cache
Normally all shader programs from materials are cached in a simple table
that is alive as long as the renderer exists, in practice this means being
tied to the QQuickWindow which is often the entire lifetime of an
application.
Use releaseResources(), which is mostly a no-op on the scenegraph level
at the moment, to free this cache.
Task-number: QTBUG-62392
Change-Id: I279e595874fee1ab4fe0dede0843a3686dea5806
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
Diffstat (limited to 'src/quick/scenegraph/qsgwindowsrenderloop.cpp')
-rw-r--r-- | src/quick/scenegraph/qsgwindowsrenderloop.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/quick/scenegraph/qsgwindowsrenderloop.cpp b/src/quick/scenegraph/qsgwindowsrenderloop.cpp index e10e52d95e..e33f31f2ac 100644 --- a/src/quick/scenegraph/qsgwindowsrenderloop.cpp +++ b/src/quick/scenegraph/qsgwindowsrenderloop.cpp @@ -48,6 +48,7 @@ #include <QtQuick/private/qsgcontext_p.h> #include <QtQuick/private/qquickwindow_p.h> +#include <QtQuick/private/qsgrenderer_p.h> #include <QtQuick/private/qsgdefaultrendercontext_p.h> #include <QtQuick/QQuickWindow> @@ -503,6 +504,15 @@ void QSGWindowsRenderLoop::renderWindow(QQuickWindow *window) QQuickProfiler::SceneGraphRenderLoopSwap); } +void QSGWindowsRenderLoop::releaseResources(QQuickWindow *w) +{ + // No full invalidation of the rendercontext, just clear some caches. + RLDEBUG("releaseResources"); + QQuickWindowPrivate *d = QQuickWindowPrivate::get(w); + if (d->renderer) + d->renderer->releaseCachedResources(); +} + QT_END_NAMESPACE #include "moc_qsgwindowsrenderloop_p.cpp" |