summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem/shaderdata.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-07-18 12:35:09 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-07-19 07:03:43 +0000
commitbd02208b69b417e0d84109bb36ace59a09cf37ad (patch)
tree2d45f883ea79437bdb84dd9fa6f83711cc9105aa /src/render/materialsystem/shaderdata.cpp
parente295086efc8155f9d737adacb0d76f5549ca2d9c (diff)
Fix data race when multiple renderview builders transform light data
Whilst fixing this, realized a logical flaw in the handling of ShaderData nodes. See QTBUG-54818. Change-Id: Ia204ca403cafa2dbafc83e1761b7f78f5d6a1832 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Diffstat (limited to 'src/render/materialsystem/shaderdata.cpp')
-rw-r--r--src/render/materialsystem/shaderdata.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/render/materialsystem/shaderdata.cpp b/src/render/materialsystem/shaderdata.cpp
index 6de0047a3..1f68bed13 100644
--- a/src/render/materialsystem/shaderdata.cpp
+++ b/src/render/materialsystem/shaderdata.cpp
@@ -241,6 +241,9 @@ bool ShaderData::updateViewTransform(const QMatrix4x4 &viewMatrix)
bool ShaderData::updateWorldTransform(const QMatrix4x4 &worldMatrix)
{
+ // TODO: Factor this out into a job that populates data in the corresponding
+ // renderview or other intermediate data structure. See QTBUG-54818
+ QMutexLocker lock(&m_mutex);
if (m_worldMatrix != worldMatrix) {
m_worldMatrix = worldMatrix;