summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem
diff options
context:
space:
mode:
authorAnders Hafreager <andershaf@gmail.com>2018-02-19 14:07:40 +0100
committerAnders Hafreager <andershaf@gmail.com>2018-02-28 16:32:10 +0000
commitf7e01ffeb3626432cabe3d1ad245827e4217375c (patch)
tree1e7215ec003257684142f6e608fa9a613e2ff113 /src/render/materialsystem
parenteedad5e4737072b99b112a51e08b35b4038dbf95 (diff)
Prevent readded shaders to be purged from cache
In ShaderCache::removeRef, the shader DNA is added to m_pendingRemoval. Previously, if the shader was readded before ShaderCache::purge was called, ShaderCache::purge would still remove it even if it was in use. This change removes a readded shader DNA from m_pendingRemoval. Task-number: QTBUG-66498 Change-Id: If18b28273cccfd2a8cba2c7bc6379d983ce6ecb9 Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/materialsystem')
-rw-r--r--src/render/materialsystem/shadercache.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/render/materialsystem/shadercache.cpp b/src/render/materialsystem/shadercache.cpp
index ce29622ad..78193755f 100644
--- a/src/render/materialsystem/shadercache.cpp
+++ b/src/render/materialsystem/shadercache.cpp
@@ -80,6 +80,8 @@ QOpenGLShaderProgram *ShaderCache::getShaderProgramAndAddRef(ProgramDNA dna, Qt3
if (*it != shaderPeerId)
programRefs.insert(it, shaderPeerId);
+ m_pendingRemoval.removeOne(dna);
+
return *shaderProgram;
}