aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2020-11-23 13:26:33 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-11-24 18:46:11 +0000
commit54b4e08a2a9e0d82cb2107e3df0613a0da13a48a (patch)
treec3b10457137011c4024fd7db7ca19682585441df /src
parent85c4facaccbe558b0462ea5d644225513d21432b (diff)
Purge renderpass refs from renderer when redirecting via QRhiRt
Fixes: QTBUG-88761 Change-Id: Ia5df65a4a09a7554a7d0cca4533f766cb5abe97b Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit bbb6298204b95f049c8a177365125247ba49dba3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/quick/items/qquickrendertarget.cpp1
-rw-r--r--src/quick/items/qquickwindow.cpp15
2 files changed, 9 insertions, 7 deletions
diff --git a/src/quick/items/qquickrendertarget.cpp b/src/quick/items/qquickrendertarget.cpp
index 69063ecdbe..3ccfe85b88 100644
--- a/src/quick/items/qquickrendertarget.cpp
+++ b/src/quick/items/qquickrendertarget.cpp
@@ -404,6 +404,7 @@ bool QQuickRenderTargetPrivate::resolve(QRhi *rhi, QQuickWindowRenderTarget *dst
case Type::RhiRenderTarget:
dst->renderTarget = u.rhiRt;
+ dst->rpDesc = u.rhiRt->renderPassDescriptor(); // just for QQuickWindowRenderTarget::reset()
dst->owns = false;
return true;
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index 3a2bcb107a..470d43efd5 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -515,14 +515,15 @@ void forceUpdate(QQuickItem *item)
void QQuickWindowRenderTarget::reset(QRhi *rhi, QSGRenderer *renderer)
{
- if (rhi && owns) {
- if (renderer != nullptr && rpDesc != nullptr)
+ if (rhi) {
+ if (renderer)
renderer->invalidatePipelineCacheDependency(rpDesc);
-
- delete renderTarget;
- delete rpDesc;
- delete texture;
- delete depthStencil;
+ if (owns) {
+ delete renderTarget;
+ delete rpDesc;
+ delete texture;
+ delete depthStencil;
+ }
}
renderTarget = nullptr;