download.lst                                         |    4 
 external/skia/Library_skia.mk                        |  109 ++++++++++---------
 external/skia/UnpackedTarball_skia.mk                |    5 
 external/skia/clang11-flax-vector-conversion.patch.0 |    4 
 external/skia/constexpr-template.patch.0             |   34 ++++-
 external/skia/fix-graphite-ifdef.patch.1             |   48 ++++++++
 external/skia/fix-pch.patch.1                        |   30 ++++-
 external/skia/fix-warnings.patch.1                   |    4 
 external/skia/inc/pch/precompiled_skia.hxx           |   44 +++++++
 external/skia/make-api-visible.patch.1               |   21 ---
 external/skia/missing-include.patch.0                |   20 +++
 external/skia/share-grcontext.patch.1                |   20 +--
 external/skia/tdf148624.patch.1                      |   60 ++++++++++
 vcl/skia/SkiaHelper.cxx                              |    2 
 vcl/skia/gdiimpl.cxx                                 |    1 
 15 files changed, 305 insertions(+), 101 deletions(-)

New commits:
commit 9fd65d8f9485f44e8f18b4e68d0e70ba154ae636
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Wed Jan 25 13:14:58 2023 +0100
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Wed Jan 25 17:25:32 2023 +0000

    Revert "Update skia to m110"
    
    This reverts commit aef70869b0fae3001648ec2a2651ffc9c507678f plus follow-up
    4172fcb7514ff8a9e9740ff0939e9a2f611edbce "Fix no-pch Windows build: missing
    include".  It caused my Windows build `instdir/program/soffice` to 
immediatley
    fail with
    
    > skia\include/core/SkRefCnt.h(62): fatal error: "assert(this->getRefCnt() 
> 0)"
    > warn:skia:10572:7804:external/skia/source/SkMemory_malloc.cxx:32: 
sk_abort_no_print
    
    on start.
    
    Change-Id: I751f83eda28d9a5a8f9dd4b2429389906ffce983
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146132
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/download.lst b/download.lst
index 6c1af18404b5..6d77206cfec3 100644
--- a/download.lst
+++ b/download.lst
@@ -501,8 +501,8 @@ RHINO_TARBALL := 
798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-SKIA_SHA256SUM := 
878112f9693be12292d5fad5e73367fa11c96909ae27d1d7d2e2cb5d01011ea7
-SKIA_TARBALL := skia-m110-aab9fb4100da797d25fe340e9a2fcb2ae30fc2e1.tar.xz
+SKIA_SHA256SUM := 
c094a6247e44104beaaa0d00c825beb6baf1a8e532dc22214747495317a65bd9
+SKIA_TARBALL := skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/skia/Library_skia.mk b/external/skia/Library_skia.mk
index 447a223592f1..c0f91e1a463a 100644
--- a/external/skia/Library_skia.mk
+++ b/external/skia/Library_skia.mk
@@ -112,7 +112,7 @@ $(eval $(call gb_Library_use_libraries,skia,\
 $(eval $(call gb_Library_set_include,skia,\
     $$(INCLUDE) \
     -I$(call gb_UnpackedTarball_get_dir,skia) \
-    -I$(call gb_UnpackedTarball_get_dir,skia)/modules/skcms/ \
+    -I$(call gb_UnpackedTarball_get_dir,skia)/include/third_party/skcms/ \
     -I$(call 
gb_UnpackedTarball_get_dir,skia)/third_party/vulkanmemoryallocator/ \
     -I$(call gb_UnpackedTarball_get_dir,skia)/include/third_party/vulkan/ \
     -I$(SRCDIR)/external/skia/inc/ \
@@ -145,6 +145,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/codec/SkPngCodec \
     UnpackedTarball/skia/src/codec/SkSampledCodec \
     UnpackedTarball/skia/src/codec/SkSampler \
+    UnpackedTarball/skia/src/codec/SkStreamBuffer \
     UnpackedTarball/skia/src/codec/SkSwizzler \
     UnpackedTarball/skia/src/codec/SkWbmpCodec \
     UnpackedTarball/skia/src/core/SkAAClip \
@@ -167,6 +168,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkBlitter_ARGB32 \
     UnpackedTarball/skia/src/core/SkBlitter_A8 \
     UnpackedTarball/skia/src/core/SkBlitter \
+    UnpackedTarball/skia/src/core/SkBlitter_RGB565 \
     UnpackedTarball/skia/src/core/SkBlitter_Sprite \
     UnpackedTarball/skia/src/core/SkBlockAllocator \
     UnpackedTarball/skia/src/core/SkBlurMask \
@@ -175,7 +177,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkCachedData \
     UnpackedTarball/skia/src/core/SkCanvas \
     UnpackedTarball/skia/src/core/SkCanvasPriv \
-    UnpackedTarball/skia/src/core/SkCapabilities \
     UnpackedTarball/skia/src/core/SkChromeRemoteGlyphCache \
     UnpackedTarball/skia/src/core/SkClipStack \
     UnpackedTarball/skia/src/core/SkClipStackDevice \
@@ -185,7 +186,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkColorSpace \
     UnpackedTarball/skia/src/core/SkColorSpaceXformSteps \
     UnpackedTarball/skia/src/core/SkCompressedDataUtils \
-    UnpackedTarball/skia/src/core/SkContainers \
     UnpackedTarball/skia/src/core/SkContourMeasure \
     UnpackedTarball/skia/src/core/SkConvertPixels \
     UnpackedTarball/skia/src/core/SkCpu \
@@ -224,6 +224,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkGlobalInitialization_core \
     UnpackedTarball/skia/src/core/SkGlyph \
     UnpackedTarball/skia/src/core/SkGlyphBuffer \
+    UnpackedTarball/skia/src/core/SkGlyphRun \
     UnpackedTarball/skia/src/core/SkGlyphRunPainter \
     UnpackedTarball/skia/src/core/SkGraphics \
     UnpackedTarball/skia/src/core/SkHalf \
@@ -233,6 +234,8 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkImageFilter \
     UnpackedTarball/skia/src/core/SkImageGenerator \
     UnpackedTarball/skia/src/core/SkImageInfo \
+    UnpackedTarball/skia/src/core/SkKeyContext \
+    UnpackedTarball/skia/src/core/SkKeyHelpers \
     UnpackedTarball/skia/src/core/SkLatticeIter \
     UnpackedTarball/skia/src/core/SkLineClipper \
     UnpackedTarball/skia/src/core/SkLocalMatrixImageFilter \
@@ -245,10 +248,12 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkMaskGamma \
     UnpackedTarball/skia/src/core/SkMath \
     UnpackedTarball/skia/src/core/SkMatrix \
+    UnpackedTarball/skia/src/core/SkMatrixImageFilter \
     UnpackedTarball/skia/src/core/SkMatrixInvert \
     UnpackedTarball/skia/src/core/SkM44 \
     UnpackedTarball/skia/src/core/SkMD5 \
     UnpackedTarball/skia/src/core/SkMesh \
+    UnpackedTarball/skia/src/core/SkMiniRecorder \
     UnpackedTarball/skia/src/core/SkMipmap \
     UnpackedTarball/skia/src/core/SkMipmapAccessor \
     UnpackedTarball/skia/src/core/SkModeColorFilter \
@@ -256,14 +261,15 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkOpts_erms \
     UnpackedTarball/skia/src/core/SkOverdrawCanvas \
     UnpackedTarball/skia/src/core/SkPaint \
+    UnpackedTarball/skia/src/core/SkPaintParamsKey \
     UnpackedTarball/skia/src/core/SkPaintPriv \
     UnpackedTarball/skia/src/core/SkPath \
     UnpackedTarball/skia/src/core/SkPathBuilder \
     UnpackedTarball/skia/src/core/SkPathEffect \
     UnpackedTarball/skia/src/core/SkPathMeasure \
     UnpackedTarball/skia/src/core/SkPathRef \
-    UnpackedTarball/skia/src/core/SkPathUtils \
     UnpackedTarball/skia/src/core/SkPath_serial \
+    UnpackedTarball/skia/src/core/SkPipelineData \
     UnpackedTarball/skia/src/core/SkPicture \
     UnpackedTarball/skia/src/core/SkPictureData \
     UnpackedTarball/skia/src/core/SkPictureFlat \
@@ -305,14 +311,16 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkScan_Hairline \
     UnpackedTarball/skia/src/core/SkScan_Path \
     UnpackedTarball/skia/src/core/SkSemaphore \
+    UnpackedTarball/skia/src/core/SkShaderCodeDictionary \
     UnpackedTarball/skia/src/core/SkSharedMutex \
-    UnpackedTarball/skia/src/core/SkSLTypeShared \
     UnpackedTarball/skia/src/core/SkSpecialImage \
     UnpackedTarball/skia/src/core/SkSpecialSurface \
     UnpackedTarball/skia/src/core/SkSpinlock \
     UnpackedTarball/skia/src/core/SkSpriteBlitter_ARGB32 \
+    UnpackedTarball/skia/src/core/SkSpriteBlitter_RGB565 \
     UnpackedTarball/skia/src/core/SkStream \
     UnpackedTarball/skia/src/core/SkStrikeCache \
+    UnpackedTarball/skia/src/core/SkStrikeForGPU \
     UnpackedTarball/skia/src/core/SkStrikeSpec \
     UnpackedTarball/skia/src/core/SkString \
     UnpackedTarball/skia/src/core/SkStringUtils \
@@ -324,7 +332,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkTaskGroup \
     UnpackedTarball/skia/src/core/SkTextBlob \
     UnpackedTarball/skia/src/core/SkTextBlobTrace \
-    UnpackedTarball/skia/src/core/SkTDArray \
     UnpackedTarball/skia/src/core/SkThreadID \
     UnpackedTarball/skia/src/core/SkTime \
     UnpackedTarball/skia/src/core/SkTSearch \
@@ -346,6 +353,10 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkYUVAPixmaps \
     UnpackedTarball/skia/src/core/SkYUVMath \
     UnpackedTarball/skia/src/core/SkYUVPlanesCache \
+    UnpackedTarball/skia/src/c/sk_effects \
+    UnpackedTarball/skia/src/c/sk_imageinfo \
+    UnpackedTarball/skia/src/c/sk_paint \
+    UnpackedTarball/skia/src/c/sk_surface \
     UnpackedTarball/skia/src/effects/imagefilters/SkAlphaThresholdImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkArithmeticImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkBlendImageFilter \
@@ -359,9 +370,9 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/effects/imagefilters/SkLightingImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkMagnifierImageFilter \
     
UnpackedTarball/skia/src/effects/imagefilters/SkMatrixConvolutionImageFilter \
-    UnpackedTarball/skia/src/effects/imagefilters/SkMatrixTransformImageFilter 
\
     UnpackedTarball/skia/src/effects/imagefilters/SkMergeImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkMorphologyImageFilter \
+    UnpackedTarball/skia/src/effects/imagefilters/SkOffsetImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkPictureImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkShaderImageFilter \
     UnpackedTarball/skia/src/effects/imagefilters/SkRuntimeImageFilter \
@@ -431,16 +442,16 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sfnt/SkOTTable_name \
     UnpackedTarball/skia/src/sfnt/SkOTUtils \
     UnpackedTarball/skia/src/shaders/gradients/SkGradientShader \
-    UnpackedTarball/skia/src/shaders/gradients/SkGradientShaderBase \
     UnpackedTarball/skia/src/shaders/gradients/SkLinearGradient \
     UnpackedTarball/skia/src/shaders/gradients/SkRadialGradient \
     UnpackedTarball/skia/src/shaders/gradients/SkSweepGradient \
     UnpackedTarball/skia/src/shaders/gradients/SkTwoPointConicalGradient \
+    UnpackedTarball/skia/src/shaders/gradients/Sk4fGradientBase \
+    UnpackedTarball/skia/src/shaders/gradients/Sk4fLinearGradient \
     UnpackedTarball/skia/src/shaders/SkBitmapProcShader \
     UnpackedTarball/skia/src/shaders/SkColorFilterShader \
     UnpackedTarball/skia/src/shaders/SkColorShader \
     UnpackedTarball/skia/src/shaders/SkComposeShader \
-    UnpackedTarball/skia/src/shaders/SkEmptyShader \
     UnpackedTarball/skia/src/shaders/SkImageShader \
     UnpackedTarball/skia/src/shaders/SkLocalMatrixShader \
     UnpackedTarball/skia/src/shaders/SkPerlinNoiseShader \
@@ -453,9 +464,12 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     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 \
@@ -470,7 +484,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/ir/SkSLConstructorScalarCast \
     UnpackedTarball/skia/src/sksl/ir/SkSLConstructorSplat \
     UnpackedTarball/skia/src/sksl/ir/SkSLConstructorStruct \
-    UnpackedTarball/skia/src/sksl/ir/SkSLDiscardStatement \
     UnpackedTarball/skia/src/sksl/ir/SkSLDoStatement \
     UnpackedTarball/skia/src/sksl/ir/SkSLExpression \
     UnpackedTarball/skia/src/sksl/ir/SkSLExpressionStatement \
@@ -481,11 +494,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/ir/SkSLFunctionDefinition \
     UnpackedTarball/skia/src/sksl/ir/SkSLIfStatement \
     UnpackedTarball/skia/src/sksl/ir/SkSLIndexExpression \
-    UnpackedTarball/skia/src/sksl/ir/SkSLInterfaceBlock \
-    UnpackedTarball/skia/src/sksl/ir/SkSLLayout \
-    UnpackedTarball/skia/src/sksl/ir/SkSLLiteral \
     UnpackedTarball/skia/src/sksl/ir/SkSLModifiers \
-    UnpackedTarball/skia/src/sksl/ir/SkSLProgram \
     UnpackedTarball/skia/src/sksl/ir/SkSLPrefixExpression \
     UnpackedTarball/skia/src/sksl/ir/SkSLPostfixExpression \
     UnpackedTarball/skia/src/sksl/ir/SkSLSetting \
@@ -499,22 +508,24 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/ir/SkSLVariable \
     UnpackedTarball/skia/src/sksl/ir/SkSLVariableReference \
     UnpackedTarball/skia/src/sksl/SkSLAnalysis \
+    UnpackedTarball/skia/src/sksl/SkSLBuiltinMap \
     UnpackedTarball/skia/src/sksl/SkSLBuiltinTypes \
     UnpackedTarball/skia/src/sksl/SkSLCompiler \
     UnpackedTarball/skia/src/sksl/SkSLConstantFolder \
     UnpackedTarball/skia/src/sksl/SkSLContext \
+    UnpackedTarball/skia/src/sksl/SkSLDSLParser \
+    UnpackedTarball/skia/src/sksl/SkSLDehydrator \
     UnpackedTarball/skia/src/sksl/SkSLErrorReporter \
     UnpackedTarball/skia/src/sksl/SkSLInliner \
-    UnpackedTarball/skia/src/sksl/SkSLIntrinsicList \
     UnpackedTarball/skia/src/sksl/SkSLLexer \
     UnpackedTarball/skia/src/sksl/SkSLMangler \
-    UnpackedTarball/skia/src/sksl/SkSLModuleLoader \
     UnpackedTarball/skia/src/sksl/SkSLOperator \
     UnpackedTarball/skia/src/sksl/SkSLOutputStream \
-    UnpackedTarball/skia/src/sksl/SkSLParser \
     UnpackedTarball/skia/src/sksl/SkSLPool \
     UnpackedTarball/skia/src/sksl/SkSLPosition \
+    UnpackedTarball/skia/src/sksl/SkSLRehydrator \
     UnpackedTarball/skia/src/sksl/SkSLSampleUsage \
+    UnpackedTarball/skia/src/sksl/SkSLSharedCompiler \
     UnpackedTarball/skia/src/sksl/SkSLString \
     UnpackedTarball/skia/src/sksl/SkSLThreadContext \
     UnpackedTarball/skia/src/sksl/SkSLUtil \
@@ -522,12 +533,9 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/analysis/SkSLCheckProgramStructure \
     UnpackedTarball/skia/src/sksl/analysis/SkSLFinalizationChecks \
     UnpackedTarball/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo \
-    UnpackedTarball/skia/src/sksl/analysis/SkSLHasSideEffects \
     UnpackedTarball/skia/src/sksl/analysis/SkSLIsConstantExpression \
     UnpackedTarball/skia/src/sksl/analysis/SkSLIsSameExpressionTree \
-    UnpackedTarball/skia/src/sksl/analysis/SkSLIsTrivialExpression \
     UnpackedTarball/skia/src/sksl/analysis/SkSLProgramUsage \
-    UnpackedTarball/skia/src/sksl/analysis/SkSLSymbolTableStackBuilder \
     UnpackedTarball/skia/src/sksl/analysis/SkSLSwitchCaseContainsExit \
     UnpackedTarball/skia/src/sksl/codegen/SkSLGLSLCodeGenerator \
     UnpackedTarball/skia/src/sksl/codegen/SkSLMetalCodeGenerator \
@@ -537,16 +545,11 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/codegen/SkSLVMCodeGenerator \
     UnpackedTarball/skia/src/sksl/codegen/SkSLWGSLCodeGenerator \
     UnpackedTarball/skia/src/sksl/tracing/SkVMDebugTrace \
-    UnpackedTarball/skia/src/sksl/transform/SkSLAddConstToVarModifiers \
+    UnpackedTarball/skia/src/sksl/transform/SkSLBuiltinVariableScanner \
     UnpackedTarball/skia/src/sksl/transform/SkSLEliminateDeadFunctions \
     UnpackedTarball/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables \
     UnpackedTarball/skia/src/sksl/transform/SkSLEliminateDeadLocalVariables \
-    UnpackedTarball/skia/src/sksl/transform/SkSLEliminateEmptyStatements \
     UnpackedTarball/skia/src/sksl/transform/SkSLEliminateUnreachableCode \
-    UnpackedTarball/skia/src/sksl/transform/SkSLFindAndDeclareBuiltinFunctions 
\
-    UnpackedTarball/skia/src/sksl/transform/SkSLFindAndDeclareBuiltinVariables 
\
-    UnpackedTarball/skia/src/sksl/transform/SkSLRenamePrivateSymbols \
-    UnpackedTarball/skia/src/sksl/transform/SkSLReplaceConstVarsWithLiterals \
     UnpackedTarball/skia/src/utils/SkBase64 \
     UnpackedTarball/skia/src/utils/SkCamera \
     UnpackedTarball/skia/src/utils/SkCanvasStack \
@@ -557,7 +560,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/SkGaussianColorFilter \
     UnpackedTarball/skia/src/utils/SkJSON \
     UnpackedTarball/skia/src/utils/SkJSONWriter \
     UnpackedTarball/skia/src/utils/SkMatrix22 \
@@ -575,7 +577,10 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/utils/SkShaderUtils \
     UnpackedTarball/skia/src/utils/SkShadowTessellator \
     UnpackedTarball/skia/src/utils/SkShadowUtils \
+    UnpackedTarball/skia/src/utils/SkShaperJSONWriter \
     UnpackedTarball/skia/src/utils/SkTextUtils \
+    UnpackedTarball/skia/src/utils/SkThreadUtils_pthread \
+    UnpackedTarball/skia/src/utils/SkThreadUtils_win \
     UnpackedTarball/skia/src/utils/SkUTF \
     UnpackedTarball/skia/src/utils/SkVMVisualizer \
     UnpackedTarball/skia/src/xps/SkXPSDevice \
@@ -592,16 +597,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ResourceKey \
     UnpackedTarball/skia/src/gpu/ShaderErrorHandler \
     UnpackedTarball/skia/src/gpu/Swizzle \
-    UnpackedTarball/skia/src/gpu/ganesh/ClipStack \
-    UnpackedTarball/skia/src/gpu/ganesh/Device \
-    UnpackedTarball/skia/src/gpu/ganesh/Device_drawTexture \
-    UnpackedTarball/skia/src/gpu/ganesh/GrBufferTransferRenderTask \
-    UnpackedTarball/skia/src/gpu/ganesh/GrBufferUpdateRenderTask \
-    UnpackedTarball/skia/src/gpu/ganesh/GrSurfaceProxyView \
-    UnpackedTarball/skia/src/gpu/ganesh/PathRenderer \
-    UnpackedTarball/skia/src/gpu/ganesh/PathRendererChain \
-    UnpackedTarball/skia/src/gpu/ganesh/StencilMaskHelper \
-    UnpackedTarball/skia/src/gpu/ganesh/SurfaceDrawContext \
     UnpackedTarball/skia/src/gpu/ganesh/effects/GrBezierEffect \
     UnpackedTarball/skia/src/gpu/ganesh/effects/GrBicubicEffect \
     UnpackedTarball/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc \
@@ -628,6 +623,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ganesh/geometry/GrShape \
     UnpackedTarball/skia/src/gpu/ganesh/geometry/GrStyledShape \
     UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSLBlend \
+    UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSL \
     UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder \
     UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSLProgramBuilder \
     UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSLProgramDataManager \
@@ -641,6 +637,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ganesh/GrAHardwareBufferUtils \
     UnpackedTarball/skia/src/gpu/ganesh/GrAttachment \
     UnpackedTarball/skia/src/gpu/ganesh/GrBackendSemaphore \
+    UnpackedTarball/skia/src/gpu/ganesh/GrBackendSurfaceMutableState \
     UnpackedTarball/skia/src/gpu/ganesh/GrBackendSurface \
     UnpackedTarball/skia/src/gpu/ganesh/GrBackendTextureImageGenerator \
     UnpackedTarball/skia/src/gpu/ganesh/GrBackendUtils \
@@ -732,6 +729,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ganesh/mock/GrMockCaps \
     UnpackedTarball/skia/src/gpu/ganesh/mock/GrMockGpu \
     UnpackedTarball/skia/src/gpu/ganesh/mock/GrMockTypes \
+    UnpackedTarball/skia/src/gpu/ganesh/BaseDevice \
     UnpackedTarball/skia/src/gpu/ganesh/SkGr \
     UnpackedTarball/skia/src/gpu/ganesh/SurfaceContext \
     UnpackedTarball/skia/src/gpu/ganesh/SurfaceFillContext \
@@ -741,24 +739,21 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ganesh/tessellate/PathTessellator \
     UnpackedTarball/skia/src/gpu/ganesh/tessellate/StrokeTessellator \
     UnpackedTarball/skia/src/gpu/ganesh/text/GrAtlasManager \
+    UnpackedTarball/skia/src/gpu/ganesh/text/GrDistanceFieldAdjustTable \
+    UnpackedTarball/skia/src/gpu/ganesh/text/GrSDFMaskFilter \
+    UnpackedTarball/skia/src/gpu/ganesh/text/GrSDFTControl \
+    UnpackedTarball/skia/src/gpu/ganesh/text/GrSlug \
+    UnpackedTarball/skia/src/gpu/ganesh/text/GrTextBlob \
+    UnpackedTarball/skia/src/gpu/ganesh/text/GrTextBlobRedrawCoordinator \
     UnpackedTarball/skia/src/gpu/tessellate/FixedCountBufferUtils \
     UnpackedTarball/skia/src/gpu/tessellate/Tessellation \
     UnpackedTarball/skia/src/image/SkImage_GpuBase \
     UnpackedTarball/skia/src/image/SkImage_Gpu \
     UnpackedTarball/skia/src/image/SkImage_GpuYUVA \
     UnpackedTarball/skia/src/image/SkSurface_Gpu \
-    UnpackedTarball/skia/src/text/GlyphRun \
-    UnpackedTarball/skia/src/text/StrikeForGPU \
-    UnpackedTarball/skia/src/text/gpu/DistanceFieldAdjustTable \
     UnpackedTarball/skia/src/text/gpu/GlyphVector \
-    UnpackedTarball/skia/src/text/gpu/Slug \
     UnpackedTarball/skia/src/text/gpu/StrikeCache \
-    UnpackedTarball/skia/src/text/gpu/SubRunContainer \
     UnpackedTarball/skia/src/text/gpu/SubRunAllocator \
-    UnpackedTarball/skia/src/text/gpu/SDFMaskFilter \
-    UnpackedTarball/skia/src/text/gpu/SDFTControl \
-    UnpackedTarball/skia/src/text/gpu/TextBlob \
-    UnpackedTarball/skia/src/text/gpu/TextBlobRedrawCoordinator \
 ))
 
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
@@ -804,10 +799,19 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ganesh/ops/TessellationPathRenderer \
     UnpackedTarball/skia/src/gpu/ganesh/ops/TextureOp \
     UnpackedTarball/skia/src/gpu/ganesh/ops/TriangulatingPathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/v1/ClipStack \
+    UnpackedTarball/skia/src/gpu/ganesh/v1/Device \
+    UnpackedTarball/skia/src/gpu/ganesh/v1/Device_drawTexture \
+    UnpackedTarball/skia/src/gpu/ganesh/v1/PathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/v1/PathRendererChain \
+    UnpackedTarball/skia/src/gpu/ganesh/v1/StencilMaskHelper \
+    UnpackedTarball/skia/src/gpu/ganesh/v1/SurfaceDrawContext \
+    UnpackedTarball/skia/src/gpu/ganesh/v1/SurfaceFillContext_v1 \
 ))
 
 ifeq ($(SKIA_GPU),VULKAN)
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkAMDMemoryAllocator \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkBuffer \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkCaps \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkCommandBuffer \
@@ -815,11 +819,14 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkDescriptorPool \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkDescriptorSet \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkDescriptorSetManager \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkExtensions \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkFramebuffer \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkGpu \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkImage \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkImageView \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkInterface \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkMSAALoadManager \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkMemory \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkOpsRenderPass \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkPipeline \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkPipelineStateBuilder \
@@ -839,10 +846,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkUniformHandler \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkUtil \
     UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkVaryingHandler \
-    UnpackedTarball/skia/src/gpu/vk/VulkanAMDMemoryAllocator \
-    UnpackedTarball/skia/src/gpu/vk/VulkanExtensions \
-    UnpackedTarball/skia/src/gpu/vk/VulkanInterface \
-    UnpackedTarball/skia/src/gpu/vk/VulkanMemory \
 ))
 
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
@@ -874,6 +877,10 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
         $(LO_CLANG_CXXFLAGS_INTRINSICS_AVX2) 
$(LO_CLANG_CXXFLAGS_INTRINSICS_F16C) $(LO_CLANG_CXXFLAGS_INTRINSICS_FMA) \
         $(LO_SKIA_AVOID_INLINE_COPIES) \
 ))
+$(eval $(call gb_Library_add_generated_exception_objects,skia,\
+    UnpackedTarball/skia/src/opts/SkOpts_sse41, $(CXXFLAGS_INTRINSICS_SSE41) 
$(LO_CLANG_CXXFLAGS_INTRINSICS_SSE41) \
+        $(LO_SKIA_AVOID_INLINE_COPIES) \
+))
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/opts/SkOpts_sse42, $(CXXFLAGS_INTRINSICS_SSE42) 
$(LO_CLANG_CXXFLAGS_INTRINSICS_SSE42) \
         $(LO_SKIA_AVOID_INLINE_COPIES) \
@@ -1005,7 +1012,7 @@ endif
 # this without optimizations would mean having each pixel of saved images be
 # processed by unoptimized code.
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
-    UnpackedTarball/skia/modules/skcms/skcms, $(gb_COMPILEROPTFLAGS) \
+    UnpackedTarball/skia/third_party/skcms/skcms, $(gb_COMPILEROPTFLAGS) \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/skia/UnpackedTarball_skia.mk 
b/external/skia/UnpackedTarball_skia.mk
index aec7edabdba7..e8a75960658c 100644
--- a/external/skia/UnpackedTarball_skia.mk
+++ b/external/skia/UnpackedTarball_skia.mk
@@ -34,9 +34,12 @@ skia_patches := \
     skia_sk_cpu_sse_level_0_by_default.patch.1 \
     fix-warnings.patch.1 \
     windows-libraries-system32.patch.1 \
+    fix-graphite-ifdef.patch.1 \
     allow-no-es2restrictions.patch.1 \
     vk_mem_alloc.patch.1 \
+    tdf148624.patch.1 \
     constexpr-template.patch.0 \
+    missing-include.patch.0 \
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
 
@@ -45,7 +48,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,skia,\
 ))
 
 $(eval $(call gb_UnpackedTarball_set_post_action,skia,\
-    mv modules/skcms/skcms.cc modules/skcms/skcms.cpp \
+    mv third_party/skcms/skcms.cc third_party/skcms/skcms.cpp \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/skia/clang11-flax-vector-conversion.patch.0 
b/external/skia/clang11-flax-vector-conversion.patch.0
index aebe66c907d6..40cf4e0a4fd5 100644
--- a/external/skia/clang11-flax-vector-conversion.patch.0
+++ b/external/skia/clang11-flax-vector-conversion.patch.0
@@ -1,8 +1,8 @@
 --- src/opts/SkRasterPipeline_opts.h
 +++ src/opts/SkRasterPipeline_opts.h
-@@ -43,7 +43,7 @@
+@@ -68,7 +68,7 @@
+ };
  
- using NoCtx = const void*;
  
 -#if !defined(__clang__)
 +#if !defined(__clang__) || __clang_major__ >= 11
diff --git a/external/skia/constexpr-template.patch.0 
b/external/skia/constexpr-template.patch.0
index 4123227ba637..883f31e0f1b6 100644
--- a/external/skia/constexpr-template.patch.0
+++ b/external/skia/constexpr-template.patch.0
@@ -23,12 +23,23 @@
          collectArgs(args, std::forward<RemainingArgs>(remaining)...);
      }
  
+--- include/sksl/DSLVar.h
++++ include/sksl/DSLVar.h
+@@ -35,7 +35,7 @@
+     /**
+      * Creates an empty, unpopulated var. Can be replaced with a real var 
later via `swap`.
+      */
+-    DSLVarBase() : fType(kVoid_Type), fDeclared(true) {}
++    DSLVarBase();
+ 
+     /**
+      * Constructs a new variable with the specified type and name. The name 
is used (in mangled
 --- src/gpu/ganesh/effects/GrBlendFragmentProcessor.h
 +++ src/gpu/ganesh/effects/GrBlendFragmentProcessor.h
 @@ -10,8 +10,7 @@
- #include "include/core/SkRefCnt.h"
  
- #include <memory>
+ #include "include/core/SkBlendMode.h"
+ #include "include/core/SkRefCnt.h"
 -
 -class GrFragmentProcessor;
 +#include "src/gpu/ganesh/GrFragmentProcessor.h"
@@ -37,14 +48,25 @@
  
 --- src/sksl/dsl/DSLFunction.cpp
 +++ src/sksl/dsl/DSLFunction.cpp
-@@ -41,6 +41,10 @@
-     return context.fConfig->fIsBuiltinCode && SkSL::FindIntrinsicKind(name) 
!= kNotIntrinsic;
- }
+@@ -34,6 +34,10 @@
+ 
+ namespace dsl {
  
 +void DSLFunction::push_back(ExpressionArray& args, DSLExpression& expr) {
 +    args.push_back(expr.release());
 +}
 +
  void DSLFunction::init(DSLModifiers modifiers, const DSLType& returnType, 
std::string_view name,
-                        SkSpan<DSLParameter*> params, Position pos) {
+                        SkTArray<DSLParameter*> params, Position pos) {
      fPosition = pos;
+--- src/sksl/dsl/DSLVar.cpp
++++ src/sksl/dsl/DSLVar.cpp
+@@ -46,6 +46,8 @@
+ 
+ namespace dsl {
+ 
++DSLVarBase::DSLVarBase() : fType(kVoid_Type), fDeclared(true) {}
++
+ DSLVarBase::DSLVarBase(DSLType type, std::string_view name, DSLExpression 
initialValue,
+                        Position pos, Position namePos)
+     : DSLVarBase(DSLModifiers(), std::move(type), name, 
std::move(initialValue), pos, namePos) {}
diff --git a/external/skia/fix-graphite-ifdef.patch.1 
b/external/skia/fix-graphite-ifdef.patch.1
new file mode 100644
index 000000000000..4ed2ff2527b4
--- /dev/null
+++ b/external/skia/fix-graphite-ifdef.patch.1
@@ -0,0 +1,48 @@
+diff --git a/include/core/SkImage.h b/include/core/SkImage.h
+index 9ca9317408..fee18fe58c 100644
+--- a/include/core/SkImage.h
++++ b/include/core/SkImage.h
+@@ -17,7 +17,7 @@
+ #if SK_SUPPORT_GPU
+ #include "include/gpu/GrTypes.h"
+ #endif
+-#if SK_GRAPHITE_ENABLED
++#ifdef SK_GRAPHITE_ENABLED
+ #include "include/gpu/graphite/GraphiteTypes.h"
+ #endif
+ #include <functional>  // std::function
+@@ -49,7 +49,7 @@ class SkYUVAPixmaps;
+ 
+ enum class SkEncodedImageFormat;
+ 
+-#if SK_GRAPHITE_ENABLED
++#ifdef SK_GRAPHITE_ENABLED
+ namespace skgpu::graphite {
+ class Recorder;
+ };
+diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
+index 5301361a2b..8adaf3ac09 100644
+--- a/include/core/SkTypes.h
++++ b/include/core/SkTypes.h
+@@ -236,7 +236,7 @@
+ #  define SK_SUPPORT_GPU 1
+ #endif
+ 
+-#if SK_SUPPORT_GPU || SK_GRAPHITE_ENABLED
++#if SK_SUPPORT_GPU || defined(SK_GRAPHITE_ENABLED)
+ #  if !defined(SK_ENABLE_SKSL)
+ #    define SK_ENABLE_SKSL
+ #  endif
+diff --git a/tools/sk_app/WindowContext.h b/tools/sk_app/WindowContext.h
+index 65ab8b9aa4..c1bc7fb03a 100644
+--- a/tools/sk_app/WindowContext.h
++++ b/tools/sk_app/WindowContext.h
+@@ -58,7 +58,7 @@ protected:
+     virtual bool isGpuContext() { return true;  }
+ 
+     sk_sp<GrDirectContext> fContext;
+-#if SK_GRAPHITE_ENABLED
++#ifdef SK_GRAPHITE_ENABLED
+     std::unique_ptr<skgpu::graphite::Context> fGraphiteContext;
+     std::unique_ptr<skgpu::graphite::Recorder> fGraphiteRecorder;
+ #endif
diff --git a/external/skia/fix-pch.patch.1 b/external/skia/fix-pch.patch.1
index f3e70739354e..a2fe81562720 100644
--- a/external/skia/fix-pch.patch.1
+++ b/external/skia/fix-pch.patch.1
@@ -1,3 +1,15 @@
+diff --git a/include/core/SkColor.h b/include/core/SkColor.h
+index a6e63def23..1c0655c3d7 100644
+--- a/include/core/SkColor.h
++++ b/include/core/SkColor.h
+@@ -420,6 +420,7 @@ using SkColor4f = SkRGBA4f<kUnpremul_SkAlphaType>;
+ 
+ template <> SK_API SkColor4f SkColor4f::FromColor(SkColor);
+ template <> SK_API SkColor   SkColor4f::toSkColor() const;
++template <> uint32_t SkColor4f::toBytes_RGBA() const;
+ 
+ namespace SkColors {
+ constexpr SkColor4f kTransparent = {0, 0, 0, 0};
 diff --git a/include/private/SkColorData.h b/include/private/SkColorData.h
 index a59e7b0446..960b4c0313 100644
 --- a/include/private/SkColorData.h
@@ -67,11 +79,21 @@ index af4909aaaf..825ec35c83 100644
  #include <dwrite.h>
  #include <d2d1.h>
  
-diff --git a/modules/skcms/skcms.cc b/modules/skcms/skcms.cc
+diff --git a/third_party/skcms/skcms.cc b/third_party/skcms/skcms.cc
 index 1b643f45cf..c1981110da 100644
---- a/modules/skcms/skcms.cc
-+++ b/modules/skcms/skcms.cc
-@@ -2371,7 +2372,9 @@ typedef enum {
+--- a/third_party/skcms/skcms.cc
++++ b/third_party/skcms/skcms.cc
+@@ -130,7 +130,8 @@ static float minus_1_ulp(float x) {
+ // Most transfer functions we work with are sRGBish.
+ // For exotic HDR transfer functions, we encode them using a tf.g that makes 
no sense,
+ // and repurpose the other fields to hold the parameters of the HDR functions.
+-enum TFKind { Bad, sRGBish, PQish, HLGish, HLGinvish };
++enum TFKind_skcms { Bad, sRGBish, PQish, HLGish, HLGinvish };
++#define TFKind TFKind_skcms
+ 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
+@@ -2318,7 +2319,9 @@ typedef enum {
      Op_store_hhhh,
      Op_store_fff,
      Op_store_ffff,
diff --git a/external/skia/fix-warnings.patch.1 
b/external/skia/fix-warnings.patch.1
index 46d55e493bd3..2aefd91c52e4 100644
--- a/external/skia/fix-warnings.patch.1
+++ b/external/skia/fix-warnings.patch.1
@@ -32,8 +32,8 @@ index f143dab013..be3cde0f4f 100644
      bool isAniso() const { return maxAniso != 0; }
  
  private:
--    constexpr SkSamplingOptions(int maxAniso) : maxAniso(maxAniso) {}
-+    constexpr SkSamplingOptions(int maxAniso_) : maxAniso(maxAniso_) {}
+-    SkSamplingOptions(int maxAniso) : maxAniso(maxAniso) {}
++    SkSamplingOptions(int maxAniso_) : maxAniso(maxAniso_) {}
  };
  
  #endif
diff --git a/external/skia/inc/pch/precompiled_skia.hxx 
b/external/skia/inc/pch/precompiled_skia.hxx
index dcef8fcb7f6d..e9631b68daf7 100644
--- a/external/skia/inc/pch/precompiled_skia.hxx
+++ b/external/skia/inc/pch/precompiled_skia.hxx
@@ -77,6 +77,17 @@
 #include <sal/log.hxx>
 #endif // PCH_LEVEL >= 2
 #if PCH_LEVEL >= 3
+#include <include/c/sk_canvas.h>
+#include <include/c/sk_colorspace.h>
+#include <include/c/sk_data.h>
+#include <include/c/sk_image.h>
+#include <include/c/sk_imageinfo.h>
+#include <include/c/sk_maskfilter.h>
+#include <include/c/sk_paint.h>
+#include <include/c/sk_path.h>
+#include <include/c/sk_picture.h>
+#include <include/c/sk_shader.h>
+#include <include/c/sk_surface.h>
 #include <include/codec/SkAndroidCodec.h>
 #include <include/codec/SkCodec.h>
 #include <include/core/SkAlphaType.h>
@@ -212,6 +223,7 @@
 #include <include/private/SkMacros.h>
 #include <include/private/SkMalloc.h>
 #include <include/private/SkMutex.h>
+#include <include/private/SkNx.h>
 #include <include/private/SkOnce.h>
 #include <include/private/SkOpts_spi.h>
 #include <include/private/SkPathRef.h>
@@ -243,7 +255,7 @@
 #include <include/private/chromium/SkChromeRemoteGlyphCache.h>
 #include <include/private/gpu/ganesh/GrImageContext.h>
 #include <include/private/gpu/ganesh/GrTypesPriv.h>
-#include <modules/skcms/skcms.h>
+#include <include/third_party/skcms/skcms.h>
 #include <include/utils/SkBase64.h>
 #include <include/utils/SkCamera.h>
 #include <include/utils/SkCanvasStateUtils.h>
@@ -276,6 +288,7 @@
 #include <src/codec/SkPngPriv.h>
 #include <src/codec/SkSampledCodec.h>
 #include <src/codec/SkSampler.h>
+#include <src/codec/SkStreamBuffer.h>
 #include <src/codec/SkSwizzler.h>
 #include <src/codec/SkWbmpCodec.h>
 #include <src/core/SkAAClip.h>
@@ -306,6 +319,7 @@
 #include <src/core/SkClipStackDevice.h>
 #include <src/core/SkColorFilterBase.h>
 #include <src/core/SkColorFilterPriv.h>
+#include <src/core/SkColorFilter_Matrix.h>
 #include <src/core/SkColorSpacePriv.h>
 #include <src/core/SkColorSpaceXformSteps.h>
 #include <src/core/SkCompressedDataUtils.h>
@@ -336,6 +350,7 @@
 #include <src/core/SkGeometry.h>
 #include <src/core/SkGlyph.h>
 #include <src/core/SkGlyphBuffer.h>
+#include <src/core/SkGlyphRun.h>
 #include <src/core/SkGlyphRunPainter.h>
 #include <src/core/SkGpuBlurUtils.h>
 #include <src/core/SkICCPriv.h>
@@ -343,6 +358,8 @@
 #include <src/core/SkImageFilterTypes.h>
 #include <src/core/SkImageFilter_Base.h>
 #include <src/core/SkImagePriv.h>
+#include <src/core/SkKeyContext.h>
+#include <src/core/SkKeyHelpers.h>
 #include <src/core/SkLRUCache.h>
 #include <src/core/SkLatticeIter.h>
 #include <src/core/SkLeanWindows.h>
@@ -356,29 +373,35 @@
 #include <src/core/SkMaskFilterBase.h>
 #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>
 #include <src/core/SkMeshPriv.h>
 #include <src/core/SkMessageBus.h>
+#include <src/core/SkMiniRecorder.h>
 #include <src/core/SkMipmap.h>
 #include <src/core/SkMipmapAccessor.h>
 #include <src/core/SkMipmapBuilder.h>
+#include <src/core/SkModeColorFilter.h>
 #include <src/core/SkNextID.h>
 #include <src/core/SkOSFile.h>
 #include <src/core/SkOpts.h>
 #include <src/core/SkPaintDefaults.h>
+#include <src/core/SkPaintParamsKey.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>
+#include <src/core/SkPictureCommon.h>
 #include <src/core/SkPictureData.h>
 #include <src/core/SkPictureFlat.h>
 #include <src/core/SkPicturePlayback.h>
 #include <src/core/SkPicturePriv.h>
 #include <src/core/SkPictureRecord.h>
+#include <src/core/SkPipelineData.h>
 #include <src/core/SkPixelRefPriv.h>
 #include <src/core/SkPixmapPriv.h>
 #include <src/core/SkPointPriv.h>
@@ -410,12 +433,14 @@
 #include <src/core/SkScan.h>
 #include <src/core/SkScanPriv.h>
 #include <src/core/SkScopeExit.h>
+#include <src/core/SkShaderCodeDictionary.h>
 #include <src/core/SkSharedMutex.h>
 #include <src/core/SkSpecialImage.h>
 #include <src/core/SkSpecialSurface.h>
 #include <src/core/SkSpriteBlitter.h>
 #include <src/core/SkStreamPriv.h>
 #include <src/core/SkStrikeCache.h>
+#include <src/core/SkStrikeForGPU.h>
 #include <src/core/SkStrikeSpec.h>
 #include <src/core/SkStringUtils.h>
 #include <src/core/SkStroke.h>
@@ -435,6 +460,7 @@
 #include <src/core/SkTraceEventCommon.h>
 #include <src/core/SkTypefaceCache.h>
 #include <src/core/SkTypeface_remote.h>
+#include <src/core/SkUniform.h>
 #include <src/core/SkUtils.h>
 #include <src/core/SkVM.h>
 #include <src/core/SkVMBlitter.h>
@@ -459,6 +485,7 @@
 #include <src/gpu/Blend.h>
 #include <src/gpu/KeyBuilder.h>
 #include <src/gpu/ResourceKey.h>
+#include <src/gpu/ganesh/BaseDevice.h>
 #include <src/gpu/ganesh/GrCaps.h>
 #include <src/gpu/ganesh/GrColorInfo.h>
 #include <src/gpu/ganesh/GrColorSpaceXform.h>
@@ -501,6 +528,11 @@
 #include <src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h>
 #include <src/gpu/ganesh/glsl/GrGLSLUniformHandler.h>
 #include <src/gpu/ganesh/gradients/GrGradientShader.h>
+#include <src/gpu/ganesh/text/GrSDFMaskFilter.h>
+#include <src/gpu/ganesh/text/GrSDFTControl.h>
+#include <src/gpu/ganesh/text/GrTextBlob.h>
+#include <src/gpu/ganesh/text/GrTextBlobRedrawCoordinator.h>
+#include <src/gpu/ganesh/v1/SurfaceDrawContext_v1.h>
 #include <src/image/SkImage_Base.h>
 #include <src/image/SkImage_Gpu.h>
 #include <src/image/SkImage_Lazy.h>
@@ -540,12 +572,21 @@
 #include <src/sfnt/SkOTUtils.h>
 #include <src/shaders/SkBitmapProcShader.h>
 #include <src/shaders/SkColorFilterShader.h>
+#include <src/shaders/SkColorShader.h>
+#include <src/shaders/SkComposeShader.h>
+#include <src/shaders/SkEmptyShader.h>
 #include <src/shaders/SkImageShader.h>
 #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>
 #include <src/shaders/gradients/SkLinearGradient.h>
+#include <src/shaders/gradients/SkRadialGradient.h>
+#include <src/shaders/gradients/SkSweepGradient.h>
+#include <src/shaders/gradients/SkTwoPointConicalGradient.h>
 #include <src/text/gpu/StrikeCache.h>
 #include <src/utils/SkBlitterTrace.h>
 #include <src/utils/SkCanvasStack.h>
@@ -563,6 +604,7 @@
 #include <src/utils/SkPolyUtils.h>
 #include <src/utils/SkShaderUtils.h>
 #include <src/utils/SkShadowTessellator.h>
+#include <src/utils/SkShaperJSONWriter.h>
 #include <src/utils/SkTestCanvas.h>
 #include <src/utils/SkUTF.h>
 #include <src/utils/SkVMVisualizer.h>
diff --git a/external/skia/make-api-visible.patch.1 
b/external/skia/make-api-visible.patch.1
index 30eefa1860bf..a90bd99431c7 100644
--- a/external/skia/make-api-visible.patch.1
+++ b/external/skia/make-api-visible.patch.1
@@ -28,7 +28,7 @@ diff --git a/tools/sk_app/unix/WindowContextFactory_unix.h 
b/tools/sk_app/unix/W
 index 11bd2d2ac2..09c92dc417 100644
 --- a/tools/sk_app/unix/WindowContextFactory_unix.h
 +++ b/tools/sk_app/unix/WindowContextFactory_unix.h
-@@ -36,20 +36,20 @@ struct XlibWindowInfo {
+@@ -36,15 +36,15 @@ struct XlibWindowInfo {
      int          fHeight;
  };
  
@@ -43,11 +43,6 @@ index 11bd2d2ac2..09c92dc417 100644
 +SK_API std::unique_ptr<WindowContext> MakeDawnVulkanForXlib(const 
XlibWindowInfo&, const DisplayParams&);
  #endif
  
- #if defined(SK_DAWN) && defined(SK_GRAPHITE_ENABLED)
- std::unique_ptr<WindowContext> MakeGraphiteDawnVulkanForXlib(const 
XlibWindowInfo&,
-                                                              const 
DisplayParams&);
- #endif
- 
 -std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const 
DisplayParams&);
 +SK_API std::unique_ptr<WindowContext> MakeRasterForXlib(const 
XlibWindowInfo&, const DisplayParams&);
  
@@ -57,16 +52,7 @@ diff --git a/tools/sk_app/win/WindowContextFactory_win.h 
b/tools/sk_app/win/Wind
 index c05a4f0acf..fc27cd2afb 100644
 --- a/tools/sk_app/win/WindowContextFactory_win.h
 +++ b/tools/sk_app/win/WindowContextFactory_win.h
-@@ -13,31 +13,33 @@ struct DisplayParams;
- 
- #include <memory>
- 
-+#include "include/core/SkTypes.h"
-+
- namespace sk_app {
- 
- class WindowContext;
- struct DisplayParams;
+@@ -20,21 +20,21 @@ struct DisplayParams;
  
  namespace window_context_factory {
  
@@ -87,9 +73,6 @@ index c05a4f0acf..fc27cd2afb 100644
  #ifdef SK_DAWN
 -std::unique_ptr<WindowContext> MakeDawnD3D12ForWin(HWND, const 
DisplayParams&);
 +SK_API std::unique_ptr<WindowContext> MakeDawnD3D12ForWin(HWND, const 
DisplayParams&);
- #ifdef SK_GRAPHITE_ENABLED
- std::unique_ptr<WindowContext> MakeGraphiteDawnD3D12ForWin(HWND, const 
DisplayParams&);
- #endif
  #endif
  
 -std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&);
diff --git a/external/skia/missing-include.patch.0 
b/external/skia/missing-include.patch.0
new file mode 100644
index 000000000000..5d1d0609b989
--- /dev/null
+++ b/external/skia/missing-include.patch.0
@@ -0,0 +1,20 @@
+--- src/core/SkShaderCodeDictionary.h
++++ src/core/SkShaderCodeDictionary.h
+@@ -9,6 +9,7 @@
+ #define SkShaderCodeDictionary_DEFINED
+ 
+ #include <array>
++#include <string>
+ #include <unordered_map>
+ #include <vector>
+ #include "include/core/SkSpan.h"
+--- third_party/vulkanmemoryallocator/include/vk_mem_alloc.h
++++ third_party/vulkanmemoryallocator/include/vk_mem_alloc.h
+@@ -2570,6 +2570,7 @@
+ #include <cstring>
+ #include <utility>
+ #include <type_traits>
++#include <stdio.h>
+ 
+ #ifdef _MSC_VER
+     #include <intrin.h> // For functions like __popcnt, _BitScanForward etc.
diff --git a/external/skia/share-grcontext.patch.1 
b/external/skia/share-grcontext.patch.1
index c2f132047971..2a957c284358 100644
--- a/external/skia/share-grcontext.patch.1
+++ b/external/skia/share-grcontext.patch.1
@@ -278,7 +278,7 @@ index c9db528ca4..634034da5a 100644
      PFN_vkGetInstanceProcAddr getInstanceProc = fGetInstanceProcAddr;
 -    GrVkBackendContext backendContext;
 +    GrVkBackendContext& backendContext = fGlobalShared->backendContext;
-     skgpu::VulkanExtensions extensions;
+     GrVkExtensions extensions;
 -    VkPhysicalDeviceFeatures2 features;
 -    if (!sk_gpu_test::CreateVkBackendContext(getInstanceProc, 
&backendContext, &extensions,
 -                                             &features, &fDebugCallback, 
&fPresentQueueIndex,
@@ -327,10 +327,10 @@ index c9db528ca4..634034da5a 100644
 +    localGetPhysicalDeviceProperties(backendContext.fPhysicalDevice, 
&d->physDeviceProperties);
 +    uint32_t physDevVersion = d->physDeviceProperties.apiVersion;
  
--    fInterface.reset(new skgpu::VulkanInterface(backendContext.fGetProc, 
fInstance, fDevice,
-+    d->fInterface.reset(new skgpu::VulkanInterface(backendContext.fGetProc, 
d->fInstance, d->fDevice,
-                                                 
backendContext.fInstanceVersion, physDevVersion,
-                                                 &extensions));
+-    fInterface.reset(new GrVkInterface(backendContext.fGetProc, fInstance, 
fDevice,
++    d->fInterface.reset(new GrVkInterface(backendContext.fGetProc, 
d->fInstance, d->fDevice,
+                                        backendContext.fInstanceVersion, 
physDevVersion,
+                                        &extensions));
  
 -    GET_PROC(DestroyInstance);
 -    if (fDebugCallback != VK_NULL_HANDLE) {
@@ -650,8 +650,8 @@ index c9db528ca4..634034da5a 100644
      GrFlushInfo info;
      info.fNumSemaphores = 1;
      info.fSignalSemaphores = &beSemaphore;
--    skgpu::MutableTextureState presentState(VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, 
fPresentQueueIndex);
-+    skgpu::MutableTextureState presentState(VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, 
fShared->fPresentQueueIndex);
+-    GrBackendSurfaceMutableState 
presentState(VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, fPresentQueueIndex);
++    GrBackendSurfaceMutableState 
presentState(VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, fShared->fPresentQueueIndex);
      surface->flush(info, &presentState);
      surface->recordingContext()->asDirectContext()->submit();
  
@@ -666,7 +666,7 @@ diff --git a/tools/sk_app/VulkanWindowContext.h 
b/tools/sk_app/VulkanWindowConte
 index 7e1fdd9af5..946bca7522 100644
 --- a/tools/sk_app/VulkanWindowContext.h
 +++ b/tools/sk_app/VulkanWindowContext.h
-@@ -19,20 +19,24 @@
+@@ -19,18 +19,22 @@
  #include "tools/gpu/vk/VkTestUtils.h"
  #include "tools/sk_app/WindowContext.h"
  
@@ -674,8 +674,6 @@ index 7e1fdd9af5..946bca7522 100644
 +
  class GrRenderTarget;
  
- namespace skgpu { struct VulkanInterface; }
- 
  namespace sk_app {
  
 -class VulkanWindowContext : public WindowContext {
@@ -744,7 +742,7 @@ index 7e1fdd9af5..946bca7522 100644
 +    VkDevice fDevice = VK_NULL_HANDLE;
 +    VkDebugReportCallbackEXT fDebugCallback = VK_NULL_HANDLE;
 +
-     sk_sp<const skgpu::VulkanInterface> fInterface;
+     sk_sp<const GrVkInterface> fInterface;
  
 -    VkSurfaceKHR      fSurface;
 -    VkSwapchainKHR    fSwapchain;
diff --git a/external/skia/tdf148624.patch.1 b/external/skia/tdf148624.patch.1
new file mode 100644
index 000000000000..c42beca22903
--- /dev/null
+++ b/external/skia/tdf148624.patch.1
@@ -0,0 +1,60 @@
+commit b2cecde549c76cbd1c8b7d0cee2c6799936c1e7a
+Author: Greg Daniel <egdan...@google.com>
+Date:   Thu Jun 16 11:29:08 2022 -0400
+
+    Fix not using texture barrier on StrokeTessOp.
+    
+    Previously we were overwriting the renderpassXferBarriers flag on
+    ProgramInfo to set it to kNone. This flag is meant to say whether or not
+    the entire render pass uses barriers or not. This is needed in Vulkan
+    because all pipelines in a render pass that has an input attachment
+    must bind the input attachment regardless if it is used or not. So the
+    pipeline must be created with a layout for an input attachment
+    descriptor set.
+    
+    This change just removes to performance optimization to only use the
+    barrier on the stencil and not fill draw. This use case shouldn't
+    come up too often and also shouldn't be a big perf hit regardless.
+    The way GrAppliedClip is created/used it is hard for us to create
+    multiple different Pipeline objects: one for stencil and one for the
+    fill.
+    
+    Bug: skia:13402
+    Change-Id: I15ce74b4d41b90d3dd4169a1f4fb77ed87c8b26d
+    Reviewed-on: https://skia-review.googlesource.com/c/skia/+/549898
+    Reviewed-by: Michael Ludwig <michaellud...@google.com>
+    Commit-Queue: Greg Daniel <egdan...@google.com>
+
+diff --git a/src/gpu/ganesh/ops/StrokeTessellateOp.cpp 
b/src/gpu/ganesh/ops/StrokeTessellateOp.cpp
+index 8f47441eb9..de8153cd0f 100644
+--- a/src/gpu/ganesh/ops/StrokeTessellateOp.cpp
++++ b/src/gpu/ganesh/ops/StrokeTessellateOp.cpp
+@@ -179,7 +179,12 @@ void 
StrokeTessellateOp::prePrepareTessellator(GrTessellationShader::ProgramArgs
+         fStencilProgram = GrTessellationShader::MakeProgram(args, 
fTessellationShader, pipeline,
+                                                             &kMarkStencil);
+         fillStencil = &kTestAndResetStencil;
+-        args.fXferBarrierFlags = GrXferBarrierFlags::kNone;
++        // TODO: Currently if we have a texture barrier for a dst read it 
will get put in before
++        // both the stencil draw and the fill draw. In reality we only really 
need the barrier
++        // once to guard the reads of the color buffer in the fill from the 
previous writes. Maybe
++        // we can investigate how to remove one of these barriers but it is 
probably not something
++        // that is required a lot and thus the extra barrier shouldn't be too 
much of a perf hit to
++        // general Skia use.
+     }
+ 
+     fFillProgram = GrTessellationShader::MakeProgram(args, 
fTessellationShader, pipeline,
+diff --git a/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp 
b/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp
+index 54bc7f857a..0d61b8c4cb 100644
+--- a/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp
++++ b/src/gpu/ganesh/vk/GrVkPipelineStateBuilder.cpp
+@@ -279,6 +279,10 @@ GrVkPipelineState* 
GrVkPipelineStateBuilder::finalize(const GrProgramDesc& desc,
+         }
+     }
+ 
++    // The vulkan spec says that if a subpass has an input attachment, then 
the input attachment
++    // descriptor set must be bound to all pipelines in that subpass. This 
includes pipelines that
++    // don't actually use the input attachment. Thus we look at the 
renderPassBarriers and not just
++    // the DstProxyView barrier flags to determine if we use the input 
attachment.
+     bool usesInput = SkToBool(fProgramInfo.renderPassBarriers() & 
GrXferBarrierFlags::kTexture);
+     uint32_t layoutCount =
+         usesInput ? GrVkUniformHandler::kDescSetCount : 
(GrVkUniformHandler::kDescSetCount - 1);
diff --git a/vcl/skia/SkiaHelper.cxx b/vcl/skia/SkiaHelper.cxx
index d307ad7d089e..02ded1c84d32 100644
--- a/vcl/skia/SkiaHelper.cxx
+++ b/vcl/skia/SkiaHelper.cxx
@@ -748,7 +748,7 @@ void setBlenderXor(SkPaint* paint)
         // Skia does not allow binary operators in the default ES2Strict mode, 
but that's only
         // because of OpenGL support. We don't use OpenGL, and it's safe for 
all modes that we do use.
         // 
https://groups.google.com/g/skia-discuss/c/EPLuQbg64Kc/m/2uDXFIGhAwAJ
-        opts.maxVersionAllowed = SkSL::Version::k300;
+        opts.enforceES2Restrictions = false;
         auto effect = SkRuntimeEffect::MakeForBlender(SkString(diff), opts);
         if (!effect.effect)
         {
diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index 6fb496c086b0..15d901d93ff2 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -34,7 +34,6 @@
 #include <SkGradientShader.h>
 #include <SkPath.h>
 #include <SkRegion.h>
-#include <SkPathEffect.h>
 #include <SkDashPathEffect.h>
 #include <GrBackendSurface.h>
 #include <SkTextBlob.h>

Reply via email to