[Libreoffice-commits] core.git: bin/update_pch download.lst external/skia vcl/skia

Luboš Luňák (via logerrit) logerrit at kemper.freedesktop.org
Wed Apr 14 16:55:18 UTC 2021


 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, 145 insertions(+), 72 deletions(-)

New commits:
commit 302fb4c1ec4a24112f9a2028be4d424891f10b4c
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Wed Apr 14 14:29:20 2021 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Wed Apr 14 18:54:32 2021 +0200

    Revert "update Skia to chrome/m91" (tdf#141680)
    
    The m91 snapshot seems to cause a number of Vulkan problems.
    My commit already worked around one, but there are apparently
    others, such as very slow startup, or a failed Skia assertion
    triggered by VCL Skia's copyArea().
    
    This reverts commit 09d850e46903a528d4b08d3fdf03c3964d79fbc5.
    
    Change-Id: I4f1832ba76db15cab8eccbe115d21c989da3c841
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114089
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/bin/update_pch b/bin/update_pch
index a20c85f88f36..e47a97994bb2 100755
--- a/bin/update_pch
+++ b/bin/update_pch
@@ -474,8 +474,7 @@ def filter_ignore(line, module):
             'src/sksl/SkSLCPP.h',
             'src/gpu/vk/GrVkAMDMemoryAllocator.h',
             'src/gpu/GrUtil.h',
-            'src/sksl/dsl/', # conflict between SkSL::Expression and SkSL::dsl::Expression
-            'include/sksl/',
+            'src/sksl/dsl/',
             ]
 
     for i in ignore_list:
diff --git a/download.lst b/download.lst
index 3355422c9987..cf97f1ff8d3c 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 := cf90e16d8a093d6cb5756d515c98397c98ca2bb00b7c28cf0e884aa4e9ed7a82
-export SKIA_TARBALL := skia-m91-b99622c05aa071606921ab35a4b59fba5305669d.tar.xz
+export SKIA_SHA256SUM := abe0b94d54edb717c58d74263f4ed3d27824d2ce9e9f2ce85a21ab38d993f94d
+export SKIA_TARBALL := skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.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 f57e6378de2d..a1f1f1c30ef6 100644
--- a/external/skia/Library_skia.mk
+++ b/external/skia/Library_skia.mk
@@ -339,6 +339,7 @@ $(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 \
@@ -361,6 +362,7 @@ $(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 \
@@ -429,7 +431,6 @@ $(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 \
@@ -438,42 +439,25 @@ $(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 \
@@ -535,8 +519,24 @@ $(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,6 +545,7 @@ $(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 \
@@ -585,6 +586,7 @@ $(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 \
@@ -641,7 +643,6 @@ $(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 \
@@ -654,9 +655,13 @@ $(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 \
@@ -677,6 +682,7 @@ $(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 \
@@ -705,7 +711,6 @@ $(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 \
@@ -727,6 +732,7 @@ $(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 \
@@ -741,6 +747,8 @@ $(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 \
@@ -762,7 +770,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/GrSDFTControl \
+    UnpackedTarball/skia/src/gpu/text/GrSDFTOptions \
     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 c2cc0506c032..e1ea21b3cd35 100644
--- a/external/skia/UnpackedTarball_skia.mk
+++ b/external/skia/UnpackedTarball_skia.mk
@@ -11,6 +11,8 @@ $(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 \
@@ -19,6 +21,7 @@ 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 \
@@ -29,6 +32,7 @@ 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
new file mode 100644
index 000000000000..34edcb065735
--- /dev/null
+++ b/external/skia/c++20.patch.0
@@ -0,0 +1,17 @@
+--- 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 68162b84a657..03a549c8fd4a 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 c97186891a..4a5c898653 100644
+index e6d3015d33..d95b43a778 100644
 --- a/src/sksl/SkSLASTNode.h
 +++ b/src/sksl/SkSLASTNode.h
 @@ -18,6 +18,18 @@
@@ -21,12 +21,12 @@ index c97186891a..4a5c898653 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.
-@@ -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),
+@@ -251,7 +263,7 @@ struct ASTNode {
+     };
+ 
+     struct NodeData {
+-        char fBytes[std::max({sizeof(Token::Kind),
++        char fBytes[skia_max({sizeof(Token::Kind),
                                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
new file mode 100644
index 000000000000..097c59475c5b
--- /dev/null
+++ b/external/skia/fix-gcc-x86.patch.1
@@ -0,0 +1,16 @@
+--- 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 66e6ce089e8f..14199fc2feb2 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 0cd138e6cc..ad7f7eca74 100644
+index 248917423f..3d0bc00307 100644
 --- a/src/core/SkM44.cpp
 +++ b/src/core/SkM44.cpp
-@@ -283,6 +283,8 @@ SkM44 SkM44::LookAt(const SkV3& eye, const SkV3& center, const SkV3& up) {
+@@ -283,6 +283,8 @@ SkM44 Sk3LookAt(const SkV3& eye, const SkV3& center, const SkV3& up) {
      return m;
  }
  
 +#undef near
 +#undef far
- SkM44 SkM44::Perspective(float near, float far, float angle) {
+ SkM44 Sk3Perspective(float near, float far, float angle) {
      SkASSERT(far > near);
  
 diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
-index afe3698f99..119ae41093 100644
+index 76f69754c6..01ce4a1e2d 100644
 --- a/src/gpu/gl/GrGLGpu.cpp
 +++ b/src/gpu/gl/GrGLGpu.cpp
-@@ -3536,6 +3536,8 @@ void GrGLGpu::xferBarrier(GrRenderTarget* rt, GrXferBarrierType type) {
+@@ -3531,6 +3531,8 @@ void GrGLGpu::xferBarrier(GrRenderTarget* rt, GrXferBarrierType type) {
      }
  }
  
@@ -47,6 +47,17 @@ index afe3698f99..119ae41093 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
@@ -73,7 +84,7 @@ index af4909aaaf..825ec35c83 100644
  #include <d2d1.h>
  
 diff --git a/third_party/skcms/skcms.cc b/third_party/skcms/skcms.cc
-index 33e3514253..af9313a958 100644
+index 4f983439b9..f6fc53c91a 100644
 --- a/third_party/skcms/skcms.cc
 +++ b/third_party/skcms/skcms.cc
 @@ -130,7 +130,8 @@ static float minus_1_ulp(float x) {
@@ -86,7 +97,7 @@ index 33e3514253..af9313a958 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
-@@ -2061,7 +2062,9 @@ typedef enum {
+@@ -2059,7 +2060,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 18df634e6d93..760dea10de62 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-04-08 18:14:02 using:
+ Generated on 2021-03-01 17:09:09 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,10 +34,12 @@
 #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>
@@ -50,10 +52,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>
@@ -105,6 +107,7 @@
 #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>
@@ -225,14 +228,7 @@
 #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>
@@ -467,7 +463,10 @@
 #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>
@@ -531,11 +530,14 @@
 #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/GrPixmap.h>
+#include <src/gpu/GrPrimitiveProcessor.h>
 #include <src/gpu/GrProcessor.h>
 #include <src/gpu/GrProcessorAnalysis.h>
 #include <src/gpu/GrProcessorSet.h>
@@ -559,6 +561,7 @@
 #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>
@@ -592,7 +595,6 @@
 #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>
@@ -607,12 +609,29 @@
 #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>
@@ -641,6 +660,7 @@
 #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>
@@ -668,6 +688,7 @@
 #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>
@@ -703,6 +724,7 @@
 #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>
@@ -719,6 +741,8 @@
 #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>
@@ -734,14 +758,13 @@
 #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/GrSDFTControl.h>
+#include <src/gpu/text/GrSDFTOptions.h>
 #include <src/gpu/text/GrStrikeCache.h>
 #include <src/gpu/text/GrTextBlob.h>
 #include <src/gpu/text/GrTextBlobCache.h>
@@ -839,12 +862,15 @@
 #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>
@@ -865,6 +891,7 @@
 #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>
@@ -874,13 +901,6 @@
 #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>
@@ -904,18 +924,23 @@
 #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 fd4f64e930cf..e2d4ff9a3800 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -1434,14 +1434,7 @@ 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 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
+    bool intelHack = (isGPU() && getVendor() == DriverBlocklist::VendorIntel && !mXorMode);
     SkPath aPath;
     addPolygonToPath(rPoly, aPath);
     aPath.setFillType(SkPathFillType::kEvenOdd);
@@ -1461,7 +1454,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 (!rasterHack)
+        if (!intelHack)
             getDrawCanvas()->drawPath(aPath, aPaint);
         else
         {
@@ -1512,7 +1505,7 @@ void SkiaSalGraphicsImpl::invert(basegfx::B2DPolygon const& rPoly, SalInvert eFl
             aPaint.setShader(
                 aBitmap.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat, SkSamplingOptions()));
         }
-        if (!rasterHack)
+        if (!intelHack)
             getDrawCanvas()->drawPath(aPath, aPaint);
         else
         {


More information about the Libreoffice-commits mailing list