Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.1.0
-
None
-
Linux, Qt5.1
-
472950ecab88fc41a99f2a1deb861a4abd273174
Description
Testcase:
import QtQuick 2.0 Item { id: root width: 1024 height: 786 property url bg: "image1.png" property url bg2: "image2.png" Image { id: image anchors.verticalCenter: root.verticalCenter anchors.horizontalCenter: root.horizontalCenter cache: false width: 80 source: bg SequentialAnimation { PropertyAction { target: image; property: "source"; value: bg } PauseAnimation { duration: 200 } PropertyAction { target: image; property: "source"; value: bg2 } PauseAnimation { duration: 200 } running: true loops: Animation.Infinite } NumberAnimation { target: image easing.type: Easing.InOutSine duration: 150 properties: "height" from: 1 to: 80 loops: Animation.Infinite running: true } } }
This code causes an imidiate crash on my freescale mxi51 hardware. It also crashes within 2 minutes on my linux desktop pc.
It does not crash with:
- debug build
- with QML_BAD_GUI_RENDER_LOOP=1.
- Image.cache=true
I do not have a very good callstack, I can only see that the crash happens somewhere down in material shader.
I think what happens is that this a race condition between painting the texture and loading the texture. Basically the matrial shader wants to use the old texture which got deleted since its not cached.
One additional Info: This is working fine in Qt5.02
Attachments
For Gerrit Dashboard: QTBUG-32513 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
61290,3 | Fix crash when changing non-cached source of image during animation | stable | qt/qtdeclarative | Status: MERGED | +2 | 0 |