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)
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
- Open
For Gerrit Dashboard: QTBUG-97557 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
466882,3 | QSGBatchRenderer: Fix batching with geometry without index buffer | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
467224,2 | QSGBatchRenderer: Fix batching with geometry without index buffer | 6.4 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
467225,2 | QSGBatchRenderer: Fix batching with geometry without index buffer | 6.5 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
467227,1 | QSGBatchRenderer: Fix batching with geometry without index buffer | tqtc/lts-6.2 | qt/tqtc-qtdeclarative | Status: ABANDONED | 0 | 0 |