Details
Description
If a Texture is update with a higher frequency (e.g. 25 Hz) the 3D scene freezes after a while.
Debugging showed that there is a Deadlock/Racecondition between GLTexture and TextureDataManager. (See attached file)
The Patch (see gltexture.cpp_patch) fixes this deadlock by coping the data of m_dirty to a local variable dirty. After the copy, the m_dirtyFlagMutex is unlocked. For all later compares the dirty variable is used. At the end, before m_dirty = 0; the lock is relocked.
Affected Filed:
qt3d/src/render/texture/gltexture.cpp