summaryrefslogtreecommitdiff
path: root/vcl/skia/gdiimpl.cxx
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2020-02-18 15:55:46 +0100
committerLuboš Luňák <l.lunak@collabora.com>2020-02-19 12:43:42 +0100
commit1127a8dea95488c7c9add42244a79bb20e7c6d95 (patch)
tree75f4be1286e50327aaa60222f0b11e2756118f8d /vcl/skia/gdiimpl.cxx
parentd8fe52d759ba033bd661893f12d17576d24276db (diff)
work around a driver/card(?) problem with Skia and AA-ed polygons
See description in SkiaSalGraphicsImpl::drawPolyPolygon(). Change-Id: I4b2626e26cac6d145b417426fc2575845386db57 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88941 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'vcl/skia/gdiimpl.cxx')
-rw-r--r--vcl/skia/gdiimpl.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index 12265418c617..a704ef9c5312 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -690,6 +690,13 @@ bool SkiaSalGraphicsImpl::drawPolyPolygon(const basegfx::B2DHomMatrix& rObjectTo
if (mXorMode) // limit xor area update
mXorExtents = aPath.getBounds();
postDraw();
+#if defined LINUX
+ // WORKAROUND: The logo in the about dialog has drawing errors. This seems to happen
+ // only on Linux (not Windows on the same machine), with both AMDGPU and Mesa,
+ // and only when antialiasing is enabled. Flushing seems to avoid the problem.
+ if (mParent.getAntiAliasB2DDraw() && SkiaHelper::getVendor() == DriverBlocklist::VendorAMD)
+ mSurface->flush();
+#endif
return true;
}