Details
Description
Following the texture refactoring, textures are correctly uploaded at application startup. However if the content of texture data is later changed, e.g. by changing source property of a TextureImage, this is never made available to the GPU.
Tracing this through, the texture image data generator is correctly executed but it seems the OpenGL submission thread tries to upload the data before the new data is made available to the TextureDataManager. The subsequent clearing of the dirty flag means it never gets uploaded.
To fix this I have re-purposed the TextureData dirty flag in GLTexture to mean that the generators have been executed and the data is ready and available for upload. This flag was actually redundant for the purpose of scheduling the generators to be executed as that is handled directly by the texture data manager and GLTexture.
Patch coming to gerrit momentarily...
Attachments
For Gerrit Dashboard: QTBUG-57509 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
179312,4 | Fix texture data upload timing | 5.8.0 | qt/qt3d | Status: MERGED | +2 | 0 |
179670,3 | Add a new job type entry | 5.8.0 | qt/qt3d | Status: MERGED | +2 | 0 |
179671,5 | Properly order texture jobs | 5.8.0 | qt/qt3d | Status: MERGED | +2 | 0 |