Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.1.3, 6.2.0
-
None
-
macOS Big Sur 11.6.1, Macbook Pro 15 (2016, MakBookPro13,3)
Windows 10
-
-
f9e95c9d4 (dev), 374b98599 (6.4), 0cf71fb2c (6.5), 0933e62b2 (dev), 302a7530d (6.8), 280f289fa (6.7), 59743e96b (tqtc/lts-6.5), 9087f078c (dev), b645aaa9c (6.8), f17f174b9 (6.7), 344ec11f5 (tqtc/lts-6.5)
Description
When a batch contains nodes that have different index types, there is a rendering issue when the first node of the batch use QSGGeometry::UnsignedShortType: nodes that use QSGGeometry::UnsignedIntType are incorrectly rendered
The attached project defines two custom QQuickItem, a triangle that uses unsigned short indexes and a circle that uses unsigned int indexes.
- When the application is launched, everything is ok: circles are well rendered.
- After pressing the button, the opaque circle is batched with an opaque triangle item (that uses unisgned short indexes) and is incorrectly rendered
- After pressing the button again, the triangle disappears (visible: false) and the two circles are well rendered
Renderer::uploadBatch (qsgbatchrenderer.cpp line 2009) assumes that all QSGGeometryNode nodes use the same index type (QSGGeometry::UnsignedShortType or QSGGeometry::UnsignedIntType) when it computes its canMerge flag
Renderer::prepareOpaqueBatches (qsgbatchrenderer.cpp line 1692) does not check if QSGGeometryNode nodes use the same index type
Steps to reproduce:
- Please run the attached example
- Click on the button
Attachments
Issue Links
- relates to
-
QTBUG-123191 Scenegraph nodes batching broken beginning with Qt 6.5.3
- Closed