diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2021-03-29 13:36:27 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-04-14 14:46:58 +0000 |
commit | c7c2512a6736ff9fff7d3ed1b90fb6d57a656bcb (patch) | |
tree | 41146e7a4bd74fdbb4f645c775cb924c89df492e | |
parent | 8ef947deab6c9345ddac2d96dc60f2490974c1df (diff) |
Do not batch lines with > 1 width in alpha pass
Cannot possibly do reasonable overlap checks when we have no idea how
such lines are rasterized, meaning we do not know the real bounds of
the geometry.
Fixes: QTBUG-91749
Change-Id: Ia444232330da2f1d29841589f0e65bb52822c4ae
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 74c458f9fdf0639cd68684b5184bf561166e14cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp index 913533b389..024c0d68ef 100644 --- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp +++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp @@ -1958,7 +1958,11 @@ void Renderer::prepareAlphaBatches() if (gni->clipList() == gnj->clipList() && gni->geometry()->drawingMode() == gnj->geometry()->drawingMode() - && (gni->geometry()->drawingMode() != QSGGeometry::DrawLines || gni->geometry()->lineWidth() == gnj->geometry()->lineWidth()) + && (gni->geometry()->drawingMode() != QSGGeometry::DrawLines + || (gni->geometry()->lineWidth() == gnj->geometry()->lineWidth() + // Must not do overlap checks when the line width is not 1, + // we have no knowledge how such lines are rasterized. + && gni->geometry()->lineWidth() == 1.0f)) && gni->geometry()->attributes() == gnj->geometry()->attributes() && gni->inheritedOpacity() == gnj->inheritedOpacity() && gni->activeMaterial()->type() == gnj->activeMaterial()->type() |