bin/update_pch                                |    3 -
 download.lst                                  |    4 -
 external/skia/Library_skia.mk                 |   54 ++++++++------------
 external/skia/UnpackedTarball_skia.mk         |    4 -
 external/skia/c++20.patch.0                   |   17 ------
 external/skia/constexpr-debug-std-max.patch.1 |   14 ++---
 external/skia/fix-gcc-x86.patch.1             |   16 ------
 external/skia/fix-pch.patch.1                 |   25 ++-------
 external/skia/inc/pch/precompiled_skia.hxx    |   67 ++++++++------------------
 vcl/skia/gdiimpl.cxx                          |   13 +++--
 10 files changed, 72 insertions(+), 145 deletions(-)

New commits:
commit f0ef4e6b83f5ad3b916c42682561b86ddd485f0d
Author:     Luboš Luňák <l.lu...@collabora.com>
AuthorDate: Thu Apr 8 18:32:46 2021 +0200
Commit:     Luboš Luňák <l.lu...@collabora.com>
CommitDate: Mon Apr 12 15:04:59 2021 +0200

    update Skia to chrome/m91
    
    Change-Id: I82050e9695b9aa49c33ee16d345bb64595b00bbc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113978
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lu...@collabora.com>

diff --git a/bin/update_pch b/bin/update_pch
index e47a97994bb2..a20c85f88f36 100755
--- a/bin/update_pch
+++ b/bin/update_pch
@@ -474,7 +474,8 @@ def filter_ignore(line, module):
             'src/sksl/SkSLCPP.h',
             'src/gpu/vk/GrVkAMDMemoryAllocator.h',
             'src/gpu/GrUtil.h',
-            'src/sksl/dsl/',
+            'src/sksl/dsl/', # conflict between SkSL::Expression and 
SkSL::dsl::Expression
+            'include/sksl/',
             ]
 
     for i in ignore_list:
diff --git a/download.lst b/download.lst
index cf97f1ff8d3c..3355422c9987 100644
--- a/download.lst
+++ b/download.lst
@@ -235,8 +235,8 @@ export RHINO_SHA256SUM := 
1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131
 export RHINO_TARBALL := 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
 export SERF_SHA256SUM := 
6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700
 export SERF_TARBALL := serf-1.2.1.tar.bz2
-export SKIA_SHA256SUM := 
abe0b94d54edb717c58d74263f4ed3d27824d2ce9e9f2ce85a21ab38d993f94d
-export SKIA_TARBALL := skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz
+export SKIA_SHA256SUM := 
cf90e16d8a093d6cb5756d515c98397c98ca2bb00b7c28cf0e884aa4e9ed7a82
+export SKIA_TARBALL := skia-m91-b99622c05aa071606921ab35a4b59fba5305669d.tar.xz
 export STAROFFICE_SHA256SUM := 
f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db
 export STAROFFICE_VERSION_MICRO := 7
 export STAROFFICE_TARBALL := 
libstaroffice-0.0.$(STAROFFICE_VERSION_MICRO).tar.xz
diff --git a/external/skia/Library_skia.mk b/external/skia/Library_skia.mk
index a1f1f1c30ef6..f57e6378de2d 100644
--- a/external/skia/Library_skia.mk
+++ b/external/skia/Library_skia.mk
@@ -339,7 +339,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/effects/imagefilters/SkComposeImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkDisplacementMapImageFilter 
\
     UnpackedTarball/skia/src/effects/imagefilters/SkDropShadowImageFilter \
-    UnpackedTarball/skia/src/effects/imagefilters/SkImageFilters \
     UnpackedTarball/skia/src/effects/imagefilters/SkImageImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkLightingImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkMagnifierImageFilter \
@@ -362,7 +361,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/effects/SkLumaColorFilter \
     UnpackedTarball/skia/src/effects/SkOpPathEffect \
     UnpackedTarball/skia/src/effects/SkOverdrawColorFilter \
-    UnpackedTarball/skia/src/effects/SkPackBits \
     UnpackedTarball/skia/src/effects/SkShaderMaskFilter \
     UnpackedTarball/skia/src/effects/SkTableColorFilter \
     UnpackedTarball/skia/src/effects/SkTableMaskFilter \
@@ -431,6 +429,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/shaders/SkPictureShader \
     UnpackedTarball/skia/src/shaders/SkShader \
     UnpackedTarball/skia/src/sksl/dsl/DSLBlock \
+    UnpackedTarball/skia/src/sksl/dsl/DSLCase \
     UnpackedTarball/skia/src/sksl/dsl/DSLCore \
     UnpackedTarball/skia/src/sksl/dsl/DSLExpression \
     UnpackedTarball/skia/src/sksl/dsl/DSLFunction \
@@ -439,25 +438,42 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/dsl/DSLVar \
     UnpackedTarball/skia/src/sksl/dsl/priv/DSLFPs \
     UnpackedTarball/skia/src/sksl/dsl/priv/DSLWriter \
+    UnpackedTarball/skia/src/sksl/ir/SkSLBinaryExpression \
+    UnpackedTarball/skia/src/sksl/ir/SkSLBlock \
     UnpackedTarball/skia/src/sksl/ir/SkSLConstructor \
+    UnpackedTarball/skia/src/sksl/ir/SkSLConstructorArray \
+    UnpackedTarball/skia/src/sksl/ir/SkSLConstructorCompound \
+    UnpackedTarball/skia/src/sksl/ir/SkSLConstructorCompoundCast \
+    UnpackedTarball/skia/src/sksl/ir/SkSLConstructorDiagonalMatrix \
+    UnpackedTarball/skia/src/sksl/ir/SkSLConstructorMatrixResize \
+    UnpackedTarball/skia/src/sksl/ir/SkSLConstructorScalarCast \
+    UnpackedTarball/skia/src/sksl/ir/SkSLConstructorSplat \
+    UnpackedTarball/skia/src/sksl/ir/SkSLDoStatement \
+    UnpackedTarball/skia/src/sksl/ir/SkSLExpressionStatement \
+    UnpackedTarball/skia/src/sksl/ir/SkSLFieldAccess \
+    UnpackedTarball/skia/src/sksl/ir/SkSLForStatement \
+    UnpackedTarball/skia/src/sksl/ir/SkSLFunctionCall \
+    UnpackedTarball/skia/src/sksl/ir/SkSLIfStatement \
+    UnpackedTarball/skia/src/sksl/ir/SkSLIndexExpression \
     UnpackedTarball/skia/src/sksl/ir/SkSLPrefixExpression \
+    UnpackedTarball/skia/src/sksl/ir/SkSLPostfixExpression \
     UnpackedTarball/skia/src/sksl/ir/SkSLSetting \
     UnpackedTarball/skia/src/sksl/ir/SkSLSwitchStatement \
     UnpackedTarball/skia/src/sksl/ir/SkSLSwizzle \
     UnpackedTarball/skia/src/sksl/ir/SkSLSymbolTable \
+    UnpackedTarball/skia/src/sksl/ir/SkSLTernaryExpression \
     UnpackedTarball/skia/src/sksl/ir/SkSLType \
+    UnpackedTarball/skia/src/sksl/ir/SkSLVarDeclarations \
     UnpackedTarball/skia/src/sksl/ir/SkSLVariable \
     UnpackedTarball/skia/src/sksl/ir/SkSLVariableReference \
     UnpackedTarball/skia/src/sksl/SkSLASTNode \
     UnpackedTarball/skia/src/sksl/SkSLAnalysis \
     UnpackedTarball/skia/src/sksl/SkSLBuiltinTypes \
-    UnpackedTarball/skia/src/sksl/SkSLCFGGenerator \
     UnpackedTarball/skia/src/sksl/SkSLCompiler \
     UnpackedTarball/skia/src/sksl/SkSLConstantFolder \
     UnpackedTarball/skia/src/sksl/SkSLContext \
     UnpackedTarball/skia/src/sksl/SkSLCPPCodeGenerator \
     UnpackedTarball/skia/src/sksl/SkSLCPPUniformCTypes \
-    UnpackedTarball/skia/src/sksl/SkSLDefinitionMap \
     UnpackedTarball/skia/src/sksl/SkSLDehydrator \
     UnpackedTarball/skia/src/sksl/SkSLGLSLCodeGenerator \
     UnpackedTarball/skia/src/sksl/SkSLHCodeGenerator \
@@ -519,24 +535,8 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ccpr/GrCCAtlas \
     UnpackedTarball/skia/src/gpu/ccpr/GrCCClipPath \
     UnpackedTarball/skia/src/gpu/ccpr/GrCCClipProcessor \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCConicShader \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCCoverageProcessor \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCCubicShader \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCDrawPathsOp \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCFiller \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCFillGeometry \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCPathCache \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCPathProcessor \
     UnpackedTarball/skia/src/gpu/ccpr/GrCCPerFlushResources \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCQuadraticShader \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCStrokeGeometry \
-    UnpackedTarball/skia/src/gpu/ccpr/GrCCStroker \
     UnpackedTarball/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer \
-    UnpackedTarball/skia/src/gpu/ccpr/GrGSCoverageProcessor \
-    UnpackedTarball/skia/src/gpu/ccpr/GrOctoBounds \
-    UnpackedTarball/skia/src/gpu/ccpr/GrSampleMaskProcessor \
-    UnpackedTarball/skia/src/gpu/ccpr/GrStencilAtlasOp \
-    UnpackedTarball/skia/src/gpu/ccpr/GrVSCoverageProcessor \
     UnpackedTarball/skia/src/gpu/effects/generated/GrAARectEffect \
     
UnpackedTarball/skia/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor
 \
     UnpackedTarball/skia/src/gpu/effects/generated/GrArithmeticProcessor \
@@ -545,7 +545,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/effects/generated/GrCircleEffect \
     UnpackedTarball/skia/src/gpu/effects/generated/GrClampFragmentProcessor \
     
UnpackedTarball/skia/src/gpu/effects/generated/GrColorMatrixFragmentProcessor \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrComposeLerpEffect \
     UnpackedTarball/skia/src/gpu/effects/generated/GrConfigConversionEffect \
     UnpackedTarball/skia/src/gpu/effects/generated/GrConstColorProcessor \
     UnpackedTarball/skia/src/gpu/effects/generated/GrDitherEffect \
@@ -586,7 +585,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLFragmentProcessor \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLGeometryProcessor \
-    UnpackedTarball/skia/src/gpu/glsl/GrGLSLPrimitiveProcessor \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLProgramBuilder \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLProgramDataManager \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLShaderBuilder \
@@ -643,6 +641,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/GrFinishCallbacks \
     UnpackedTarball/skia/src/gpu/GrFixedClip \
     UnpackedTarball/skia/src/gpu/GrFragmentProcessor \
+    UnpackedTarball/skia/src/gpu/GrGeometryProcessor \
     UnpackedTarball/skia/src/gpu/GrGpu \
     UnpackedTarball/skia/src/gpu/GrGpuBuffer \
     UnpackedTarball/skia/src/gpu/GrGpuResource \
@@ -655,13 +654,9 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/GrOpsRenderPass \
     UnpackedTarball/skia/src/gpu/GrOpsTask \
     UnpackedTarball/skia/src/gpu/GrPaint \
-    UnpackedTarball/skia/src/gpu/GrPath \
-    UnpackedTarball/skia/src/gpu/GrPathProcessor \
     UnpackedTarball/skia/src/gpu/GrPathRenderer \
     UnpackedTarball/skia/src/gpu/GrPathRendererChain \
-    UnpackedTarball/skia/src/gpu/GrPathRendering \
     UnpackedTarball/skia/src/gpu/GrPipeline \
-    UnpackedTarball/skia/src/gpu/GrPrimitiveProcessor \
     UnpackedTarball/skia/src/gpu/GrProcessorAnalysis \
     UnpackedTarball/skia/src/gpu/GrProcessor \
     UnpackedTarball/skia/src/gpu/GrProcessorSet \
@@ -682,7 +677,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/GrResourceCache \
     UnpackedTarball/skia/src/gpu/GrResourceProvider \
     UnpackedTarball/skia/src/gpu/GrRingBuffer \
-    UnpackedTarball/skia/src/gpu/GrSamplePatternDictionary \
     UnpackedTarball/skia/src/gpu/GrShaderCaps \
     UnpackedTarball/skia/src/gpu/GrShaderUtils \
     UnpackedTarball/skia/src/gpu/GrShaderVar \
@@ -711,6 +705,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/GrTextureRenderTargetProxy \
     UnpackedTarball/skia/src/gpu/GrTextureResolveRenderTask \
     UnpackedTarball/skia/src/gpu/GrThreadSafeCache \
+    UnpackedTarball/skia/src/gpu/GrThreadSafePipelineBuilder \
     UnpackedTarball/skia/src/gpu/GrTransferFromRenderTask \
     UnpackedTarball/skia/src/gpu/GrUtil \
     UnpackedTarball/skia/src/gpu/GrWaitRenderTask \
@@ -732,7 +727,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ops/GrDefaultPathRenderer \
     UnpackedTarball/skia/src/gpu/ops/GrDrawableOp \
     UnpackedTarball/skia/src/gpu/ops/GrDrawAtlasOp \
-    UnpackedTarball/skia/src/gpu/ops/GrDrawPathOp \
     UnpackedTarball/skia/src/gpu/ops/GrDrawVerticesOp \
     UnpackedTarball/skia/src/gpu/ops/GrFillRectOp \
     UnpackedTarball/skia/src/gpu/ops/GrFillRRectOp \
@@ -747,8 +741,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil \
     UnpackedTarball/skia/src/gpu/ops/GrSmallPathAtlasMgr \
     UnpackedTarball/skia/src/gpu/ops/GrSmallPathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/GrStencilAndCoverPathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/GrStencilPathOp \
     UnpackedTarball/skia/src/gpu/ops/GrSmallPathShapeData \
     UnpackedTarball/skia/src/gpu/ops/GrStrokeRectOp \
     UnpackedTarball/skia/src/gpu/ops/GrTriangulatingPathRenderer \
@@ -770,7 +762,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/text/GrAtlasManager \
     UnpackedTarball/skia/src/gpu/text/GrDistanceFieldAdjustTable \
     UnpackedTarball/skia/src/gpu/text/GrSDFMaskFilter \
-    UnpackedTarball/skia/src/gpu/text/GrSDFTOptions \
+    UnpackedTarball/skia/src/gpu/text/GrSDFTControl \
     UnpackedTarball/skia/src/gpu/text/GrStrikeCache \
     UnpackedTarball/skia/src/gpu/text/GrTextBlobCache \
     UnpackedTarball/skia/src/gpu/text/GrTextBlob \
diff --git a/external/skia/UnpackedTarball_skia.mk 
b/external/skia/UnpackedTarball_skia.mk
index e1ea21b3cd35..c2cc0506c032 100644
--- a/external/skia/UnpackedTarball_skia.mk
+++ b/external/skia/UnpackedTarball_skia.mk
@@ -11,8 +11,6 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,skia))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,skia,$(SKIA_TARBALL)))
 
-# * c++20.patch.0 has been reported upstream at
-#   <https://groups.google.com/forum/#!topic/skia-discuss/pYZQq_sLnv8> "C++20 
operator== issue":
 skia_patches := \
     fix-pch.patch.1 \
     fix-ddi.patch \
@@ -21,7 +19,6 @@ skia_patches := \
     fix-alpha-difference-copy.patch.1 \
     libvulkan-name.patch.1 \
     share-grcontext.patch.1 \
-    fix-gcc-x86.patch.1        \
     clang11-flax-vector-conversion.patch.0 \
     clang-attributes-warning.patch.1 \
     fontconfig-get-typeface.patch.0 \
@@ -32,7 +29,6 @@ skia_patches := \
     windows-typeface-directwrite.patch.0 \
     windows-raster-surface-no-copies.patch.1 \
     fix-windows-dwrite.patch.1 \
-    c++20.patch.0 \
     constexpr-debug-std-max.patch.1 \
     swap-buffers-rect.patch.1 \
     ubsan.patch.0 \
diff --git a/external/skia/c++20.patch.0 b/external/skia/c++20.patch.0
deleted file mode 100644
index 34edcb065735..000000000000
--- a/external/skia/c++20.patch.0
+++ /dev/null
@@ -1,17 +0,0 @@
---- include/private/SkTemplates.h
-+++ include/private/SkTemplates.h
-@@ -453,12 +453,12 @@
- 
- template<typename C, std::size_t... Is>
- constexpr auto SkMakeArrayFromIndexSequence(C c, std::index_sequence<Is...>)
---> std::array<std::result_of_t<C(std::size_t)>, sizeof...(Is)> {
-+-> std::array<std::invoke_result_t<C, std::size_t>, sizeof...(Is)> {
-     return {{ c(Is)... }};
- }
- 
- template<size_t N, typename C> constexpr auto SkMakeArray(C c)
---> std::array<std::result_of_t<C(std::size_t)>, N> {
-+-> std::array<std::invoke_result_t<C, std::size_t>, N> {
-     return SkMakeArrayFromIndexSequence(c, std::make_index_sequence<N>{});
- }
- 
diff --git a/external/skia/constexpr-debug-std-max.patch.1 
b/external/skia/constexpr-debug-std-max.patch.1
index 03a549c8fd4a..68162b84a657 100644
--- a/external/skia/constexpr-debug-std-max.patch.1
+++ b/external/skia/constexpr-debug-std-max.patch.1
@@ -1,5 +1,5 @@
 diff --git a/src/sksl/SkSLASTNode.h b/src/sksl/SkSLASTNode.h
-index e6d3015d33..d95b43a778 100644
+index c97186891a..4a5c898653 100644
 --- a/src/sksl/SkSLASTNode.h
 +++ b/src/sksl/SkSLASTNode.h
 @@ -18,6 +18,18 @@
@@ -21,12 +21,12 @@ index e6d3015d33..d95b43a778 100644
  /**
   * Represents a node in the abstract syntax tree (AST). The AST is based 
directly on the parse tree;
   * it is a parsed-but-not-yet-analyzed version of the program.
-@@ -251,7 +263,7 @@ struct ASTNode {
-     };
- 
-     struct NodeData {
--        char fBytes[std::max({sizeof(Token::Kind),
-+        char fBytes[skia_max({sizeof(Token::Kind),
+@@ -254,7 +266,7 @@ struct ASTNode {
+         // We use fBytes as a union which can hold any type of AST node, and 
use placement-new to
+         // copy AST objects into fBytes. Note that none of the AST objects 
have interesting
+         // destructors, so we do not bother doing a placement-delete on any 
of them in ~NodeData.
+-        char fBytes[std::max({sizeof(Operator),
++        char fBytes[skia_max({sizeof(Operator),
                                sizeof(StringFragment),
                                sizeof(bool),
                                sizeof(SKSL_INT),
diff --git a/external/skia/fix-gcc-x86.patch.1 
b/external/skia/fix-gcc-x86.patch.1
deleted file mode 100644
index 097c59475c5b..000000000000
--- a/external/skia/fix-gcc-x86.patch.1
+++ /dev/null
@@ -1,16 +0,0 @@
---- skia/third_party/skcms/src/Transform_inl.h   2020-04-13 00:38:56.363207994 
+0200
-+++ skia/third_party/skcms/src/Transform_inl.h~  2020-04-13 00:39:18.215603244 
+0200
-@@ -689,11 +689,11 @@
-       && (defined(__mips64) || defined(__i386) || defined(__s390x__))
-     #define MAYBE_NOINLINE __attribute__((noinline))
- #else
--    #define MAYBE_NOINLINE
-+    #define MAYBE_NOINLINE static
- #endif
- 
- MAYBE_NOINLINE
--static void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) {
-+void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) {
-     const int dim = (int)a2b->input_channels;
-     assert (0 < dim && dim <= 4);
- 
diff --git a/external/skia/fix-pch.patch.1 b/external/skia/fix-pch.patch.1
index 14199fc2feb2..66e6ce089e8f 100644
--- a/external/skia/fix-pch.patch.1
+++ b/external/skia/fix-pch.patch.1
@@ -22,23 +22,23 @@ index aba610eacf..792da4e9fb 100644
 +
  #endif
 diff --git a/src/core/SkM44.cpp b/src/core/SkM44.cpp
-index 248917423f..3d0bc00307 100644
+index 0cd138e6cc..ad7f7eca74 100644
 --- a/src/core/SkM44.cpp
 +++ b/src/core/SkM44.cpp
-@@ -283,6 +283,8 @@ SkM44 Sk3LookAt(const SkV3& eye, const SkV3& center, const 
SkV3& up) {
+@@ -283,6 +283,8 @@ SkM44 SkM44::LookAt(const SkV3& eye, const SkV3& center, 
const SkV3& up) {
      return m;
  }
  
 +#undef near
 +#undef far
- SkM44 Sk3Perspective(float near, float far, float angle) {
+ SkM44 SkM44::Perspective(float near, float far, float angle) {
      SkASSERT(far > near);
  
 diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
-index 76f69754c6..01ce4a1e2d 100644
+index afe3698f99..119ae41093 100644
 --- a/src/gpu/gl/GrGLGpu.cpp
 +++ b/src/gpu/gl/GrGLGpu.cpp
-@@ -3531,6 +3531,8 @@ void GrGLGpu::xferBarrier(GrRenderTarget* rt, 
GrXferBarrierType type) {
+@@ -3536,6 +3536,8 @@ void GrGLGpu::xferBarrier(GrRenderTarget* rt, 
GrXferBarrierType type) {
      }
  }
  
@@ -47,17 +47,6 @@ index 76f69754c6..01ce4a1e2d 100644
  void GrGLGpu::insertManualFramebufferBarrier() {
      
SkASSERT(this->caps()->requiresManualFBBarrierAfterTessellatedStencilDraw());
      GL_CALL(MemoryBarrier(GR_GL_FRAMEBUFFER_BARRIER_BIT));
-diff --git a/src/gpu/text/GrTextBlobCache.h b/src/gpu/text/GrTextBlobCache.h
-index c973384081..8943198ddd 100644
---- a/src/gpu/text/GrTextBlobCache.h
-+++ b/src/gpu/text/GrTextBlobCache.h
-@@ -91,4 +91,6 @@ private:
-     SkMessageBus<PurgeBlobMessage>::Inbox fPurgeBlobInbox 
SK_GUARDED_BY(fSpinLock);
- };
- 
-+template<> SkMessageBus<GrTextBlobCache::PurgeBlobMessage>* 
SkMessageBus<GrTextBlobCache::PurgeBlobMessage>::Get();
-+
- #endif
 diff --git a/src/gpu/vk/GrVkSemaphore.cpp b/src/gpu/vk/GrVkSemaphore.cpp
 index 23bf656bf8..f926ebfdc2 100644
 --- a/src/gpu/vk/GrVkSemaphore.cpp
@@ -84,7 +73,7 @@ index af4909aaaf..825ec35c83 100644
  #include <d2d1.h>
  
 diff --git a/third_party/skcms/skcms.cc b/third_party/skcms/skcms.cc
-index 4f983439b9..f6fc53c91a 100644
+index 33e3514253..af9313a958 100644
 --- a/third_party/skcms/skcms.cc
 +++ b/third_party/skcms/skcms.cc
 @@ -130,7 +130,8 @@ static float minus_1_ulp(float x) {
@@ -97,7 +86,7 @@ index 4f983439b9..f6fc53c91a 100644
  struct TF_PQish  { float A,B,C,D,E,F; };
  struct TF_HLGish { float R,G,a,b,c,K_minus_1; };
  // We didn't originally support a scale factor K for HLG, and instead just 
stored 0 in
-@@ -2059,7 +2060,9 @@ typedef enum {
+@@ -2061,7 +2062,9 @@ typedef enum {
      Op_store_hhhh,
      Op_store_fff,
      Op_store_ffff,
diff --git a/external/skia/inc/pch/precompiled_skia.hxx 
b/external/skia/inc/pch/precompiled_skia.hxx
index 760dea10de62..18df634e6d93 100644
--- a/external/skia/inc/pch/precompiled_skia.hxx
+++ b/external/skia/inc/pch/precompiled_skia.hxx
@@ -13,17 +13,17 @@
  manual changes will be rewritten by the next run of update_pch.sh (which 
presumably
  also fixes all possible problems, so it's usually better to use it).
 
- Generated on 2021-03-01 17:09:09 using:
+ Generated on 2021-04-08 18:14:02 using:
  ./bin/update_pch external/skia skia --cutoff=1 --exclude:system 
--include:module --include:local
 
  If after updating build fails, use the following command to locate 
conflicting headers:
  ./bin/update_pch_bisect ./external/skia/inc/pch/precompiled_skia.hxx "make 
external/skia.build" --find-conflicts
 */
 
+#include <sal/config.h>
 #if PCH_LEVEL >= 1
 #include <algorithm>
 #include <array>
-#include <assert.h>
 #include <atomic>
 #include <bitset>
 #include <cctype>
@@ -34,12 +34,10 @@
 #include <cmath>
 #include <cstddef>
 #include <cstdio>
-#include <cstdlib>
 #include <cstring>
 #include <ctype.h>
 #include <deque>
 #include <errno.h>
-#include <float.h>
 #include <forward_list>
 #include <fstream>
 #include <functional>
@@ -52,10 +50,10 @@
 #include <math.h>
 #include <memory>
 #include <new>
+#include <numeric>
 #include <png.h>
 #include <queue>
 #include <set>
-#include <skcms.h>
 #include <sstream>
 #include <stdarg.h>
 #include <stddef.h>
@@ -107,7 +105,6 @@
 #include <include/core/SkDocument.h>
 #include <include/core/SkDrawable.h>
 #include <include/core/SkExecutor.h>
-#include <include/core/SkFilterQuality.h>
 #include <include/core/SkFlattenable.h>
 #include <include/core/SkFont.h>
 #include <include/core/SkFontMetrics.h>
@@ -228,7 +225,14 @@
 #include <include/private/SkNx.h>
 #include <include/private/SkOnce.h>
 #include <include/private/SkPathRef.h>
+#include <include/private/SkSLDefines.h>
+#include <include/private/SkSLLayout.h>
+#include <include/private/SkSLModifiers.h>
+#include <include/private/SkSLProgramElement.h>
 #include <include/private/SkSLSampleUsage.h>
+#include <include/private/SkSLStatement.h>
+#include <include/private/SkSLString.h>
+#include <include/private/SkSLSymbol.h>
 #include <include/private/SkSafe32.h>
 #include <include/private/SkSemaphore.h>
 #include <include/private/SkShadowFlags.h>
@@ -463,10 +467,7 @@
 #include <src/effects/SkEmbossMask.h>
 #include <src/effects/SkEmbossMaskFilter.h>
 #include <src/effects/SkOpPE.h>
-#include <src/effects/SkPackBits.h>
 #include <src/effects/SkTrimPE.h>
-#include <src/effects/imagefilters/SkPictureImageFilter.h>
-#include <src/effects/imagefilters/SkTileImageFilter.h>
 #include <src/gpu/GrAATriangulator.h>
 #include <src/gpu/GrAHardwareBufferImageGenerator.h>
 #include <src/gpu/GrAHardwareBufferUtils.h>
@@ -530,14 +531,11 @@
 #include <src/gpu/GrOpsRenderPass.h>
 #include <src/gpu/GrOpsTask.h>
 #include <src/gpu/GrPaint.h>
-#include <src/gpu/GrPath.h>
-#include <src/gpu/GrPathProcessor.h>
 #include <src/gpu/GrPathRenderer.h>
 #include <src/gpu/GrPathRendererChain.h>
-#include <src/gpu/GrPathRendering.h>
 #include <src/gpu/GrPersistentCacheUtils.h>
 #include <src/gpu/GrPipeline.h>
-#include <src/gpu/GrPrimitiveProcessor.h>
+#include <src/gpu/GrPixmap.h>
 #include <src/gpu/GrProcessor.h>
 #include <src/gpu/GrProcessorAnalysis.h>
 #include <src/gpu/GrProcessorSet.h>
@@ -561,7 +559,6 @@
 #include <src/gpu/GrSPIRVUniformHandler.h>
 #include <src/gpu/GrSPIRVVaryingHandler.h>
 #include <src/gpu/GrSWMaskHelper.h>
-#include <src/gpu/GrSamplePatternDictionary.h>
 #include <src/gpu/GrSamplerState.h>
 #include <src/gpu/GrScissorState.h>
 #include <src/gpu/GrSemaphore.h>
@@ -595,6 +592,7 @@
 #include <src/gpu/GrTextureRenderTargetProxy.h>
 #include <src/gpu/GrTextureResolveRenderTask.h>
 #include <src/gpu/GrThreadSafeCache.h>
+#include <src/gpu/GrThreadSafePipelineBuilder.h>
 #include <src/gpu/GrTracing.h>
 #include <src/gpu/GrTransferFromRenderTask.h>
 #include <src/gpu/GrTriangulator.h>
@@ -609,29 +607,12 @@
 #include <src/gpu/GrYUVATextureProxies.h>
 #include <src/gpu/SkGpuDevice.h>
 #include <src/gpu/SkGr.h>
-#include <src/gpu/ccpr/GrAutoMapVertexBuffer.h>
 #include <src/gpu/ccpr/GrCCAtlas.h>
 #include <src/gpu/ccpr/GrCCClipPath.h>
 #include <src/gpu/ccpr/GrCCClipProcessor.h>
-#include <src/gpu/ccpr/GrCCConicShader.h>
-#include <src/gpu/ccpr/GrCCCoverageProcessor.h>
-#include <src/gpu/ccpr/GrCCCubicShader.h>
-#include <src/gpu/ccpr/GrCCDrawPathsOp.h>
-#include <src/gpu/ccpr/GrCCFillGeometry.h>
-#include <src/gpu/ccpr/GrCCFiller.h>
-#include <src/gpu/ccpr/GrCCPathCache.h>
-#include <src/gpu/ccpr/GrCCPathProcessor.h>
 #include <src/gpu/ccpr/GrCCPerFlushResources.h>
 #include <src/gpu/ccpr/GrCCPerOpsTaskPaths.h>
-#include <src/gpu/ccpr/GrCCQuadraticShader.h>
-#include <src/gpu/ccpr/GrCCStrokeGeometry.h>
-#include <src/gpu/ccpr/GrCCStroker.h>
 #include <src/gpu/ccpr/GrCoverageCountingPathRenderer.h>
-#include <src/gpu/ccpr/GrGSCoverageProcessor.h>
-#include <src/gpu/ccpr/GrOctoBounds.h>
-#include <src/gpu/ccpr/GrSampleMaskProcessor.h>
-#include <src/gpu/ccpr/GrStencilAtlasOp.h>
-#include <src/gpu/ccpr/GrVSCoverageProcessor.h>
 #include <src/gpu/effects/GrAtlasedShaderHelpers.h>
 #include <src/gpu/effects/GrBezierEffect.h>
 #include <src/gpu/effects/GrBicubicEffect.h>
@@ -660,7 +641,6 @@
 #include <src/gpu/effects/generated/GrCircleEffect.h>
 #include <src/gpu/effects/generated/GrClampFragmentProcessor.h>
 #include <src/gpu/effects/generated/GrColorMatrixFragmentProcessor.h>
-#include <src/gpu/effects/generated/GrComposeLerpEffect.h>
 #include <src/gpu/effects/generated/GrConfigConversionEffect.h>
 #include <src/gpu/effects/generated/GrConstColorProcessor.h>
 #include <src/gpu/effects/generated/GrDeviceSpaceEffect.h>
@@ -688,7 +668,6 @@
 #include <src/gpu/glsl/GrGLSLFragmentProcessor.h>
 #include <src/gpu/glsl/GrGLSLFragmentShaderBuilder.h>
 #include <src/gpu/glsl/GrGLSLGeometryProcessor.h>
-#include <src/gpu/glsl/GrGLSLPrimitiveProcessor.h>
 #include <src/gpu/glsl/GrGLSLProgramBuilder.h>
 #include <src/gpu/glsl/GrGLSLProgramDataManager.h>
 #include <src/gpu/glsl/GrGLSLShaderBuilder.h>
@@ -724,7 +703,6 @@
 #include <src/gpu/ops/GrDefaultPathRenderer.h>
 #include <src/gpu/ops/GrDrawAtlasOp.h>
 #include <src/gpu/ops/GrDrawOp.h>
-#include <src/gpu/ops/GrDrawPathOp.h>
 #include <src/gpu/ops/GrDrawVerticesOp.h>
 #include <src/gpu/ops/GrDrawableOp.h>
 #include <src/gpu/ops/GrFillRRectOp.h>
@@ -741,8 +719,6 @@
 #include <src/gpu/ops/GrSmallPathAtlasMgr.h>
 #include <src/gpu/ops/GrSmallPathRenderer.h>
 #include <src/gpu/ops/GrSmallPathShapeData.h>
-#include <src/gpu/ops/GrStencilAndCoverPathRenderer.h>
-#include <src/gpu/ops/GrStencilPathOp.h>
 #include <src/gpu/ops/GrStrokeRectOp.h>
 #include <src/gpu/ops/GrTextureOp.h>
 #include <src/gpu/ops/GrTriangulatingPathRenderer.h>
@@ -758,13 +734,14 @@
 #include <src/gpu/tessellate/GrStrokeIterator.h>
 #include <src/gpu/tessellate/GrStrokeTessellateOp.h>
 #include <src/gpu/tessellate/GrStrokeTessellateShader.h>
+#include <src/gpu/tessellate/GrStrokeTessellator.h>
 #include <src/gpu/tessellate/GrTessellatingStencilFillOp.h>
 #include <src/gpu/tessellate/GrTessellationPathRenderer.h>
 #include <src/gpu/tessellate/GrWangsFormula.h>
 #include <src/gpu/text/GrAtlasManager.h>
 #include <src/gpu/text/GrDistanceFieldAdjustTable.h>
 #include <src/gpu/text/GrSDFMaskFilter.h>
-#include <src/gpu/text/GrSDFTOptions.h>
+#include <src/gpu/text/GrSDFTControl.h>
 #include <src/gpu/text/GrStrikeCache.h>
 #include <src/gpu/text/GrTextBlob.h>
 #include <src/gpu/text/GrTextBlobCache.h>
@@ -862,15 +839,12 @@
 #include <src/sksl/SkSLASTNode.h>
 #include <src/sksl/SkSLAnalysis.h>
 #include <src/sksl/SkSLBuiltinTypes.h>
-#include <src/sksl/SkSLCFGGenerator.h>
 #include <src/sksl/SkSLCPPCodeGenerator.h>
 #include <src/sksl/SkSLCPPUniformCTypes.h>
 #include <src/sksl/SkSLCodeGenerator.h>
 #include <src/sksl/SkSLCompiler.h>
 #include <src/sksl/SkSLConstantFolder.h>
 #include <src/sksl/SkSLContext.h>
-#include <src/sksl/SkSLDefines.h>
-#include <src/sksl/SkSLDefinitionMap.h>
 #include <src/sksl/SkSLDehydrator.h>
 #include <src/sksl/SkSLErrorReporter.h>
 #include <src/sksl/SkSLGLSLCodeGenerator.h>
@@ -891,7 +865,6 @@
 #include <src/sksl/SkSLSPIRVCodeGenerator.h>
 #include <src/sksl/SkSLSPIRVtoHLSL.h>
 #include <src/sksl/SkSLSectionAndParameterHelper.h>
-#include <src/sksl/SkSLString.h>
 #include <src/sksl/SkSLStringStream.h>
 #include <src/sksl/SkSLUtil.h>
 #include <src/sksl/SkSLVMGenerator.h>
@@ -901,6 +874,13 @@
 #include <src/sksl/ir/SkSLBreakStatement.h>
 #include <src/sksl/ir/SkSLCodeStringExpression.h>
 #include <src/sksl/ir/SkSLConstructor.h>
+#include <src/sksl/ir/SkSLConstructorArray.h>
+#include <src/sksl/ir/SkSLConstructorCompound.h>
+#include <src/sksl/ir/SkSLConstructorCompoundCast.h>
+#include <src/sksl/ir/SkSLConstructorDiagonalMatrix.h>
+#include <src/sksl/ir/SkSLConstructorMatrixResize.h>
+#include <src/sksl/ir/SkSLConstructorScalarCast.h>
+#include <src/sksl/ir/SkSLConstructorSplat.h>
 #include <src/sksl/ir/SkSLContinueStatement.h>
 #include <src/sksl/ir/SkSLDiscardStatement.h>
 #include <src/sksl/ir/SkSLDoStatement.h>
@@ -924,23 +904,18 @@
 #include <src/sksl/ir/SkSLInlineMarker.h>
 #include <src/sksl/ir/SkSLIntLiteral.h>
 #include <src/sksl/ir/SkSLInterfaceBlock.h>
-#include <src/sksl/ir/SkSLLayout.h>
-#include <src/sksl/ir/SkSLModifiers.h>
 #include <src/sksl/ir/SkSLModifiersDeclaration.h>
 #include <src/sksl/ir/SkSLNop.h>
 #include <src/sksl/ir/SkSLPostfixExpression.h>
 #include <src/sksl/ir/SkSLPrefixExpression.h>
 #include <src/sksl/ir/SkSLProgram.h>
-#include <src/sksl/ir/SkSLProgramElement.h>
 #include <src/sksl/ir/SkSLReturnStatement.h>
 #include <src/sksl/ir/SkSLSection.h>
 #include <src/sksl/ir/SkSLSetting.h>
-#include <src/sksl/ir/SkSLStatement.h>
 #include <src/sksl/ir/SkSLStructDefinition.h>
 #include <src/sksl/ir/SkSLSwitchCase.h>
 #include <src/sksl/ir/SkSLSwitchStatement.h>
 #include <src/sksl/ir/SkSLSwizzle.h>
-#include <src/sksl/ir/SkSLSymbol.h>
 #include <src/sksl/ir/SkSLSymbolAlias.h>
 #include <src/sksl/ir/SkSLSymbolTable.h>
 #include <src/sksl/ir/SkSLTernaryExpression.h>
diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index be31e0ee649a..828b7959244b 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -1434,7 +1434,14 @@ void SkiaSalGraphicsImpl::invert(basegfx::B2DPolygon 
const& rPoly, SalInvert eFl
     // with SkBlendMode::kDifference(?) and surfaces wider than 1024 pixels, 
resulting
     // in drawing errors. Work that around by fetching the relevant part of 
the surface
     // and drawing using CPU.
-    bool intelHack = (isGPU() && getVendor() == DriverBlocklist::VendorIntel 
&& !mXorMode);
+    bool rasterHack = (isGPU() && getVendor() == DriverBlocklist::VendorIntel 
&& !mXorMode);
+#if defined LINUX
+    // With the chrome/m91 Skia version 
BackendTest::testDrawInvertTrackFrameWithRectangle()
+    // also has a problem with SkBlendMode::kDifference on AMD/Linux, leading 
to crashes or even
+    // driver instability. Also work around by drawing using CPU.
+    if (isGPU() && getVendor() == DriverBlocklist::VendorAMD && !mXorMode)
+        rasterHack = true;
+#endif
     SkPath aPath;
     addPolygonToPath(rPoly, aPath);
     aPath.setFillType(SkPathFillType::kEvenOdd);
@@ -1454,7 +1461,7 @@ void SkiaSalGraphicsImpl::invert(basegfx::B2DPolygon 
const& rPoly, SalInvert eFl
         aPaint.setPathEffect(SkDashPathEffect::Make(intervals, 
SK_ARRAY_COUNT(intervals), 0));
         aPaint.setColor(SkColorSetARGB(255, 255, 255, 255));
         aPaint.setBlendMode(SkBlendMode::kDifference);
-        if (!intelHack)
+        if (!rasterHack)
             getDrawCanvas()->drawPath(aPath, aPaint);
         else
         {
@@ -1505,7 +1512,7 @@ void SkiaSalGraphicsImpl::invert(basegfx::B2DPolygon 
const& rPoly, SalInvert eFl
             aPaint.setShader(
                 aBitmap.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat, 
SkSamplingOptions()));
         }
-        if (!intelHack)
+        if (!rasterHack)
             getDrawCanvas()->drawPath(aPath, aPaint);
         else
         {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to