Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
5.15.13, 6.2.8, 6.5.0
-
Windows 10 22H2, MSVC 2019 x64
-
2dc17a45f (dev), d21b1f607 (6.6), b53b28380 (6.5)
Description
Code
import QtQuick 2.15 import QtQuick.Window 2.15 Window { id: root width: 400 height: 300 visible: true Rectangle { id: box width: 100 height: 100 color: box.go ? "green" : "red" property bool go: false Rectangle { id: line y: 50.01 // Any non-integer value here will trigger the issue, say 50.01 or 50.99 width: parent.width*2 height: 1 color: "blue" } } Timer { interval: 1000 repeat: true running: true onTriggered: box.go = !box.go } }
Steps to reproduce
- Build and run the code above, with the environment variable QT_QUICK_BACKEND=software
- Observe the GUI over a few seconds (as the Timer toggles a few times)
- Resize the window
- Observe the GUI over a few more seconds
Expected outcomes
While "box" toggles between red and green, "line" remains unchanged (blue) and visible at all times
Actual outcomes
- "line" is visible at startup
- When "box" changes colour, the portion of "line" that overlaps with "box" is erased and doesn't come back
- Resizing the window temporarily makes the whole "line" visible again, but the issue re-occurs when "box" changes colour
Notes
- Changing line.y to an integer value produces the expected outcome
- Using a non-software backend produces the expected outcome
Attachments
For Gerrit Dashboard: QTBUG-113745 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
481983,3 | Software renderer: Add floating point nodes to dirty list | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
483190,2 | Software renderer: Add floating point nodes to dirty list | 6.5 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
483191,2 | Software renderer: Add floating point nodes to dirty list | 6.6 | qt/qtdeclarative | Status: MERGED | +2 | 0 |