[Libreoffice-commits] core.git: bin/update_pch config_host/config_skia.h.in configure.ac download.lst external/skia

Luboš Luňák (via logerrit) logerrit at kemper.freedesktop.org
Thu Aug 26 08:28:33 UTC 2021


 bin/update_pch                                |    3 
 config_host/config_skia.h.in                  |    2 
 configure.ac                                  |   65 ++-
 download.lst                                  |    4 
 external/skia/Library_skia.mk                 |  202 +++++------
 external/skia/UnpackedTarball_skia.mk         |    5 
 external/skia/c++20.patch.0                   |   17 
 external/skia/constexpr-debug-std-max.patch.1 |   16 
 external/skia/disable-freetype-colrv1.1       |   24 +
 external/skia/fix-gcc-x86.patch.1             |   16 
 external/skia/fix-pch.patch.1                 |   45 +-
 external/skia/fix-without-gl.patch.0          |    7 
 external/skia/inc/pch/precompiled_skia.hxx    |  451 +-------------------------
 external/skia/make-api-visible.patch.1        |   30 -
 14 files changed, 242 insertions(+), 645 deletions(-)

New commits:
commit a0edcc68f94915a78fcc08e70d2cdd752abd9ebb
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Tue May 25 12:13:24 2021 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Thu Aug 26 10:27:57 2021 +0200

    update Skia to chrome/m94
    
    Updating to m91 or newer required handling the problem with Vulkan
    crashing, but that's been finally fixed by the previous commit.
    
    This Skia version also requires at least freetype-2.8.1, so disable
    Skia if that's not available (LO's minimum is lower). Additionally
    patch out Skia's use of TT_SUPPORT_COLRV1, which seems to be
    an unstable freetype API from the git version and it doesn't even
    compile with the latest stable 2.9.11 release
    
    Change-Id: I4a17effb912468c43fc7cdb69fe453062e4d2447
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120967
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/bin/update_pch b/bin/update_pch
index e47a97994bb2..e59e72172deb 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/', # conflict between SkSL::Expression and SkSL::dsl::Expression
+            'include/sksl/',
             ]
 
     for i in ignore_list:
diff --git a/config_host/config_skia.h.in b/config_host/config_skia.h.in
index 367920665704..b98ba14d31ec 100644
--- a/config_host/config_skia.h.in
+++ b/config_host/config_skia.h.in
@@ -50,6 +50,8 @@ are the same.
 #define SK_ASSUME_GL 1
 #define SK_ASSUME_GL_ES 0
 
+#define SK_ENABLE_SKSL 1
+
 // See https://codereview.chromium.org/2089583002 . This makes raster drawing
 // faster in some cases, it was made conditional because of some tests failing,
 // but if I'm reading the review correctly the code is in fact fine and just
diff --git a/configure.ac b/configure.ac
index bd929450971c..e44f1ab9e312 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9397,6 +9397,7 @@ if test "$using_freetype_fontconfig" = yes -a "$test_system_freetype" != no; the
     # FreeType's docs/VERSION.DLL provides a table mapping between the three
     #
     # 9.9.3 is 2.2.0
+    # When the minimal version is at least 2.8.1, remove Skia's check down below.
     PKG_CHECK_MODULES(FREETYPE, freetype2 >= 9.9.3)
     FREETYPE_CFLAGS=$(printf '%s' "$FREETYPE_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
     FilterLibs "${FREETYPE_LIBS}"
@@ -11974,38 +11975,52 @@ AC_SUBST(POPPLER_CFLAGS)
 AC_SUBST(POPPLER_LIBS)
 
 # Skia?
-AC_MSG_CHECKING([whether to build Skia])
 ENABLE_SKIA=
 if test "$enable_skia" != "no" -a "$build_skia" = "yes" -a -z "$DISABLE_GUI"; then
-    if test "$enable_skia" = "debug"; then
-        AC_MSG_RESULT([yes (debug)])
-        ENABLE_SKIA_DEBUG=TRUE
-    else
-        AC_MSG_RESULT([yes])
-        ENABLE_SKIA_DEBUG=
-    fi
-    ENABLE_SKIA=TRUE
-    AC_DEFINE(HAVE_FEATURE_SKIA)
-    BUILD_TYPE="$BUILD_TYPE SKIA"
+    # Skia now requires at least freetype2 >= 2.8.1, which is less that what LO requires as system freetype.
+    if test "$SYSTEM_FREETYPE" = TRUE; then
+        PKG_CHECK_EXISTS(freetype2 >= 21.0.15, # 21.0.15 = 2.8.1
+            [skia_freetype_ok=yes],
+            [skia_freetype_ok=no])
+    else # internal is ok
+        skia_freetype_ok=yes
+    fi
+    AC_MSG_CHECKING([whether to build Skia])
+    if test "$skia_freetype_ok" = "yes"; then
+        if test "$enable_skia" = "debug"; then
+            AC_MSG_RESULT([yes (debug)])
+            ENABLE_SKIA_DEBUG=TRUE
+        else
+            AC_MSG_RESULT([yes])
+            ENABLE_SKIA_DEBUG=
+        fi
+        ENABLE_SKIA=TRUE
+        AC_DEFINE(HAVE_FEATURE_SKIA)
+        BUILD_TYPE="$BUILD_TYPE SKIA"
 
-    if test "$OS" = "MACOSX"; then
-        AC_DEFINE(SK_SUPPORT_GPU,1)
-        AC_DEFINE(SK_METAL,1)
-        SKIA_GPU=METAL
-        AC_SUBST(SKIA_GPU)
-    else
-        AC_DEFINE(SK_SUPPORT_GPU,1)
-        AC_DEFINE(SK_VULKAN,1)
-        SKIA_GPU=VULKAN
-        AC_SUBST(SKIA_GPU)
-    fi
+        if test "$OS" = "MACOSX"; then
+            AC_DEFINE(SK_SUPPORT_GPU,1)
+            AC_DEFINE(SK_METAL,1)
+            SKIA_GPU=METAL
+            AC_SUBST(SKIA_GPU)
+        else
+            AC_DEFINE(SK_SUPPORT_GPU,1)
+            AC_DEFINE(SK_VULKAN,1)
+            SKIA_GPU=VULKAN
+            AC_SUBST(SKIA_GPU)
+        fi
 
-    if test -n "$MAC_OS_X_VERSION_MIN_REQUIRED" -a "$MAC_OS_X_VERSION_MIN_REQUIRED" -lt "101200"; then
-        SKIA_DISABLE_VMA_USE_STL_SHARED_MUTEX=1
-        AC_SUBST(SKIA_DISABLE_VMA_USE_STL_SHARED_MUTEX)
+        if test -n "$MAC_OS_X_VERSION_MIN_REQUIRED" -a "$MAC_OS_X_VERSION_MIN_REQUIRED" -lt "101200"; then
+            SKIA_DISABLE_VMA_USE_STL_SHARED_MUTEX=1
+            AC_SUBST(SKIA_DISABLE_VMA_USE_STL_SHARED_MUTEX)
+        fi
+    else
+        AC_MSG_RESULT([no (freetype too old)])
+        add_warning "freetype version is too old for Skia library, at least 2.8.1 required, Skia support disabled"
     fi
 
 else
+    AC_MSG_CHECKING([whether to build Skia])
     AC_MSG_RESULT([no])
 fi
 AC_SUBST(ENABLE_SKIA)
diff --git a/download.lst b/download.lst
index 1a46b56daff4..59367d25c67b 100644
--- a/download.lst
+++ b/download.lst
@@ -237,8 +237,8 @@ export RHINO_SHA256SUM := 1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131
 export RHINO_TARBALL := 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
 export SERF_SHA256SUM := 549c2d21c577a8a9c0450facb5cca809f26591f048e466552240947bdf7a87cc
 export SERF_TARBALL := serf-1.3.9.tar.bz2
-export SKIA_SHA256SUM := abe0b94d54edb717c58d74263f4ed3d27824d2ce9e9f2ce85a21ab38d993f94d
-export SKIA_TARBALL := skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz
+export SKIA_SHA256SUM := f69f9164ee982a8254722e1100aa7d31f78a5cd5e084418a3e202b55104fc3e2
+export SKIA_TARBALL := skia-m94-975fcdd755dfc5d57cddbb25857e0c4ac29abe98.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 a749bac5d575..60b8a3caccb1 100644
--- a/external/skia/Library_skia.mk
+++ b/external/skia/Library_skia.mk
@@ -159,6 +159,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkBitmapProcState \
     UnpackedTarball/skia/src/core/SkBitmapProcState_matrixProcs \
     UnpackedTarball/skia/src/core/SkBlendMode \
+    UnpackedTarball/skia/src/core/SkBlendModeBlender \
     UnpackedTarball/skia/src/core/SkBlitRow_D32 \
     UnpackedTarball/skia/src/core/SkBlitter_ARGB32 \
     UnpackedTarball/skia/src/core/SkBlitter_A8 \
@@ -241,7 +242,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkMath \
     UnpackedTarball/skia/src/core/SkMatrix \
     UnpackedTarball/skia/src/core/SkMatrixImageFilter \
-    UnpackedTarball/skia/src/core/SkMatrix44 \
+    UnpackedTarball/skia/src/core/SkMatrixInvert \
     UnpackedTarball/skia/src/core/SkM44 \
     UnpackedTarball/skia/src/core/SkMD5 \
     UnpackedTarball/skia/src/core/SkMiniRecorder \
@@ -313,6 +314,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkStrikeSpec \
     UnpackedTarball/skia/src/core/SkString \
     UnpackedTarball/skia/src/core/SkStringUtils \
+    UnpackedTarball/skia/src/core/SkStringView \
     UnpackedTarball/skia/src/core/SkStroke \
     UnpackedTarball/skia/src/core/SkStrokeRec \
     UnpackedTarball/skia/src/core/SkStrokerPriv \
@@ -354,7 +356,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 \
@@ -364,7 +365,9 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/effects/imagefilters/SkOffsetImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkPictureImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkShaderImageFilter \
+    UnpackedTarball/skia/src/effects/imagefilters/SkRuntimeImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkTileImageFilter \
+    UnpackedTarball/skia/src/effects/SkBlenders \
     UnpackedTarball/skia/src/effects/SkColorMatrix \
     UnpackedTarball/skia/src/effects/SkColorMatrixFilter \
     UnpackedTarball/skia/src/effects/SkCornerPathEffect \
@@ -377,7 +380,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 \
@@ -445,55 +447,77 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/shaders/SkPerlinNoiseShader \
     UnpackedTarball/skia/src/shaders/SkPictureShader \
     UnpackedTarball/skia/src/shaders/SkShader \
+    UnpackedTarball/skia/src/shaders/SkTransformShader \
     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 \
+    UnpackedTarball/skia/src/sksl/dsl/DSLLayout \
+    UnpackedTarball/skia/src/sksl/dsl/DSLRuntimeEffects \
     UnpackedTarball/skia/src/sksl/dsl/DSLStatement \
+    UnpackedTarball/skia/src/sksl/dsl/DSLSymbols \
     UnpackedTarball/skia/src/sksl/dsl/DSLType \
     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/SkSLConstructorArrayCast \
+    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/SkSLConstructorStruct \
+    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/SkSLFunctionDeclaration \
+    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/SkSLDSLParser \
     UnpackedTarball/skia/src/sksl/SkSLDehydrator \
-    UnpackedTarball/skia/src/sksl/SkSLGLSLCodeGenerator \
-    UnpackedTarball/skia/src/sksl/SkSLHCodeGenerator \
     UnpackedTarball/skia/src/sksl/SkSLIRGenerator \
     UnpackedTarball/skia/src/sksl/SkSLInliner \
     UnpackedTarball/skia/src/sksl/SkSLLexer \
     UnpackedTarball/skia/src/sksl/SkSLMangler \
-    UnpackedTarball/skia/src/sksl/SkSLMetalCodeGenerator \
     UnpackedTarball/skia/src/sksl/SkSLOperators \
     UnpackedTarball/skia/src/sksl/SkSLOutputStream \
     UnpackedTarball/skia/src/sksl/SkSLParser \
     UnpackedTarball/skia/src/sksl/SkSLPool \
-    UnpackedTarball/skia/src/sksl/SkSLPipelineStageCodeGenerator \
     UnpackedTarball/skia/src/sksl/SkSLRehydrator \
     UnpackedTarball/skia/src/sksl/SkSLSampleUsage \
-    UnpackedTarball/skia/src/sksl/SkSLSPIRVCodeGenerator \
-    UnpackedTarball/skia/src/sksl/SkSLSPIRVtoHLSL \
-    UnpackedTarball/skia/src/sksl/SkSLSectionAndParameterHelper \
     UnpackedTarball/skia/src/sksl/SkSLString \
     UnpackedTarball/skia/src/sksl/SkSLUtil \
-    UnpackedTarball/skia/src/sksl/SkSLVMGenerator \
+    UnpackedTarball/skia/src/sksl/codegen/SkSLGLSLCodeGenerator \
+    UnpackedTarball/skia/src/sksl/codegen/SkSLMetalCodeGenerator \
+    UnpackedTarball/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator \
+    UnpackedTarball/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator \
+    UnpackedTarball/skia/src/sksl/codegen/SkSLSPIRVtoHLSL \
+    UnpackedTarball/skia/src/sksl/codegen/SkSLVMCodeGenerator \
     UnpackedTarball/skia/src/utils/SkBase64 \
     UnpackedTarball/skia/src/utils/SkCamera \
     UnpackedTarball/skia/src/utils/SkCanvasStack \
@@ -504,7 +528,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/utils/SkCharToGlyphCache \
     UnpackedTarball/skia/src/utils/SkClipStackUtils \
     UnpackedTarball/skia/src/utils/SkCustomTypeface \
-    UnpackedTarball/skia/src/utils/SkInterpolator \
     UnpackedTarball/skia/src/utils/SkJSON \
     UnpackedTarball/skia/src/utils/SkJSONWriter \
     UnpackedTarball/skia/src/utils/SkMatrix22 \
@@ -512,6 +535,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/utils/SkNullCanvas \
     UnpackedTarball/skia/src/utils/SkNWayCanvas \
     UnpackedTarball/skia/src/utils/SkOSPath \
+    UnpackedTarball/skia/src/utils/SkOrderedFontMgr \
     UnpackedTarball/skia/src/utils/SkPaintFilterCanvas \
     UnpackedTarball/skia/src/utils/SkParseColor \
     UnpackedTarball/skia/src/utils/SkParse \
@@ -532,47 +556,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
 ifneq ($(SKIA_GPU),)
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkGpuBlurUtils \
-    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 \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrCircleBlurFragmentProcessor \
-    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 \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrEllipseEffect \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrDeviceSpaceEffect \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrHSLToRGBFilterEffect \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrMagnifierEffect \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrOverrideInputFragmentProcessor \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrRectBlurEffect \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrRGBToHSLFilterEffect \
-    UnpackedTarball/skia/src/gpu/effects/generated/GrRRectBlurEffect \
     UnpackedTarball/skia/src/gpu/effects/GrBezierEffect \
     UnpackedTarball/skia/src/gpu/effects/GrBicubicEffect \
     UnpackedTarball/skia/src/gpu/effects/GrBitmapTextGeoProc \
@@ -585,6 +568,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/effects/GrGaussianConvolutionFragmentProcessor \
     UnpackedTarball/skia/src/gpu/effects/GrMatrixConvolutionEffect \
     UnpackedTarball/skia/src/gpu/effects/GrMatrixEffect \
+    UnpackedTarball/skia/src/gpu/effects/GrModulateAtlasCoverageEffect \
     UnpackedTarball/skia/src/gpu/effects/GrOvalEffect \
     UnpackedTarball/skia/src/gpu/effects/GrPorterDuffXferProcessor \
     UnpackedTarball/skia/src/gpu/effects/GrRRectEffect \
@@ -599,46 +583,29 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/geometry/GrStyledShape \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLBlend \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSL \
-    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 \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLUniformHandler \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLVarying \
     UnpackedTarball/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder \
-    UnpackedTarball/skia/src/gpu/glsl/GrGLSLXferProcessor \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrClampedGradientEffect \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrDualIntervalGradientColorizer \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrLinearGradientLayout \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrRadialGradientLayout \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrSweepGradientLayout \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrTiledGradientEffect \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout \
-    UnpackedTarball/skia/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer \
     UnpackedTarball/skia/src/gpu/gradients/GrGradientBitmapCache \
     UnpackedTarball/skia/src/gpu/gradients/GrGradientShader \
     UnpackedTarball/skia/src/gpu/GrAATriangulator \
     UnpackedTarball/skia/src/gpu/GrAHardwareBufferImageGenerator \
     UnpackedTarball/skia/src/gpu/GrAHardwareBufferUtils \
     UnpackedTarball/skia/src/gpu/GrAttachment \
-    UnpackedTarball/skia/src/gpu/GrAuditTrail \
     UnpackedTarball/skia/src/gpu/GrBackendSemaphore \
     UnpackedTarball/skia/src/gpu/GrBackendSurfaceMutableState \
     UnpackedTarball/skia/src/gpu/GrBackendSurface \
     UnpackedTarball/skia/src/gpu/GrBackendTextureImageGenerator \
     UnpackedTarball/skia/src/gpu/GrBackendUtils \
-    UnpackedTarball/skia/src/gpu/GrBitmapTextureMaker \
     UnpackedTarball/skia/src/gpu/GrBlockAllocator \
     UnpackedTarball/skia/src/gpu/GrBlurUtils \
     UnpackedTarball/skia/src/gpu/GrBufferAllocPool \
     UnpackedTarball/skia/src/gpu/GrCaps \
     UnpackedTarball/skia/src/gpu/GrClientMappedBufferManager \
-    UnpackedTarball/skia/src/gpu/GrClipStack \
-    UnpackedTarball/skia/src/gpu/GrClipStackClip \
     UnpackedTarball/skia/src/gpu/GrColorInfo \
     UnpackedTarball/skia/src/gpu/GrColorSpaceXform \
     UnpackedTarball/skia/src/gpu/GrContext_Base \
@@ -656,28 +623,25 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/GrDrawOpTest \
     UnpackedTarball/skia/src/gpu/GrDriverBugWorkarounds \
     UnpackedTarball/skia/src/gpu/GrDynamicAtlas \
+    UnpackedTarball/skia/src/gpu/GrEagerVertexAllocator \
     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 \
     UnpackedTarball/skia/src/gpu/GrImageContext \
-    UnpackedTarball/skia/src/gpu/GrImageTextureMaker \
     UnpackedTarball/skia/src/gpu/GrManagedResource \
     UnpackedTarball/skia/src/gpu/GrMemoryPool \
+    UnpackedTarball/skia/src/gpu/GrMeshDrawTarget \
     UnpackedTarball/skia/src/gpu/GrOnFlushResourceProvider \
     UnpackedTarball/skia/src/gpu/GrOpFlushState \
     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/GrPersistentCacheUtils \
     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 \
@@ -691,27 +655,21 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/GrRectanizerSkyline \
     UnpackedTarball/skia/src/gpu/GrRenderTask \
     UnpackedTarball/skia/src/gpu/GrRenderTaskCluster \
-    UnpackedTarball/skia/src/gpu/GrReducedClip \
     UnpackedTarball/skia/src/gpu/GrRenderTarget \
     UnpackedTarball/skia/src/gpu/GrRenderTargetProxy \
     UnpackedTarball/skia/src/gpu/GrResourceAllocator \
     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 \
-    UnpackedTarball/skia/src/gpu/GrSoftwarePathRenderer \
     UnpackedTarball/skia/src/gpu/GrSPIRVUniformHandler \
     UnpackedTarball/skia/src/gpu/GrSPIRVVaryingHandler \
     UnpackedTarball/skia/src/gpu/GrStagingBufferManager \
-    UnpackedTarball/skia/src/gpu/GrStencilMaskHelper \
     UnpackedTarball/skia/src/gpu/GrStencilSettings \
     UnpackedTarball/skia/src/gpu/GrStyle \
-    UnpackedTarball/skia/src/gpu/GrSurfaceContext \
-    UnpackedTarball/skia/src/gpu/GrSurfaceDrawContext \
-    UnpackedTarball/skia/src/gpu/GrSurfaceFillContext \
+    UnpackedTarball/skia/src/gpu/GrSubRunAllocator \
     UnpackedTarball/skia/src/gpu/GrSurface \
     UnpackedTarball/skia/src/gpu/GrSurfaceProxy \
     UnpackedTarball/skia/src/gpu/GrSwizzle \
@@ -719,16 +677,15 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/GrTestUtils \
     UnpackedTarball/skia/src/gpu/GrTriangulator \
     UnpackedTarball/skia/src/gpu/GrUniformDataManager \
-    UnpackedTarball/skia/src/gpu/GrTextureAdjuster \
     UnpackedTarball/skia/src/gpu/GrTexture \
-    UnpackedTarball/skia/src/gpu/GrTextureMaker \
-    UnpackedTarball/skia/src/gpu/GrTextureProducer \
     UnpackedTarball/skia/src/gpu/GrTextureProxy \
     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/GrVertexChunkArray \
     UnpackedTarball/skia/src/gpu/GrWaitRenderTask \
     UnpackedTarball/skia/src/gpu/GrWritePixelsRenderTask \
     UnpackedTarball/skia/src/gpu/GrXferProcessor \
@@ -737,18 +694,12 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/mock/GrMockCaps \
     UnpackedTarball/skia/src/gpu/mock/GrMockGpu \
     UnpackedTarball/skia/src/gpu/mock/GrMockTypes \
-    UnpackedTarball/skia/src/gpu/ops/GrAAConvexPathRenderer \
     UnpackedTarball/skia/src/gpu/ops/GrAAConvexTessellator \
-    UnpackedTarball/skia/src/gpu/ops/GrAAHairLinePathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer \
     UnpackedTarball/skia/src/gpu/ops/GrAtlasTextOp \
     UnpackedTarball/skia/src/gpu/ops/GrClearOp \
-    UnpackedTarball/skia/src/gpu/ops/GrDashLinePathRenderer \
     UnpackedTarball/skia/src/gpu/ops/GrDashOp \
-    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 \
@@ -762,31 +713,33 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ops/GrSimpleMeshDrawOpHelper \
     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 \
     UnpackedTarball/skia/src/gpu/ops/GrTextureOp \
-    UnpackedTarball/skia/src/gpu/SkGpuDevice \
-    UnpackedTarball/skia/src/gpu/SkGpuDevice_drawTexture \
+    UnpackedTarball/skia/src/gpu/BaseDevice \
     UnpackedTarball/skia/src/gpu/SkGr \
-    UnpackedTarball/skia/src/gpu/tessellate/GrDrawAtlasPathOp \
-    UnpackedTarball/skia/src/gpu/tessellate/GrFillPathShader \
+    UnpackedTarball/skia/src/gpu/SurfaceContext \
+    UnpackedTarball/skia/src/gpu/SurfaceFillContext \
+    UnpackedTarball/skia/src/gpu/tessellate/GrAtlasRenderTask \
+    UnpackedTarball/skia/src/gpu/tessellate/GrPathCurveTessellator \
     UnpackedTarball/skia/src/gpu/tessellate/GrPathInnerTriangulateOp \
-    UnpackedTarball/skia/src/gpu/tessellate/GrPathTessellator \
-    UnpackedTarball/skia/src/gpu/tessellate/GrStencilPathShader \
+    UnpackedTarball/skia/src/gpu/tessellate/GrPathStencilCoverOp \
+    UnpackedTarball/skia/src/gpu/tessellate/GrPathTessellateOp \
+    UnpackedTarball/skia/src/gpu/tessellate/GrPathWedgeTessellator \
+    UnpackedTarball/skia/src/gpu/tessellate/GrStrokeFixedCountTessellator \
     UnpackedTarball/skia/src/gpu/tessellate/GrStrokeHardwareTessellator \
-    UnpackedTarball/skia/src/gpu/tessellate/GrStrokeIndirectTessellator \
     UnpackedTarball/skia/src/gpu/tessellate/GrStrokeTessellateOp \
-    UnpackedTarball/skia/src/gpu/tessellate/GrStrokeTessellateShader \
-    UnpackedTarball/skia/src/gpu/tessellate/GrTessellatingStencilFillOp \
-    UnpackedTarball/skia/src/gpu/tessellate/GrTessellationPathRenderer \
+    UnpackedTarball/skia/src/gpu/tessellate/shaders/GrPathTessellationShader \
+    UnpackedTarball/skia/src/gpu/tessellate/shaders/GrPathTessellationShader_Hardware \
+    UnpackedTarball/skia/src/gpu/tessellate/shaders/GrPathTessellationShader_MiddleOut \
+    UnpackedTarball/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader \
+    UnpackedTarball/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader_HardwareImpl \
+    UnpackedTarball/skia/src/gpu/tessellate/shaders/GrStrokeTessellationShader_InstancedImpl \
+    UnpackedTarball/skia/src/gpu/tessellate/shaders/GrTessellationShader \
     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 \
@@ -796,6 +749,30 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/image/SkSurface_Gpu \
 ))
 
+$(eval $(call gb_Library_add_generated_exception_objects,skia,\
+    UnpackedTarball/skia/src/gpu/GrAuditTrail \
+    UnpackedTarball/skia/src/gpu/GrClipStack \
+    UnpackedTarball/skia/src/gpu/GrPathRenderer \
+    UnpackedTarball/skia/src/gpu/GrPathRendererChain \
+    UnpackedTarball/skia/src/gpu/GrSoftwarePathRenderer \
+    UnpackedTarball/skia/src/gpu/GrStencilMaskHelper \
+    UnpackedTarball/skia/src/gpu/ops/GrAAConvexPathRenderer \
+    UnpackedTarball/skia/src/gpu/ops/GrAAHairLinePathRenderer \
+    UnpackedTarball/skia/src/gpu/ops/GrAALinearizingConvexPathRenderer \
+    UnpackedTarball/skia/src/gpu/ops/GrAtlasInstancedHelper \
+    UnpackedTarball/skia/src/gpu/ops/GrAtlasPathRenderer \
+    UnpackedTarball/skia/src/gpu/ops/GrDashLinePathRenderer \
+    UnpackedTarball/skia/src/gpu/ops/GrDefaultPathRenderer \
+    UnpackedTarball/skia/src/gpu/ops/GrDrawAtlasPathOp \
+    UnpackedTarball/skia/src/gpu/ops/GrSmallPathRenderer \
+    UnpackedTarball/skia/src/gpu/ops/GrTriangulatingPathRenderer \
+    UnpackedTarball/skia/src/gpu/tessellate/GrTessellationPathRenderer \
+    UnpackedTarball/skia/src/gpu/v1/Device \
+    UnpackedTarball/skia/src/gpu/v1/Device_drawTexture \
+    UnpackedTarball/skia/src/gpu/v1/SurfaceDrawContext \
+    UnpackedTarball/skia/src/gpu/v1/SurfaceFillContext_v1 \
+))
+
 ifeq ($(SKIA_GPU),VULKAN)
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/vk/GrVkAMDMemoryAllocator \
@@ -938,6 +915,7 @@ $(eval $(call gb_Library_add_generated_objcxxobjects,skia,\
     UnpackedTarball/skia/src/gpu/mtl/GrMtlCaps \
     UnpackedTarball/skia/src/gpu/mtl/GrMtlCommandBuffer \
     UnpackedTarball/skia/src/gpu/mtl/GrMtlDepthStencil \
+    UnpackedTarball/skia/src/gpu/mtl/GrMtlFramebuffer \
     UnpackedTarball/skia/src/gpu/mtl/GrMtlGpu \
     UnpackedTarball/skia/src/gpu/mtl/GrMtlOpsRenderPass \
     UnpackedTarball/skia/src/gpu/mtl/GrMtlPipelineState \
diff --git a/external/skia/UnpackedTarball_skia.mk b/external/skia/UnpackedTarball_skia.mk
index e1ea21b3cd35..7cb688c8cfd8 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,13 +29,13 @@ 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 \
     fast-png-write.patch.1 \
     skia_sk_cpu_sse_level_0_by_default.patch.1 \
     fix-warnings.patch.1 \
+    disable-freetype-colrv1.1 \
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
 
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..b20e4d218bc8 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 f266e75493..84a958411d 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),
-                               sizeof(StringFragment),
+@@ -233,7 +245,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(skstd::string_view),
                                sizeof(bool),
                                sizeof(SKSL_INT),
diff --git a/external/skia/disable-freetype-colrv1.1 b/external/skia/disable-freetype-colrv1.1
new file mode 100644
index 000000000000..2d24e42ad38a
--- /dev/null
+++ b/external/skia/disable-freetype-colrv1.1
@@ -0,0 +1,24 @@
+diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
+index 62127ba8d9..73bfaa2af3 100644
+--- a/src/ports/SkFontHost_FreeType.cpp
++++ b/src/ports/SkFontHost_FreeType.cpp
+@@ -1100,6 +1100,7 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph) {
+         FT_UInt layerGlyphIndex;
+         FT_UInt layerColorIndex;
+ 
++#undef TT_SUPPORT_COLRV1 // Unstable API.
+ #ifdef TT_SUPPORT_COLRV1
+         FT_OpaquePaint opaqueLayerPaint;
+         opaqueLayerPaint.p = nullptr;
+diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp
+index 8488e859b9..baab503bfb 100644
+--- a/src/ports/SkFontHost_FreeType_common.cpp
++++ b/src/ports/SkFontHost_FreeType_common.cpp
+@@ -30,6 +30,7 @@
+ // In the past, FT_GlyphSlot_Own_Bitmap was defined in this header file.
+ #include FT_SYNTHESIS_H
+ 
++#undef TT_SUPPORT_COLRV1 // Unstable API.
+ #ifdef TT_SUPPORT_COLRV1
+ #include "src/core/SkScopeExit.h"
+ #endif
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..3331d54cfe2c 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,
@@ -108,3 +97,23 @@ index 4f983439b9..f6fc53c91a 100644
  
  #if defined(__clang__)
      template <int N, typename T> using Vec = T __attribute__((ext_vector_type(N)));
+diff --git a/src/sksl/ir/SkSLPoison.h b/src/sksl/ir/SkSLPoison.h
+index 43e3a1c2bd..6f88251eea 100644
+--- a/src/sksl/ir/SkSLPoison.h
++++ b/src/sksl/ir/SkSLPoison.h
+@@ -5,6 +5,9 @@
+  * found in the LICENSE file.
+  */
+ 
++#ifndef SKSL_POISON
++#define SKSL_POISON
++
+ #include "src/sksl/SkSLCompiler.h"
+ #include "src/sksl/SkSLContext.h"
+ 
+@@ -38,3 +41,5 @@ private:
+ };
+ 
+ } // namespace SkSL
++
++#endif
diff --git a/external/skia/fix-without-gl.patch.0 b/external/skia/fix-without-gl.patch.0
index 476978ff2b33..f0409d15e35a 100644
--- a/external/skia/fix-without-gl.patch.0
+++ b/external/skia/fix-without-gl.patch.0
@@ -32,19 +32,18 @@ diff --git a/src/gpu/gl/GrGLContext.h b/src/gpu/gl/GrGLContext.h
 index 66bfe29331..034cd21838 100644
 --- ./src/gpu/gl/GrGLContext.h
 +++ ./src/gpu/gl/GrGLContext.h
-@@ -45,10 +45,11 @@ public:
-     GrGLDriverVersion driverVersion() const { return fDriverVersion; }
+@@ -45,9 +45,11 @@ public:
      const GrGLCaps* caps() const { return fGLCaps.get(); }
      GrGLCaps* caps() { return fGLCaps.get(); }
+ 
 +#ifdef SK_GL
      bool hasExtension(const char* ext) const {
          return fInterface->hasExtension(ext);
      }
--
 +#endif
+ 
      const GrGLExtensions& extensions() const { return fInterface->fExtensions; }
  
- protected:
 diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h
 index 8e550c36e6..27fb5efe9b 100644
 --- ./src/gpu/gl/GrGLGpu.h
diff --git a/external/skia/inc/pch/precompiled_skia.hxx b/external/skia/inc/pch/precompiled_skia.hxx
index 760dea10de62..f10eac6b43b5 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-08-24 13:03:12 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,9 @@
 #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>
@@ -65,7 +62,6 @@
 #include <string>
 #include <thread>
 #include <tuple>
-#include <type_traits>
 #include <unordered_map>
 #include <unordered_set>
 #include <utility>
@@ -93,6 +89,7 @@
 #include <include/core/SkBBHFactory.h>
 #include <include/core/SkBitmap.h>
 #include <include/core/SkBlendMode.h>
+#include <include/core/SkBlender.h>
 #include <include/core/SkCanvas.h>
 #include <include/core/SkColor.h>
 #include <include/core/SkColorFilter.h>
@@ -107,7 +104,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>
@@ -124,7 +120,6 @@
 #include <include/core/SkMaskFilter.h>
 #include <include/core/SkMath.h>
 #include <include/core/SkMatrix.h>
-#include <include/core/SkMatrix44.h>
 #include <include/core/SkOverdrawCanvas.h>
 #include <include/core/SkPaint.h>
 #include <include/core/SkPath.h>
@@ -148,12 +143,13 @@
 #include <include/core/SkSerialProcs.h>
 #include <include/core/SkShader.h>
 #include <include/core/SkSize.h>
+#include <include/core/SkSpan.h>
 #include <include/core/SkStream.h>
 #include <include/core/SkString.h>
+#include <include/core/SkStringView.h>
 #include <include/core/SkStrokeRec.h>
 #include <include/core/SkSurface.h>
 #include <include/core/SkSurfaceCharacterization.h>
-#include <include/core/SkSurfaceProps.h>
 #include <include/core/SkSwizzle.h>
 #include <include/core/SkTextBlob.h>
 #include <include/core/SkTileMode.h>
@@ -167,6 +163,7 @@
 #include <include/core/SkYUVAPixmaps.h>
 #include <include/effects/Sk1DPathEffect.h>
 #include <include/effects/Sk2DPathEffect.h>
+#include <include/effects/SkBlenders.h>
 #include <include/effects/SkBlurMaskFilter.h>
 #include <include/effects/SkColorMatrix.h>
 #include <include/effects/SkColorMatrixFilter.h>
@@ -177,6 +174,7 @@
 #include <include/effects/SkHighContrastFilter.h>
 #include <include/effects/SkImageFilters.h>
 #include <include/effects/SkLumaColorFilter.h>
+#include <include/effects/SkOpPathEffect.h>
 #include <include/effects/SkOverdrawColorFilter.h>
 #include <include/effects/SkPerlinNoiseShader.h>
 #include <include/effects/SkRuntimeEffect.h>
@@ -188,30 +186,16 @@
 #include <include/encode/SkJpegEncoder.h>
 #include <include/encode/SkPngEncoder.h>
 #include <include/encode/SkWebpEncoder.h>
-#include <include/gpu/GrBackendDrawableInfo.h>
-#include <include/gpu/GrBackendSemaphore.h>
 #include <include/gpu/GrBackendSurface.h>
-#include <include/gpu/GrBackendSurfaceMutableState.h>
-#include <include/gpu/GrConfig.h>
 #include <include/gpu/GrContextOptions.h>
 #include <include/gpu/GrContextThreadSafeProxy.h>
 #include <include/gpu/GrDirectContext.h>
-#include <include/gpu/GrDriverBugWorkarounds.h>
 #include <include/gpu/GrRecordingContext.h>
-#include <include/gpu/GrTypes.h>
-#include <include/gpu/GrYUVABackendTextures.h>
-#include <include/gpu/mock/GrMockTypes.h>
-#include <include/gpu/vk/GrVkBackendContext.h>
-#include <include/gpu/vk/GrVkExtensions.h>
 #include <include/gpu/vk/GrVkTypes.h>
 #include <include/pathops/SkPathOps.h>
 #include <include/ports/SkRemotableFontMgr.h>
-#include <include/private/GrContext_Base.h>
 #include <include/private/GrImageContext.h>
 #include <include/private/GrResourceKey.h>
-#include <include/private/GrSingleOwner.h>
-#include <include/private/GrTypesPriv.h>
-#include <include/private/GrVkTypesPriv.h>
 #include <include/private/SkChecksum.h>
 #include <include/private/SkColorData.h>
 #include <include/private/SkDeque.h>
@@ -228,7 +212,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>
@@ -237,6 +228,7 @@
 #include <include/private/SkTDArray.h>
 #include <include/private/SkTFitsIn.h>
 #include <include/private/SkTHash.h>
+#include <include/private/SkTOptional.h>
 #include <include/private/SkTPin.h>
 #include <include/private/SkTemplates.h>
 #include <include/private/SkThreadAnnotations.h>
@@ -249,10 +241,10 @@
 #include <include/utils/SkCanvasStateUtils.h>
 #include <include/utils/SkCustomTypeface.h>
 #include <include/utils/SkEventTracer.h>
-#include <include/utils/SkInterpolator.h>
 #include <include/utils/SkNWayCanvas.h>
 #include <include/utils/SkNoDrawCanvas.h>
 #include <include/utils/SkNullCanvas.h>
+#include <include/utils/SkOrderedFontMgr.h>
 #include <include/utils/SkPaintFilterCanvas.h>
 #include <include/utils/SkParse.h>
 #include <include/utils/SkParsePath.h>
@@ -283,7 +275,6 @@
 #include <src/codec/SkWbmpCodec.h>
 #include <src/codec/SkWebpCodec.h>
 #include <src/core/SkAAClip.h>
-#include <src/core/SkASAN.h>
 #include <src/core/SkATrace.h>
 #include <src/core/SkAdvancedTypefaceMetrics.h>
 #include <src/core/SkAnalyticEdge.h>
@@ -297,14 +288,15 @@
 #include <src/core/SkBitmapCache.h>
 #include <src/core/SkBitmapDevice.h>
 #include <src/core/SkBitmapProcState.h>
+#include <src/core/SkBlendModeBlender.h>
 #include <src/core/SkBlendModePriv.h>
+#include <src/core/SkBlenderBase.h>
 #include <src/core/SkBlitRow.h>
 #include <src/core/SkBlitter.h>
 #include <src/core/SkBlurMask.h>
 #include <src/core/SkBuffer.h>
 #include <src/core/SkCachedData.h>
 #include <src/core/SkCanvasPriv.h>
-#include <src/core/SkClipOpPriv.h>
 #include <src/core/SkClipStack.h>
 #include <src/core/SkClipStackDevice.h>
 #include <src/core/SkColorFilterBase.h>
@@ -317,7 +309,6 @@
 #include <src/core/SkCoreBlitters.h>
 #include <src/core/SkCpu.h>
 #include <src/core/SkCubicClipper.h>
-#include <src/core/SkDeferredDisplayListPriv.h>
 #include <src/core/SkDescriptor.h>
 #include <src/core/SkDevice.h>
 #include <src/core/SkDiscardableMemory.h>
@@ -344,7 +335,6 @@
 #include <src/core/SkGlyphRunPainter.h>
 #include <src/core/SkGpuBlurUtils.h>
 #include <src/core/SkICCPriv.h>
-#include <src/core/SkIPoint16.h>
 #include <src/core/SkImageFilterCache.h>
 #include <src/core/SkImageFilterTypes.h>
 #include <src/core/SkImageFilter_Base.h>
@@ -364,6 +354,7 @@
 #include <src/core/SkMaskGamma.h>
 #include <src/core/SkMathPriv.h>
 #include <src/core/SkMatrixImageFilter.h>
+#include <src/core/SkMatrixInvert.h>
 #include <src/core/SkMatrixPriv.h>
 #include <src/core/SkMatrixProvider.h>
 #include <src/core/SkMatrixUtils.h>
@@ -378,6 +369,7 @@
 #include <src/core/SkOpts.h>
 #include <src/core/SkPaintDefaults.h>
 #include <src/core/SkPaintPriv.h>
+#include <src/core/SkPathEffectBase.h>
 #include <src/core/SkPathMakers.h>
 #include <src/core/SkPathMeasurePriv.h>
 #include <src/core/SkPathPriv.h>
@@ -419,7 +411,6 @@
 #include <src/core/SkScanPriv.h>
 #include <src/core/SkScopeExit.h>
 #include <src/core/SkSharedMutex.h>
-#include <src/core/SkSpan.h>
 #include <src/core/SkSpecialImage.h>
 #include <src/core/SkSpecialSurface.h>
 #include <src/core/SkSpriteBlitter.h>
@@ -434,7 +425,6 @@
 #include <src/core/SkTDPQueue.h>
 #include <src/core/SkTDynamicHash.h>
 #include <src/core/SkTInternalLList.h>
-#include <src/core/SkTLList.h>
 #include <src/core/SkTLazy.h>
 #include <src/core/SkTSearch.h>
 #include <src/core/SkTSort.h>
@@ -448,6 +438,7 @@
 #include <src/core/SkTypeface_remote.h>
 #include <src/core/SkUtils.h>
 #include <src/core/SkVM.h>
+#include <src/core/SkVMBlitter.h>
 #include <src/core/SkValidationUtils.h>
 #include <src/core/SkVertState.h>
 #include <src/core/SkVerticesPriv.h>
@@ -463,353 +454,62 @@
 #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>
-#include <src/gpu/GrAppliedClip.h>
-#include <src/gpu/GrAttachment.h>
-#include <src/gpu/GrAuditTrail.h>
-#include <src/gpu/GrAutoLocaleSetter.h>
-#include <src/gpu/GrBackendSurfaceMutableStateImpl.h>
-#include <src/gpu/GrBackendTextureImageGenerator.h>
-#include <src/gpu/GrBackendUtils.h>
-#include <src/gpu/GrBaseContextPriv.h>
-#include <src/gpu/GrBitmapTextureMaker.h>
+#include <src/effects/imagefilters/SkRuntimeImageFilter.h>
+#include <src/gpu/BaseDevice.h>
 #include <src/gpu/GrBlend.h>
-#include <src/gpu/GrBlockAllocator.h>
-#include <src/gpu/GrBlurUtils.h>
-#include <src/gpu/GrBuffer.h>
-#include <src/gpu/GrBufferAllocPool.h>
 #include <src/gpu/GrCaps.h>
-#include <src/gpu/GrClientMappedBufferManager.h>
-#include <src/gpu/GrClip.h>
-#include <src/gpu/GrClipStack.h>
-#include <src/gpu/GrClipStackClip.h>
-#include <src/gpu/GrColor.h>
 #include <src/gpu/GrColorInfo.h>
 #include <src/gpu/GrColorSpaceXform.h>
 #include <src/gpu/GrContextThreadSafeProxyPriv.h>
-#include <src/gpu/GrCopyRenderTask.h>
-#include <src/gpu/GrCpuBuffer.h>
-#include <src/gpu/GrDDLTask.h>
-#include <src/gpu/GrDataUtils.h>
-#include <src/gpu/GrDefaultGeoProcFactory.h>
-#include <src/gpu/GrDeferredProxyUploader.h>
 #include <src/gpu/GrDirectContextPriv.h>
-#include <src/gpu/GrDistanceFieldGenFromVector.h>
-#include <src/gpu/GrDrawIndirectCommand.h>
 #include <src/gpu/GrDrawOpAtlas.h>
-#include <src/gpu/GrDrawOpTest.h>
-#include <src/gpu/GrDrawingManager.h>
-#include <src/gpu/GrDynamicAtlas.h>
-#include <src/gpu/GrEagerVertexAllocator.h>
 #include <src/gpu/GrFPArgs.h>
-#include <src/gpu/GrFinishCallbacks.h>
-#include <src/gpu/GrFixedClip.h>
 #include <src/gpu/GrFragmentProcessor.h>
-#include <src/gpu/GrGeometryProcessor.h>
-#include <src/gpu/GrGlyph.h>
-#include <src/gpu/GrGpu.h>
-#include <src/gpu/GrGpuBuffer.h>
-#include <src/gpu/GrGpuResource.h>
-#include <src/gpu/GrGpuResourceCacheAccess.h>
 #include <src/gpu/GrGpuResourcePriv.h>
 #include <src/gpu/GrImageContextPriv.h>
 #include <src/gpu/GrImageInfo.h>
-#include <src/gpu/GrImageTextureMaker.h>
-#include <src/gpu/GrInnerFanTriangulator.h>
-#include <src/gpu/GrManagedResource.h>
-#include <src/gpu/GrMemoryPool.h>
-#include <src/gpu/GrNativeRect.h>
-#include <src/gpu/GrOnFlushResourceProvider.h>
-#include <src/gpu/GrOpFlushState.h>
-#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/GrProcessor.h>
-#include <src/gpu/GrProcessorAnalysis.h>
-#include <src/gpu/GrProcessorSet.h>
-#include <src/gpu/GrProcessorUnitTest.h>
-#include <src/gpu/GrProgramDesc.h>
-#include <src/gpu/GrProgramInfo.h>
 #include <src/gpu/GrProxyProvider.h>
 #include <src/gpu/GrRecordingContextPriv.h>
-#include <src/gpu/GrRectanizerPow2.h>
-#include <src/gpu/GrRectanizerSkyline.h>
-#include <src/gpu/GrReducedClip.h>
-#include <src/gpu/GrRenderTarget.h>
-#include <src/gpu/GrRenderTargetProxy.h>
 #include <src/gpu/GrRenderTask.h>
-#include <src/gpu/GrRenderTaskCluster.h>
-#include <src/gpu/GrResourceAllocator.h>
-#include <src/gpu/GrResourceCache.h>
 #include <src/gpu/GrResourceProvider.h>
-#include <src/gpu/GrResourceProviderPriv.h>
-#include <src/gpu/GrRingBuffer.h>
-#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>
 #include <src/gpu/GrShaderCaps.h>
-#include <src/gpu/GrShaderUtils.h>
-#include <src/gpu/GrShaderVar.h>
-#include <src/gpu/GrSimpleMesh.h>
-#include <src/gpu/GrSoftwarePathRenderer.h>
-#include <src/gpu/GrStagingBufferManager.h>
-#include <src/gpu/GrStencilClip.h>
-#include <src/gpu/GrStencilMaskHelper.h>
-#include <src/gpu/GrStencilSettings.h>
 #include <src/gpu/GrStyle.h>
-#include <src/gpu/GrSurface.h>
-#include <src/gpu/GrSurfaceContext.h>
-#include <src/gpu/GrSurfaceDrawContext.h>
-#include <src/gpu/GrSurfaceFillContext.h>
-#include <src/gpu/GrSurfaceProxy.h>
-#include <src/gpu/GrSurfaceProxyPriv.h>
 #include <src/gpu/GrSurfaceProxyView.h>
-#include <src/gpu/GrSwizzle.h>
-#include <src/gpu/GrTTopoSort.h>
-#include <src/gpu/GrTestUtils.h>
 #include <src/gpu/GrTexture.h>
-#include <src/gpu/GrTextureAdjuster.h>
-#include <src/gpu/GrTextureMaker.h>
-#include <src/gpu/GrTextureProducer.h>
 #include <src/gpu/GrTextureProxy.h>
-#include <src/gpu/GrTextureProxyCacheAccess.h>
-#include <src/gpu/GrTextureProxyPriv.h>
-#include <src/gpu/GrTextureRenderTargetProxy.h>
-#include <src/gpu/GrTextureResolveRenderTask.h>
 #include <src/gpu/GrThreadSafeCache.h>
-#include <src/gpu/GrTracing.h>
-#include <src/gpu/GrTransferFromRenderTask.h>
-#include <src/gpu/GrTriangulator.h>
-#include <src/gpu/GrUniformDataManager.h>
-#include <src/gpu/GrUserStencilSettings.h>
-#include <src/gpu/GrVertexWriter.h>
-#include <src/gpu/GrVx.h>
-#include <src/gpu/GrWaitRenderTask.h>
-#include <src/gpu/GrWindowRectangles.h>
-#include <src/gpu/GrWritePixelsRenderTask.h>
-#include <src/gpu/GrXferProcessor.h>
 #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/SurfaceFillContext.h>
 #include <src/gpu/effects/GrBicubicEffect.h>
-#include <src/gpu/effects/GrBitmapTextGeoProc.h>
 #include <src/gpu/effects/GrBlendFragmentProcessor.h>
-#include <src/gpu/effects/GrConvexPolyEffect.h>
-#include <src/gpu/effects/GrCoverageSetOpXP.h>
 #include <src/gpu/effects/GrCustomXfermode.h>
-#include <src/gpu/effects/GrDisableColorXP.h>
-#include <src/gpu/effects/GrDistanceFieldGeoProc.h>
-#include <src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h>
 #include <src/gpu/effects/GrMatrixConvolutionEffect.h>
 #include <src/gpu/effects/GrMatrixEffect.h>
-#include <src/gpu/effects/GrOvalEffect.h>
 #include <src/gpu/effects/GrPorterDuffXferProcessor.h>
-#include <src/gpu/effects/GrRRectEffect.h>
-#include <src/gpu/effects/GrShadowGeoProc.h>
 #include <src/gpu/effects/GrSkSLFP.h>
 #include <src/gpu/effects/GrTextureEffect.h>
 #include <src/gpu/effects/GrYUVtoRGBEffect.h>
-#include <src/gpu/effects/generated/GrAARectEffect.h>
-#include <src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.h>
-#include <src/gpu/effects/generated/GrArithmeticProcessor.h>
-#include <src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.h>
-#include <src/gpu/effects/generated/GrCircleBlurFragmentProcessor.h>
-#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>
-#include <src/gpu/effects/generated/GrDitherEffect.h>
-#include <src/gpu/effects/generated/GrEllipseEffect.h>
-#include <src/gpu/effects/generated/GrHSLToRGBFilterEffect.h>
-#include <src/gpu/effects/generated/GrMagnifierEffect.h>
-#include <src/gpu/effects/generated/GrOverrideInputFragmentProcessor.h>
-#include <src/gpu/effects/generated/GrRGBToHSLFilterEffect.h>
-#include <src/gpu/effects/generated/GrRRectBlurEffect.h>
-#include <src/gpu/effects/generated/GrRectBlurEffect.h>
 #include <src/gpu/geometry/GrPathUtils.h>
-#include <src/gpu/geometry/GrQuad.h>
-#include <src/gpu/geometry/GrQuadBuffer.h>
-#include <src/gpu/geometry/GrQuadUtils.h>
-#include <src/gpu/geometry/GrRect.h>
-#include <src/gpu/geometry/GrShape.h>
 #include <src/gpu/geometry/GrStyledShape.h>
-#include <src/gpu/gl/GrGLGpu.h>
-#include <src/gpu/gl/GrGLTexture.h>
-#include <src/gpu/gl/GrGLUtil.h>
-#include <src/gpu/glsl/GrGLSL.h>
-#include <src/gpu/glsl/GrGLSLBlend.h>
-#include <src/gpu/glsl/GrGLSLColorSpaceXformHelper.h>
-#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>
 #include <src/gpu/glsl/GrGLSLUniformHandler.h>
-#include <src/gpu/glsl/GrGLSLVarying.h>
-#include <src/gpu/glsl/GrGLSLVertexGeoBuilder.h>
-#include <src/gpu/glsl/GrGLSLXferProcessor.h>
-#include <src/gpu/gradients/GrGradientBitmapCache.h>
 #include <src/gpu/gradients/GrGradientShader.h>
-#include <src/gpu/gradients/generated/GrClampedGradientEffect.h>
-#include <src/gpu/gradients/generated/GrDualIntervalGradientColorizer.h>
-#include <src/gpu/gradients/generated/GrLinearGradientLayout.h>
-#include <src/gpu/gradients/generated/GrRadialGradientLayout.h>
-#include <src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.h>
-#include <src/gpu/gradients/generated/GrSweepGradientLayout.h>
-#include <src/gpu/gradients/generated/GrTiledGradientEffect.h>
-#include <src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.h>
-#include <src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.h>
-#include <src/gpu/mock/GrMockAttachment.h>
-#include <src/gpu/mock/GrMockBuffer.h>
-#include <src/gpu/mock/GrMockCaps.h>
-#include <src/gpu/mock/GrMockGpu.h>
-#include <src/gpu/mock/GrMockOpsRenderPass.h>
-#include <src/gpu/mock/GrMockTexture.h>
-#include <src/gpu/ops/GrAAConvexPathRenderer.h>
-#include <src/gpu/ops/GrAAConvexTessellator.h>
-#include <src/gpu/ops/GrAAHairLinePathRenderer.h>
-#include <src/gpu/ops/GrAALinearizingConvexPathRenderer.h>
-#include <src/gpu/ops/GrAtlasTextOp.h>
-#include <src/gpu/ops/GrClearOp.h>
-#include <src/gpu/ops/GrDashLinePathRenderer.h>
-#include <src/gpu/ops/GrDashOp.h>
-#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>
-#include <src/gpu/ops/GrFillRectOp.h>
-#include <src/gpu/ops/GrLatticeOp.h>
-#include <src/gpu/ops/GrMeshDrawOp.h>
-#include <src/gpu/ops/GrOp.h>
-#include <src/gpu/ops/GrOvalOpFactory.h>
-#include <src/gpu/ops/GrQuadPerEdgeAA.h>
-#include <src/gpu/ops/GrRegionOp.h>
-#include <src/gpu/ops/GrShadowRRectOp.h>
-#include <src/gpu/ops/GrSimpleMeshDrawOpHelper.h>
-#include <src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil.h>
-#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>
-#include <src/gpu/tessellate/GrDrawAtlasPathOp.h>
-#include <src/gpu/tessellate/GrFillPathShader.h>
-#include <src/gpu/tessellate/GrMiddleOutPolygonTriangulator.h>
-#include <src/gpu/tessellate/GrMidpointContourParser.h>
-#include <src/gpu/tessellate/GrPathInnerTriangulateOp.h>
-#include <src/gpu/tessellate/GrPathTessellator.h>
-#include <src/gpu/tessellate/GrStencilPathShader.h>
-#include <src/gpu/tessellate/GrStrokeHardwareTessellator.h>
-#include <src/gpu/tessellate/GrStrokeIndirectTessellator.h>
-#include <src/gpu/tessellate/GrStrokeIterator.h>
-#include <src/gpu/tessellate/GrStrokeTessellateOp.h>
-#include <src/gpu/tessellate/GrStrokeTessellateShader.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>
-#include <src/gpu/vk/GrVkAttachment.h>
-#include <src/gpu/vk/GrVkBuffer.h>
 #include <src/gpu/vk/GrVkCaps.h>
-#include <src/gpu/vk/GrVkCommandBuffer.h>
-#include <src/gpu/vk/GrVkCommandPool.h>
-#include <src/gpu/vk/GrVkDescriptorPool.h>
-#include <src/gpu/vk/GrVkDescriptorSet.h>
-#include <src/gpu/vk/GrVkDescriptorSetManager.h>
-#include <src/gpu/vk/GrVkFramebuffer.h>
-#include <src/gpu/vk/GrVkGpu.h>
-#include <src/gpu/vk/GrVkImage.h>
-#include <src/gpu/vk/GrVkImageLayout.h>
-#include <src/gpu/vk/GrVkImageView.h>
-#include <src/gpu/vk/GrVkInterface.h>
-#include <src/gpu/vk/GrVkMSAALoadManager.h>
-#include <src/gpu/vk/GrVkMemory.h>
-#include <src/gpu/vk/GrVkOpsRenderPass.h>
-#include <src/gpu/vk/GrVkPipeline.h>
-#include <src/gpu/vk/GrVkPipelineState.h>
-#include <src/gpu/vk/GrVkPipelineStateBuilder.h>
-#include <src/gpu/vk/GrVkPipelineStateDataManager.h>
-#include <src/gpu/vk/GrVkRenderPass.h>
-#include <src/gpu/vk/GrVkRenderTarget.h>
-#include <src/gpu/vk/GrVkResourceProvider.h>
-#include <src/gpu/vk/GrVkSampler.h>
-#include <src/gpu/vk/GrVkSamplerYcbcrConversion.h>
-#include <src/gpu/vk/GrVkSecondaryCBDrawContext.h>
-#include <src/gpu/vk/GrVkSemaphore.h>
-#include <src/gpu/vk/GrVkTexture.h>
-#include <src/gpu/vk/GrVkTextureRenderTarget.h>
-#include <src/gpu/vk/GrVkUniformHandler.h>
-#include <src/gpu/vk/GrVkUtil.h>
-#include <src/gpu/vk/GrVkVaryingHandler.h>
 #include <src/image/SkImage_Base.h>
 #include <src/image/SkImage_Gpu.h>
-#include <src/image/SkImage_GpuBase.h>
-#include <src/image/SkImage_GpuYUVA.h>
 #include <src/image/SkImage_Lazy.h>
 #include <src/image/SkReadPixelsRec.h>
 #include <src/image/SkRescaleAndReadPixels.h>
 #include <src/image/SkSurface_Base.h>
-#include <src/image/SkSurface_Gpu.h>
 #include <src/images/SkImageEncoderPriv.h>
 #include <src/lazy/SkDiscardableMemoryPool.h>
 #include <src/pathops/SkAddIntersections.h>
@@ -836,7 +536,6 @@
 #include <src/pathops/SkPathOpsTypes.h>
 #include <src/pathops/SkPathWriter.h>
 #include <src/pathops/SkReduceOrder.h>
-#include <src/ports/SkOSLibrary.h>
 #include <src/sfnt/SkOTTableTypes.h>
 #include <src/sfnt/SkOTTable_OS_2.h>
 #include <src/sfnt/SkOTTable_head.h>
@@ -851,6 +550,7 @@
 #include <src/shaders/SkLocalMatrixShader.h>
 #include <src/shaders/SkPictureShader.h>
 #include <src/shaders/SkShaderBase.h>
+#include <src/shaders/SkTransformShader.h>
 #include <src/shaders/gradients/Sk4fGradientBase.h>
 #include <src/shaders/gradients/Sk4fLinearGradient.h>
 #include <src/shaders/gradients/SkGradientShaderPriv.h>
@@ -858,99 +558,6 @@
 #include <src/shaders/gradients/SkRadialGradient.h>
 #include <src/shaders/gradients/SkSweepGradient.h>
 #include <src/shaders/gradients/SkTwoPointConicalGradient.h>
-#include <src/sksl/GLSL.std.450.h>
-#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>
-#include <src/sksl/SkSLHCodeGenerator.h>
-#include <src/sksl/SkSLIRGenerator.h>
-#include <src/sksl/SkSLInliner.h>
-#include <src/sksl/SkSLLexer.h>
-#include <src/sksl/SkSLMangler.h>
-#include <src/sksl/SkSLMemoryLayout.h>
-#include <src/sksl/SkSLMetalCodeGenerator.h>
-#include <src/sksl/SkSLOperators.h>
-#include <src/sksl/SkSLOutputStream.h>
-#include <src/sksl/SkSLParser.h>
-#include <src/sksl/SkSLPipelineStageCodeGenerator.h>
-#include <src/sksl/SkSLPool.h>
-#include <src/sksl/SkSLProgramSettings.h>
-#include <src/sksl/SkSLRehydrator.h>
-#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>
-#include <src/sksl/ir/SkSLBinaryExpression.h>
-#include <src/sksl/ir/SkSLBlock.h>
-#include <src/sksl/ir/SkSLBoolLiteral.h>
-#include <src/sksl/ir/SkSLBreakStatement.h>
-#include <src/sksl/ir/SkSLCodeStringExpression.h>
-#include <src/sksl/ir/SkSLConstructor.h>
-#include <src/sksl/ir/SkSLContinueStatement.h>
-#include <src/sksl/ir/SkSLDiscardStatement.h>
-#include <src/sksl/ir/SkSLDoStatement.h>
-#include <src/sksl/ir/SkSLEnum.h>
-#include <src/sksl/ir/SkSLExpression.h>
-#include <src/sksl/ir/SkSLExpressionStatement.h>
-#include <src/sksl/ir/SkSLExtension.h>
-#include <src/sksl/ir/SkSLExternalFunctionCall.h>
-#include <src/sksl/ir/SkSLExternalFunctionReference.h>
-#include <src/sksl/ir/SkSLField.h>
-#include <src/sksl/ir/SkSLFieldAccess.h>
-#include <src/sksl/ir/SkSLFloatLiteral.h>
-#include <src/sksl/ir/SkSLForStatement.h>
-#include <src/sksl/ir/SkSLFunctionCall.h>
-#include <src/sksl/ir/SkSLFunctionDeclaration.h>
-#include <src/sksl/ir/SkSLFunctionDefinition.h>
-#include <src/sksl/ir/SkSLFunctionPrototype.h>
-#include <src/sksl/ir/SkSLFunctionReference.h>
-#include <src/sksl/ir/SkSLIfStatement.h>
-#include <src/sksl/ir/SkSLIndexExpression.h>
-#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>
-#include <src/sksl/ir/SkSLType.h>
-#include <src/sksl/ir/SkSLTypeReference.h>
-#include <src/sksl/ir/SkSLUnresolvedFunction.h>
-#include <src/sksl/ir/SkSLVarDeclarations.h>
-#include <src/sksl/ir/SkSLVariable.h>
-#include <src/sksl/ir/SkSLVariableReference.h>
-#include <src/sksl/spirv.h>
 #include <src/utils/SkBitSet.h>
 #include <src/utils/SkCanvasStack.h>
 #include <src/utils/SkCharToGlyphCache.h>
@@ -967,11 +574,7 @@
 #include <src/utils/SkShadowTessellator.h>
 #include <src/utils/SkShaperJSONWriter.h>
 #include <src/utils/SkUTF.h>
-#include <tools/gpu/vk/GrVulkanDefines.h>
-#include <tools/gpu/vk/VkTestUtils.h>
-#include <tools/sk_app/VulkanWindowContext.h>
 #include <tools/sk_app/WindowContext.h>
-#include <vulkan/vulkan_core.h>
 #endif // PCH_LEVEL >= 3
 #if PCH_LEVEL >= 4
 #include <skia_compiler.hxx>
diff --git a/external/skia/make-api-visible.patch.1 b/external/skia/make-api-visible.patch.1
index 6dbaf82b13bd..9b09506d388c 100644
--- a/external/skia/make-api-visible.patch.1
+++ b/external/skia/make-api-visible.patch.1
@@ -1,6 +1,8 @@
+diff --git a/tools/sk_app/WindowContext.h b/tools/sk_app/WindowContext.h
+index f143dab013..046c525365 100644
 --- a/tools/sk_app/WindowContext.h
 +++ b/tools/sk_app/WindowContext.h
-@@ -18,7 +18,7 @@
+@@ -17,7 +17,7 @@ class SkSurface;
  
  namespace sk_app {
  
@@ -9,6 +11,19 @@
  public:
      WindowContext(const DisplayParams&);
  
+diff --git a/tools/sk_app/mac/WindowContextFactory_mac.h b/tools/sk_app/mac/WindowContextFactory_mac.h
+index e772030b95..224ff03f23 100644
+--- a/tools/sk_app/mac/WindowContextFactory_mac.h
++++ b/tools/sk_app/mac/WindowContextFactory_mac.h
+@@ -52,7 +52,7 @@ std::unique_ptr<WindowContext> MakeDawnMTLForMac(const MacWindowInfo&, const Dis
+ #endif
+ 
+ #ifdef SK_METAL
+-std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&);
++SK_API std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&);
+ #endif
+ 
+ }  // namespace window_context_factory
 diff --git a/tools/sk_app/unix/WindowContextFactory_unix.h b/tools/sk_app/unix/WindowContextFactory_unix.h
 index 11bd2d2ac2..09c92dc417 100644
 --- a/tools/sk_app/unix/WindowContextFactory_unix.h
@@ -65,16 +80,3 @@ index c05a4f0acf..fc27cd2afb 100644
  
  }  // namespace window_context_factory
  
-diff --git a/tools/sk_app/mac/WindowContextFactory_mac.h b/tools/sk_app/mac/WindowContextFactory_mac.h
-index acf860ae4b..cdb2ee8027 100644
---- a/tools/sk_app/mac/WindowContextFactory_mac.h
-+++ b/tools/sk_app/mac/WindowContextFactory_mac.h
-@@ -48,7 +48,7 @@ std::unique_ptr<WindowContext> MakeDawnMTLForMac(const MacWindowInfo&, const Dis
- 
- std::unique_ptr<WindowContext> MakeRasterForMac(const MacWindowInfo&, const DisplayParams&);
- #ifdef SK_METAL
--std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&);
-+SK_API std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&);
- #endif
- 
- }  // namespace window_context_factory


More information about the Libreoffice-commits mailing list