download.lst                                     |    4 
 external/skia/Library_skia.mk                    |  556 
 external/skia/UnpackedTarball_skia.mk            |    6 
 external/skia/allow-no-es2restrictions.patch.1   |    8 
 external/skia/disable-freetype-colrv1.1          |   24 
 external/skia/fix-graphite-ifdef.patch.1         |   43 
 external/skia/fix-pch.patch.1                    |   79 
 external/skia/fix-without-gl.patch.1             |   26 
 external/skia/inc/pch/precompiled_skia.hxx       |  150 
 external/skia/libvulkan-name.patch.1             |   13 
 external/skia/missing-include.patch.0            |   10 
 external/skia/no-trace-resources-on-exit.patch.1 |    4 
 external/skia/share-grcontext.patch.1            |   96 
 external/skia/source/skia_opts.cxx               |    2 
 external/skia/ubsan.patch.1                      |   20 
 external/skia/vk_mem_alloc.patch.1               |19639 +++++++++++++++++++++++
 vcl/skia/SkiaHelper.cxx                          |    2 
 vcl/skia/gdiimpl.cxx                             |    1 
 vcl/skia/osx/gdiimpl.cxx                         |    1 
 19 files changed, 20183 insertions(+), 501 deletions(-)

New commits:
commit 9f5e5ea0011a8f04fbfc242a199630ab1fbf8c0d
Author:     Luboš Luňák <l.lu...@collabora.com>
AuthorDate: Fri May 20 16:25:34 2022 +0200
Commit:     Luboš Luňák <l.lu...@collabora.com>
CommitDate: Sat May 21 10:56:27 2022 +0200

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

diff --git a/download.lst b/download.lst
index be1eaa463570..266ae5b2edcd 100644
--- a/download.lst
+++ b/download.lst
@@ -231,8 +231,8 @@ export REVENGE_VERSION_MICRO := 4
 export REVENGE_TARBALL := librevenge-0.0.$(REVENGE_VERSION_MICRO).tar.bz2
 export RHINO_SHA256SUM := 
1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753
 export RHINO_TARBALL := 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
-export SKIA_SHA256SUM := 
97e859e8467eca9d2441cd23079b61c2c3863b5687620f18cc31a9f966740177
-export SKIA_TARBALL := skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz
+export SKIA_SHA256SUM := 
c094a6247e44104beaaa0d00c825beb6baf1a8e532dc22214747495317a65bd9
+export SKIA_TARBALL := 
skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.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 d3c3dd2cae7c..14c59c99c41e 100644
--- a/external/skia/Library_skia.mk
+++ b/external/skia/Library_skia.mk
@@ -176,6 +176,7 @@ $(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/SkChromeRemoteGlyphCache \
     UnpackedTarball/skia/src/core/SkClipStack \
     UnpackedTarball/skia/src/core/SkClipStackDevice \
     UnpackedTarball/skia/src/core/SkColor \
@@ -232,12 +233,13 @@ $(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 \
     UnpackedTarball/skia/src/core/SkMalloc \
     UnpackedTarball/skia/src/core/SkMallocPixelRef \
-    UnpackedTarball/skia/src/core/SkMarkerStack \
     UnpackedTarball/skia/src/core/SkMaskBlurFilter \
     UnpackedTarball/skia/src/core/SkMaskCache \
     UnpackedTarball/skia/src/core/SkMask \
@@ -249,6 +251,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     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 \
@@ -257,6 +260,7 @@ $(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 \
@@ -264,6 +268,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkPathMeasure \
     UnpackedTarball/skia/src/core/SkPathRef \
     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 \
@@ -291,7 +296,6 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/core/SkRect \
     UnpackedTarball/skia/src/core/SkRegion \
     UnpackedTarball/skia/src/core/SkRegion_path \
-    UnpackedTarball/skia/src/core/SkRemoteGlyphCache \
     UnpackedTarball/skia/src/core/SkResourceCache \
     UnpackedTarball/skia/src/core/SkRRect \
     UnpackedTarball/skia/src/core/SkRTree \
@@ -306,6 +310,7 @@ $(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/SkSpecialImage \
     UnpackedTarball/skia/src/core/SkSpecialSurface \
@@ -318,7 +323,6 @@ $(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 \
@@ -480,6 +484,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/ir/SkSLConstructorSplat \
     UnpackedTarball/skia/src/sksl/ir/SkSLConstructorStruct \
     UnpackedTarball/skia/src/sksl/ir/SkSLDoStatement \
+    UnpackedTarball/skia/src/sksl/ir/SkSLExpression \
     UnpackedTarball/skia/src/sksl/ir/SkSLExpressionStatement \
     UnpackedTarball/skia/src/sksl/ir/SkSLFieldAccess \
     UnpackedTarball/skia/src/sksl/ir/SkSLForStatement \
@@ -502,6 +507,7 @@ $(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 \
@@ -510,21 +516,24 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/SkSLDehydrator \
     UnpackedTarball/skia/src/sksl/SkSLErrorReporter \
     UnpackedTarball/skia/src/sksl/SkSLInliner \
-    UnpackedTarball/skia/src/sksl/SkSLIntrinsicMap \
     UnpackedTarball/skia/src/sksl/SkSLLexer \
     UnpackedTarball/skia/src/sksl/SkSLMangler \
-    UnpackedTarball/skia/src/sksl/SkSLOperators \
+    UnpackedTarball/skia/src/sksl/SkSLOperator \
     UnpackedTarball/skia/src/sksl/SkSLOutputStream \
     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 \
     UnpackedTarball/skia/src/sksl/analysis/SkSLCanExitWithoutReturningValue \
-    UnpackedTarball/skia/src/sksl/analysis/SkSLCheckProgramUnrolledSize \
+    UnpackedTarball/skia/src/sksl/analysis/SkSLCheckProgramStructure \
+    UnpackedTarball/skia/src/sksl/analysis/SkSLFinalizationChecks \
     UnpackedTarball/skia/src/sksl/analysis/SkSLGetLoopUnrollInfo \
     UnpackedTarball/skia/src/sksl/analysis/SkSLIsConstantExpression \
+    UnpackedTarball/skia/src/sksl/analysis/SkSLIsSameExpressionTree \
     UnpackedTarball/skia/src/sksl/analysis/SkSLProgramUsage \
     UnpackedTarball/skia/src/sksl/analysis/SkSLSwitchCaseContainsExit \
     UnpackedTarball/skia/src/sksl/codegen/SkSLGLSLCodeGenerator \
@@ -533,6 +542,8 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/sksl/codegen/SkSLSPIRVCodeGenerator \
     UnpackedTarball/skia/src/sksl/codegen/SkSLSPIRVtoHLSL \
     UnpackedTarball/skia/src/sksl/codegen/SkSLVMCodeGenerator \
+    UnpackedTarball/skia/src/sksl/codegen/SkSLWGSLCodeGenerator \
+    UnpackedTarball/skia/src/sksl/tracing/SkVMDebugTrace \
     UnpackedTarball/skia/src/sksl/transform/SkSLBuiltinVariableScanner \
     UnpackedTarball/skia/src/sksl/transform/SkSLEliminateDeadFunctions \
     UnpackedTarball/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables \
@@ -562,6 +573,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     UnpackedTarball/skia/src/utils/SkParsePath \
     UnpackedTarball/skia/src/utils/SkPatchUtils \
     UnpackedTarball/skia/src/utils/SkPolyUtils \
+    UnpackedTarball/skia/src/utils/SkShaderUtils \
     UnpackedTarball/skia/src/utils/SkShadowTessellator \
     UnpackedTarball/skia/src/utils/SkShadowUtils \
     UnpackedTarball/skia/src/utils/SkShaperJSONWriter \
@@ -569,6 +581,7 @@ $(eval $(call 
gb_Library_add_generated_exception_objects,skia,\
     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 \
     UnpackedTarball/skia/src/xps/SkXPSDocument \
 ))
@@ -576,261 +589,262 @@ $(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/effects/GrBezierEffect \
-    UnpackedTarball/skia/src/gpu/effects/GrBicubicEffect \
-    UnpackedTarball/skia/src/gpu/effects/GrBitmapTextGeoProc \
-    UnpackedTarball/skia/src/gpu/effects/GrBlendFragmentProcessor \
-    UnpackedTarball/skia/src/gpu/effects/GrConvexPolyEffect \
-    UnpackedTarball/skia/src/gpu/effects/GrCoverageSetOpXP \
-    UnpackedTarball/skia/src/gpu/effects/GrCustomXfermode \
-    UnpackedTarball/skia/src/gpu/effects/GrDisableColorXP \
-    UnpackedTarball/skia/src/gpu/effects/GrDistanceFieldGeoProc \
-    
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 \
-    UnpackedTarball/skia/src/gpu/effects/GrShadowGeoProc \
-    UnpackedTarball/skia/src/gpu/effects/GrSkSLFP \
-    UnpackedTarball/skia/src/gpu/effects/GrTextureEffect \
-    UnpackedTarball/skia/src/gpu/effects/GrYUVtoRGBEffect \
-    UnpackedTarball/skia/src/gpu/geometry/GrPathUtils \
-    UnpackedTarball/skia/src/gpu/geometry/GrQuad \
-    UnpackedTarball/skia/src/gpu/geometry/GrQuadUtils \
-    UnpackedTarball/skia/src/gpu/geometry/GrShape \
-    UnpackedTarball/skia/src/gpu/geometry/GrStyledShape \
-    UnpackedTarball/skia/src/gpu/glsl/GrGLSLBlend \
-    UnpackedTarball/skia/src/gpu/glsl/GrGLSL \
-    UnpackedTarball/skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder \
-    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/gradients/GrGradientBitmapCache \
-    UnpackedTarball/skia/src/gpu/gradients/GrGradientShader \
-    UnpackedTarball/skia/src/gpu/GrAHardwareBufferImageGenerator \
-    UnpackedTarball/skia/src/gpu/GrAHardwareBufferUtils \
-    UnpackedTarball/skia/src/gpu/GrAttachment \
-    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/GrBufferAllocPool \
-    UnpackedTarball/skia/src/gpu/GrCaps \
-    UnpackedTarball/skia/src/gpu/GrClientMappedBufferManager \
-    UnpackedTarball/skia/src/gpu/GrColorInfo \
-    UnpackedTarball/skia/src/gpu/GrColorSpaceXform \
-    UnpackedTarball/skia/src/gpu/GrContext_Base \
-    UnpackedTarball/skia/src/gpu/GrContextThreadSafeProxy \
-    UnpackedTarball/skia/src/gpu/GrCopyRenderTask \
-    UnpackedTarball/skia/src/gpu/GrDataUtils \
-    UnpackedTarball/skia/src/gpu/GrDDLContext \
-    UnpackedTarball/skia/src/gpu/GrDDLTask \
-    UnpackedTarball/skia/src/gpu/GrDefaultGeoProcFactory \
-    UnpackedTarball/skia/src/gpu/GrDirectContext \
-    UnpackedTarball/skia/src/gpu/GrDirectContextPriv \
-    UnpackedTarball/skia/src/gpu/GrDistanceFieldGenFromVector \
-    UnpackedTarball/skia/src/gpu/GrDrawingManager \
-    UnpackedTarball/skia/src/gpu/GrDrawOpAtlas \
-    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/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/GrPaint \
-    UnpackedTarball/skia/src/gpu/GrPersistentCacheUtils \
-    UnpackedTarball/skia/src/gpu/GrPipeline \
-    UnpackedTarball/skia/src/gpu/GrProcessorAnalysis \
-    UnpackedTarball/skia/src/gpu/GrProcessor \
-    UnpackedTarball/skia/src/gpu/GrProcessorSet \
-    UnpackedTarball/skia/src/gpu/GrProcessorUnitTest \
-    UnpackedTarball/skia/src/gpu/GrProgramDesc \
-    UnpackedTarball/skia/src/gpu/GrProgramInfo \
-    UnpackedTarball/skia/src/gpu/GrProxyProvider \
-    UnpackedTarball/skia/src/gpu/GrRecordingContext \
-    UnpackedTarball/skia/src/gpu/GrRecordingContextPriv \
-    UnpackedTarball/skia/src/gpu/GrRectanizerPow2 \
-    UnpackedTarball/skia/src/gpu/GrRectanizerSkyline \
-    UnpackedTarball/skia/src/gpu/GrRenderTask \
-    UnpackedTarball/skia/src/gpu/GrRenderTaskCluster \
-    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/GrShaderCaps \
-    UnpackedTarball/skia/src/gpu/GrShaderUtils \
-    UnpackedTarball/skia/src/gpu/GrShaderVar \
-    UnpackedTarball/skia/src/gpu/GrSPIRVUniformHandler \
-    UnpackedTarball/skia/src/gpu/GrSPIRVVaryingHandler \
-    UnpackedTarball/skia/src/gpu/GrStagingBufferManager \
-    UnpackedTarball/skia/src/gpu/GrStencilSettings \
-    UnpackedTarball/skia/src/gpu/GrStyle \
-    UnpackedTarball/skia/src/gpu/GrSubRunAllocator \
-    UnpackedTarball/skia/src/gpu/GrSurface \
-    UnpackedTarball/skia/src/gpu/GrSurfaceInfo \
-    UnpackedTarball/skia/src/gpu/GrSurfaceProxy \
-    UnpackedTarball/skia/src/gpu/GrSwizzle \
-    UnpackedTarball/skia/src/gpu/GrSWMaskHelper \
-    UnpackedTarball/skia/src/gpu/GrTestUtils \
-    UnpackedTarball/skia/src/gpu/GrUniformDataManager \
-    UnpackedTarball/skia/src/gpu/GrTexture \
-    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 \
-    UnpackedTarball/skia/src/gpu/GrYUVABackendTextures \
-    UnpackedTarball/skia/src/gpu/GrYUVATextureProxies \
-    UnpackedTarball/skia/src/gpu/geometry/GrAAConvexTessellator \
-    UnpackedTarball/skia/src/gpu/geometry/GrAATriangulator \
-    UnpackedTarball/skia/src/gpu/geometry/GrTriangulator \
-    UnpackedTarball/skia/src/gpu/mock/GrMockCaps \
-    UnpackedTarball/skia/src/gpu/mock/GrMockGpu \
-    UnpackedTarball/skia/src/gpu/mock/GrMockTypes \
-    UnpackedTarball/skia/src/gpu/BaseDevice \
-    UnpackedTarball/skia/src/gpu/SkGr \
-    UnpackedTarball/skia/src/gpu/SurfaceContext \
-    UnpackedTarball/skia/src/gpu/SurfaceFillContext \
-    UnpackedTarball/skia/src/gpu/tessellate/PathCurveTessellator \
-    UnpackedTarball/skia/src/gpu/tessellate/PathWedgeTessellator \
-    UnpackedTarball/skia/src/gpu/tessellate/StrokeFixedCountTessellator \
-    UnpackedTarball/skia/src/gpu/tessellate/StrokeHardwareTessellator \
+    UnpackedTarball/skia/src/gpu/AtlasTypes \
+    UnpackedTarball/skia/src/gpu/Blend \
+    UnpackedTarball/skia/src/gpu/RectanizerPow2 \
+    UnpackedTarball/skia/src/gpu/RectanizerSkyline \
+    UnpackedTarball/skia/src/gpu/ResourceKey \
+    UnpackedTarball/skia/src/gpu/ShaderErrorHandler \
+    UnpackedTarball/skia/src/gpu/Swizzle \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrBezierEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrBicubicEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrBitmapTextGeoProc \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrBlendFragmentProcessor \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrConvexPolyEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrCoverageSetOpXP \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrCustomXfermode \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrDisableColorXP \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrDistanceFieldGeoProc \
+    
UnpackedTarball/skia/src/gpu/ganesh/effects/GrGaussianConvolutionFragmentProcessor
 \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrMatrixConvolutionEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrMatrixEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrModulateAtlasCoverageEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrOvalEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrPorterDuffXferProcessor \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrRRectEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrShadowGeoProc \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrSkSLFP \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrTextureEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/effects/GrYUVtoRGBEffect \
+    UnpackedTarball/skia/src/gpu/ganesh/geometry/GrPathUtils \
+    UnpackedTarball/skia/src/gpu/ganesh/geometry/GrQuad \
+    UnpackedTarball/skia/src/gpu/ganesh/geometry/GrQuadUtils \
+    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 \
+    UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSLShaderBuilder \
+    UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSLUniformHandler \
+    UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSLVarying \
+    UnpackedTarball/skia/src/gpu/ganesh/glsl/GrGLSLVertexGeoBuilder \
+    UnpackedTarball/skia/src/gpu/ganesh/gradients/GrGradientBitmapCache \
+    UnpackedTarball/skia/src/gpu/ganesh/gradients/GrGradientShader \
+    UnpackedTarball/skia/src/gpu/ganesh/GrAHardwareBufferImageGenerator \
+    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 \
+    UnpackedTarball/skia/src/gpu/ganesh/GrBufferAllocPool \
+    UnpackedTarball/skia/src/gpu/ganesh/GrCaps \
+    UnpackedTarball/skia/src/gpu/ganesh/GrClientMappedBufferManager \
+    UnpackedTarball/skia/src/gpu/ganesh/GrColorInfo \
+    UnpackedTarball/skia/src/gpu/ganesh/GrColorSpaceXform \
+    UnpackedTarball/skia/src/gpu/ganesh/GrContext_Base \
+    UnpackedTarball/skia/src/gpu/ganesh/GrContextThreadSafeProxy \
+    UnpackedTarball/skia/src/gpu/ganesh/GrCopyRenderTask \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDataUtils \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDDLContext \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDDLTask \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDefaultGeoProcFactory \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDirectContext \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDirectContextPriv \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDistanceFieldGenFromVector \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDrawingManager \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDrawOpAtlas \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDriverBugWorkarounds \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDynamicAtlas \
+    UnpackedTarball/skia/src/gpu/ganesh/GrEagerVertexAllocator \
+    UnpackedTarball/skia/src/gpu/ganesh/GrFinishCallbacks \
+    UnpackedTarball/skia/src/gpu/ganesh/GrFixedClip \
+    UnpackedTarball/skia/src/gpu/ganesh/GrFragmentProcessor \
+    UnpackedTarball/skia/src/gpu/ganesh/GrGeometryProcessor \
+    UnpackedTarball/skia/src/gpu/ganesh/GrGpu \
+    UnpackedTarball/skia/src/gpu/ganesh/GrGpuBuffer \
+    UnpackedTarball/skia/src/gpu/ganesh/GrGpuResource \
+    UnpackedTarball/skia/src/gpu/ganesh/GrImageContext \
+    UnpackedTarball/skia/src/gpu/ganesh/GrImageInfo \
+    UnpackedTarball/skia/src/gpu/ganesh/GrManagedResource \
+    UnpackedTarball/skia/src/gpu/ganesh/GrMemoryPool \
+    UnpackedTarball/skia/src/gpu/ganesh/GrMeshDrawTarget \
+    UnpackedTarball/skia/src/gpu/ganesh/GrOnFlushResourceProvider \
+    UnpackedTarball/skia/src/gpu/ganesh/GrOpFlushState \
+    UnpackedTarball/skia/src/gpu/ganesh/GrOpsRenderPass \
+    UnpackedTarball/skia/src/gpu/ganesh/GrPaint \
+    UnpackedTarball/skia/src/gpu/ganesh/GrPersistentCacheUtils \
+    UnpackedTarball/skia/src/gpu/ganesh/GrPipeline \
+    UnpackedTarball/skia/src/gpu/ganesh/GrProcessorAnalysis \
+    UnpackedTarball/skia/src/gpu/ganesh/GrProcessor \
+    UnpackedTarball/skia/src/gpu/ganesh/GrProcessorSet \
+    UnpackedTarball/skia/src/gpu/ganesh/GrProcessorUnitTest \
+    UnpackedTarball/skia/src/gpu/ganesh/GrProgramDesc \
+    UnpackedTarball/skia/src/gpu/ganesh/GrProgramInfo \
+    UnpackedTarball/skia/src/gpu/ganesh/GrProxyProvider \
+    UnpackedTarball/skia/src/gpu/ganesh/GrRecordingContext \
+    UnpackedTarball/skia/src/gpu/ganesh/GrRecordingContextPriv \
+    UnpackedTarball/skia/src/gpu/ganesh/GrRenderTask \
+    UnpackedTarball/skia/src/gpu/ganesh/GrRenderTaskCluster \
+    UnpackedTarball/skia/src/gpu/ganesh/GrRenderTarget \
+    UnpackedTarball/skia/src/gpu/ganesh/GrRenderTargetProxy \
+    UnpackedTarball/skia/src/gpu/ganesh/GrResourceAllocator \
+    UnpackedTarball/skia/src/gpu/ganesh/GrResourceCache \
+    UnpackedTarball/skia/src/gpu/ganesh/GrResourceProvider \
+    UnpackedTarball/skia/src/gpu/ganesh/GrRingBuffer \
+    UnpackedTarball/skia/src/gpu/ganesh/GrShaderCaps \
+    UnpackedTarball/skia/src/gpu/ganesh/GrShaderVar \
+    UnpackedTarball/skia/src/gpu/ganesh/GrSPIRVUniformHandler \
+    UnpackedTarball/skia/src/gpu/ganesh/GrSPIRVVaryingHandler \
+    UnpackedTarball/skia/src/gpu/ganesh/GrStagingBufferManager \
+    UnpackedTarball/skia/src/gpu/ganesh/GrStencilSettings \
+    UnpackedTarball/skia/src/gpu/ganesh/GrStyle \
+    UnpackedTarball/skia/src/gpu/ganesh/GrSurface \
+    UnpackedTarball/skia/src/gpu/ganesh/GrSurfaceInfo \
+    UnpackedTarball/skia/src/gpu/ganesh/GrSurfaceProxy \
+    UnpackedTarball/skia/src/gpu/ganesh/GrSWMaskHelper \
+    UnpackedTarball/skia/src/gpu/ganesh/GrTestUtils \
+    UnpackedTarball/skia/src/gpu/ganesh/GrUniformDataManager \
+    UnpackedTarball/skia/src/gpu/ganesh/GrTexture \
+    UnpackedTarball/skia/src/gpu/ganesh/GrTextureProxy \
+    UnpackedTarball/skia/src/gpu/ganesh/GrTextureRenderTargetProxy \
+    UnpackedTarball/skia/src/gpu/ganesh/GrTextureResolveRenderTask \
+    UnpackedTarball/skia/src/gpu/ganesh/GrThreadSafeCache \
+    UnpackedTarball/skia/src/gpu/ganesh/GrThreadSafePipelineBuilder \
+    UnpackedTarball/skia/src/gpu/ganesh/GrTransferFromRenderTask \
+    UnpackedTarball/skia/src/gpu/ganesh/GrUtil \
+    UnpackedTarball/skia/src/gpu/ganesh/GrVertexChunkArray \
+    UnpackedTarball/skia/src/gpu/ganesh/GrWaitRenderTask \
+    UnpackedTarball/skia/src/gpu/ganesh/GrWritePixelsRenderTask \
+    UnpackedTarball/skia/src/gpu/ganesh/GrXferProcessor \
+    UnpackedTarball/skia/src/gpu/ganesh/GrYUVABackendTextures \
+    UnpackedTarball/skia/src/gpu/ganesh/GrYUVATextureProxies \
+    UnpackedTarball/skia/src/gpu/ganesh/geometry/GrAAConvexTessellator \
+    UnpackedTarball/skia/src/gpu/ganesh/geometry/GrAATriangulator \
+    UnpackedTarball/skia/src/gpu/ganesh/geometry/GrTriangulator \
+    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 \
+    UnpackedTarball/skia/src/gpu/ganesh/tessellate/GrPathTessellationShader \
+    UnpackedTarball/skia/src/gpu/ganesh/tessellate/GrStrokeTessellationShader \
+    UnpackedTarball/skia/src/gpu/ganesh/tessellate/GrTessellationShader \
+    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/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/GrSDFTControl \
-    UnpackedTarball/skia/src/gpu/text/GrStrikeCache \
-    UnpackedTarball/skia/src/gpu/text/GrTextBlobCache \
-    UnpackedTarball/skia/src/gpu/text/GrTextBlob \
     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/gpu/GlyphVector \
+    UnpackedTarball/skia/src/text/gpu/StrikeCache \
+    UnpackedTarball/skia/src/text/gpu/SubRunAllocator \
 ))
 
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
-    UnpackedTarball/skia/src/gpu/GrAuditTrail \
-    UnpackedTarball/skia/src/gpu/GrBlurUtils \
-    UnpackedTarball/skia/src/gpu/GrDrawOpTest \
-    UnpackedTarball/skia/src/gpu/ops/AAConvexPathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/AAHairLinePathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/AALinearizingConvexPathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/AtlasInstancedHelper \
-    UnpackedTarball/skia/src/gpu/ops/AtlasPathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/AtlasRenderTask \
-    UnpackedTarball/skia/src/gpu/ops/AtlasTextOp \
-    UnpackedTarball/skia/src/gpu/ops/ClearOp \
-    UnpackedTarball/skia/src/gpu/ops/DashLinePathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/DashOp \
-    UnpackedTarball/skia/src/gpu/ops/DefaultPathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/DrawAtlasOp \
-    UnpackedTarball/skia/src/gpu/ops/DrawAtlasPathOp \
-    UnpackedTarball/skia/src/gpu/ops/DrawVerticesOp \
-    UnpackedTarball/skia/src/gpu/ops/DrawableOp \
-    UnpackedTarball/skia/src/gpu/ops/FillRRectOp \
-    UnpackedTarball/skia/src/gpu/ops/FillRectOp \
-    UnpackedTarball/skia/src/gpu/ops/GrMeshDrawOp \
-    UnpackedTarball/skia/src/gpu/ops/GrOp \
-    UnpackedTarball/skia/src/gpu/ops/GrOvalOpFactory \
-    UnpackedTarball/skia/src/gpu/ops/GrSimpleMeshDrawOpHelper \
-    UnpackedTarball/skia/src/gpu/ops/GrSimpleMeshDrawOpHelperWithStencil \
-    UnpackedTarball/skia/src/gpu/ops/LatticeOp \
-    UnpackedTarball/skia/src/gpu/ops/OpsTask \
-    UnpackedTarball/skia/src/gpu/ops/PathInnerTriangulateOp \
-    UnpackedTarball/skia/src/gpu/ops/PathStencilCoverOp \
-    UnpackedTarball/skia/src/gpu/ops/PathTessellateOp \
-    UnpackedTarball/skia/src/gpu/ops/QuadPerEdgeAA \
-    UnpackedTarball/skia/src/gpu/ops/RegionOp \
-    UnpackedTarball/skia/src/gpu/ops/ShadowRRectOp \
-    UnpackedTarball/skia/src/gpu/ops/SmallPathAtlasMgr \
-    UnpackedTarball/skia/src/gpu/ops/SmallPathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/SmallPathShapeData \
-    UnpackedTarball/skia/src/gpu/ops/SoftwarePathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/StrokeRectOp \
-    UnpackedTarball/skia/src/gpu/ops/StrokeTessellateOp \
-    UnpackedTarball/skia/src/gpu/ops/TessellationPathRenderer \
-    UnpackedTarball/skia/src/gpu/ops/TextureOp \
-    UnpackedTarball/skia/src/gpu/ops/TriangulatingPathRenderer \
-    UnpackedTarball/skia/src/gpu/v1/ClipStack \
-    UnpackedTarball/skia/src/gpu/v1/Device \
-    UnpackedTarball/skia/src/gpu/v1/Device_drawTexture \
-    UnpackedTarball/skia/src/gpu/v1/PathRenderer \
-    UnpackedTarball/skia/src/gpu/v1/PathRendererChain \
-    UnpackedTarball/skia/src/gpu/v1/StencilMaskHelper \
-    UnpackedTarball/skia/src/gpu/v1/SurfaceDrawContext \
-    UnpackedTarball/skia/src/gpu/v1/SurfaceFillContext_v1 \
+    UnpackedTarball/skia/src/gpu/ganesh/GrAuditTrail \
+    UnpackedTarball/skia/src/gpu/ganesh/GrBlurUtils \
+    UnpackedTarball/skia/src/gpu/ganesh/GrDrawOpTest \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/AAConvexPathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/AAHairLinePathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/AALinearizingConvexPathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/AtlasInstancedHelper \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/AtlasPathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/AtlasRenderTask \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/AtlasTextOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/ClearOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/DashLinePathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/DashOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/DefaultPathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/DrawAtlasOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/DrawAtlasPathOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/DrawMeshOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/DrawableOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/FillRRectOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/FillRectOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/GrMeshDrawOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/GrOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/GrOvalOpFactory \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelper \
+    
UnpackedTarball/skia/src/gpu/ganesh/ops/GrSimpleMeshDrawOpHelperWithStencil \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/LatticeOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/OpsTask \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/PathInnerTriangulateOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/PathStencilCoverOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/PathTessellateOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/QuadPerEdgeAA \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/RegionOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/ShadowRRectOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/SmallPathAtlasMgr \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/SmallPathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/SmallPathShapeData \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/SoftwarePathRenderer \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/StrokeRectOp \
+    UnpackedTarball/skia/src/gpu/ganesh/ops/StrokeTessellateOp \
+    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/vk/GrVkAMDMemoryAllocator \
-    UnpackedTarball/skia/src/gpu/vk/GrVkBuffer \
-    UnpackedTarball/skia/src/gpu/vk/GrVkCaps \
-    UnpackedTarball/skia/src/gpu/vk/GrVkCommandBuffer \
-    UnpackedTarball/skia/src/gpu/vk/GrVkCommandPool \
-    UnpackedTarball/skia/src/gpu/vk/GrVkDescriptorPool \
-    UnpackedTarball/skia/src/gpu/vk/GrVkDescriptorSet \
-    UnpackedTarball/skia/src/gpu/vk/GrVkDescriptorSetManager \
-    UnpackedTarball/skia/src/gpu/vk/GrVkExtensions \
-    UnpackedTarball/skia/src/gpu/vk/GrVkFramebuffer \
-    UnpackedTarball/skia/src/gpu/vk/GrVkGpu \
-    UnpackedTarball/skia/src/gpu/vk/GrVkImage \
-    UnpackedTarball/skia/src/gpu/vk/GrVkImageView \
-    UnpackedTarball/skia/src/gpu/vk/GrVkInterface \
-    UnpackedTarball/skia/src/gpu/vk/GrVkMSAALoadManager \
-    UnpackedTarball/skia/src/gpu/vk/GrVkMemory \
-    UnpackedTarball/skia/src/gpu/vk/GrVkOpsRenderPass \
-    UnpackedTarball/skia/src/gpu/vk/GrVkPipeline \
-    UnpackedTarball/skia/src/gpu/vk/GrVkPipelineStateBuilder \
-    UnpackedTarball/skia/src/gpu/vk/GrVkPipelineStateCache \
-    UnpackedTarball/skia/src/gpu/vk/GrVkPipelineState \
-    UnpackedTarball/skia/src/gpu/vk/GrVkPipelineStateDataManager \
-    UnpackedTarball/skia/src/gpu/vk/GrVkRenderPass \
-    UnpackedTarball/skia/src/gpu/vk/GrVkRenderTarget \
-    UnpackedTarball/skia/src/gpu/vk/GrVkResourceProvider \
-    UnpackedTarball/skia/src/gpu/vk/GrVkSampler \
-    UnpackedTarball/skia/src/gpu/vk/GrVkSamplerYcbcrConversion \
-    UnpackedTarball/skia/src/gpu/vk/GrVkSecondaryCBDrawContext \
-    UnpackedTarball/skia/src/gpu/vk/GrVkSemaphore \
-    UnpackedTarball/skia/src/gpu/vk/GrVkTexture \
-    UnpackedTarball/skia/src/gpu/vk/GrVkTextureRenderTarget \
-    UnpackedTarball/skia/src/gpu/vk/GrVkTypesPriv \
-    UnpackedTarball/skia/src/gpu/vk/GrVkUniformHandler \
-    UnpackedTarball/skia/src/gpu/vk/GrVkUtil \
-    UnpackedTarball/skia/src/gpu/vk/GrVkVaryingHandler \
+    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 \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkCommandPool \
+    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 \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkPipelineStateCache \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkPipelineState \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkPipelineStateDataManager \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkRenderPass \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkRenderTarget \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkResourceProvider \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkSampler \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkSamplerYcbcrConversion \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkSecondaryCBDrawContext \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkSemaphore \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkTexture \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkTextureRenderTarget \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkTypesPriv \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkUniformHandler \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkUtil \
+    UnpackedTarball/skia/src/gpu/ganesh/vk/GrVkVaryingHandler \
 ))
 
 $(eval $(call gb_Library_add_generated_exception_objects,skia,\
@@ -940,28 +954,28 @@ $(eval $(call 
gb_Library_add_generated_objcxxobjects,skia,\
 # Not used, uses OpenGL - 
UnpackedTarball/skia/tools/sk_app/mac/RasterWindowContext_mac
 
 $(eval $(call gb_Library_add_generated_objcxxobjects,skia,\
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlAttachment \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlBuffer \
-    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 \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlPipelineStateBuilder \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlPipelineStateDataManager \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlRenderTarget \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlResourceProvider \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlSampler \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlSemaphore \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlTexture \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlTextureRenderTarget \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlTrampoline \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlTypesPriv \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlUniformHandler \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlUtil \
-    UnpackedTarball/skia/src/gpu/mtl/GrMtlVaryingHandler \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlAttachment \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlBuffer \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlCaps \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlCommandBuffer \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlDepthStencil \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlFramebuffer \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlGpu \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlOpsRenderPass \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlPipelineState \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateBuilder \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlPipelineStateDataManager \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlRenderTarget \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlResourceProvider \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlSampler \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlSemaphore \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlTexture \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlTextureRenderTarget \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlTrampoline \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlTypesPriv \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlUniformHandler \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlUtil \
+    UnpackedTarball/skia/src/gpu/ganesh/mtl/GrMtlVaryingHandler \
     UnpackedTarball/skia/src/image/SkSurface_GpuMtl \
     , -fobjc-arc \
 ))
diff --git a/external/skia/UnpackedTarball_skia.mk 
b/external/skia/UnpackedTarball_skia.mk
index 1ee586708a39..99c70d557eee 100644
--- a/external/skia/UnpackedTarball_skia.mk
+++ b/external/skia/UnpackedTarball_skia.mk
@@ -17,7 +17,6 @@ skia_patches := \
     make-api-visible.patch.1 \
     no-trace-resources-on-exit.patch.1 \
     fix-alpha-difference-copy.patch.1 \
-    libvulkan-name.patch.1 \
     share-grcontext.patch.1 \
     clang11-flax-vector-conversion.patch.0 \
     clang-attributes-warning.patch.1 \
@@ -30,15 +29,14 @@ skia_patches := \
     windows-raster-surface-no-copies.patch.1 \
     fix-windows-dwrite.patch.1 \
     swap-buffers-rect.patch.1 \
-    ubsan.patch.0 \
+    ubsan.patch.1 \
     fast-png-write.patch.1 \
     skia_sk_cpu_sse_level_0_by_default.patch.1 \
     fix-warnings.patch.1 \
-    disable-freetype-colrv1.1 \
     windows-libraries-system32.patch.1 \
     fix-graphite-ifdef.patch.1 \
     allow-no-es2restrictions.patch.1 \
-    missing-include.patch.0 \
+    vk_mem_alloc.patch.1 \
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
 
diff --git a/external/skia/allow-no-es2restrictions.patch.1 
b/external/skia/allow-no-es2restrictions.patch.1
index 0195ad3d2ac8..ea2dd02191f6 100644
--- a/external/skia/allow-no-es2restrictions.patch.1
+++ b/external/skia/allow-no-es2restrictions.patch.1
@@ -1,10 +1,10 @@
 diff --git a/include/effects/SkRuntimeEffect.h 
b/include/effects/SkRuntimeEffect.h
-index b3f21b1d58..dddc8d16dc 100644
+index e424910b34..cee7794d3a 100644
 --- a/include/effects/SkRuntimeEffect.h
 +++ b/include/effects/SkRuntimeEffect.h
-@@ -97,7 +97,7 @@ public:
-         // run the inliner directly, but they still get an inlining pass once 
they are painted.)
-         bool forceNoInline = false;
+@@ -108,7 +108,7 @@ public:
+         // painted.)
+         bool forceUnoptimized = false;
  
 -    private:
 +//    private:
diff --git a/external/skia/disable-freetype-colrv1.1 
b/external/skia/disable-freetype-colrv1.1
deleted file mode 100644
index 2d24e42ad38a..000000000000
--- a/external/skia/disable-freetype-colrv1.1
+++ /dev/null
@@ -1,24 +0,0 @@
-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-graphite-ifdef.patch.1 
b/external/skia/fix-graphite-ifdef.patch.1
index 594341bb25c9..4ed2ff2527b4 100644
--- a/external/skia/fix-graphite-ifdef.patch.1
+++ b/external/skia/fix-graphite-ifdef.patch.1
@@ -1,13 +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 79f6d72f35..f9d8081b85 100644
+index 65ab8b9aa4..c1bc7fb03a 100644
 --- a/tools/sk_app/WindowContext.h
 +++ b/tools/sk_app/WindowContext.h
-@@ -55,7 +55,7 @@ protected:
+@@ -58,7 +58,7 @@ protected:
      virtual bool isGpuContext() { return true;  }
  
      sk_sp<GrDirectContext> fContext;
 -#if SK_GRAPHITE_ENABLED
 +#ifdef SK_GRAPHITE_ENABLED
-     sk_sp<skgpu::Context> fGraphiteContext;
+     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 3331d54cfe2c..a2fe81562720 100644
--- a/external/skia/fix-pch.patch.1
+++ b/external/skia/fix-pch.patch.1
@@ -1,5 +1,5 @@
 diff --git a/include/core/SkColor.h b/include/core/SkColor.h
-index 9cba771ddd..6d324b75d0 100644
+index a6e63def23..1c0655c3d7 100644
 --- a/include/core/SkColor.h
 +++ b/include/core/SkColor.h
 @@ -420,6 +420,7 @@ using SkColor4f = SkRGBA4f<kUnpremul_SkAlphaType>;
@@ -11,10 +11,10 @@ index 9cba771ddd..6d324b75d0 100644
  namespace SkColors {
  constexpr SkColor4f kTransparent = {0, 0, 0, 0};
 diff --git a/include/private/SkColorData.h b/include/private/SkColorData.h
-index aba610eacf..792da4e9fb 100644
+index a59e7b0446..960b4c0313 100644
 --- a/include/private/SkColorData.h
 +++ b/include/private/SkColorData.h
-@@ -442,4 +442,6 @@ constexpr SkPMColor4f SK_PMColor4fILLEGAL = { 
SK_FloatNegativeInfinity,
+@@ -438,4 +438,6 @@ constexpr SkPMColor4f SK_PMColor4fILLEGAL = { 
SK_FloatNegativeInfinity,
                                                SK_FloatNegativeInfinity,
                                                SK_FloatNegativeInfinity };
  
@@ -22,10 +22,10 @@ index aba610eacf..792da4e9fb 100644
 +
  #endif
 diff --git a/src/core/SkM44.cpp b/src/core/SkM44.cpp
-index 0cd138e6cc..ad7f7eca74 100644
+index 02b1741763..4cece999d2 100644
 --- a/src/core/SkM44.cpp
 +++ b/src/core/SkM44.cpp
-@@ -283,6 +283,8 @@ SkM44 SkM44::LookAt(const SkV3& eye, const SkV3& center, 
const SkV3& up) {
+@@ -341,6 +341,8 @@ SkM44 SkM44::LookAt(const SkV3& eye, const SkV3& center, 
const SkV3& up) {
      return m;
  }
  
@@ -34,31 +34,38 @@ index 0cd138e6cc..ad7f7eca74 100644
  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 afe3698f99..119ae41093 100644
---- a/src/gpu/gl/GrGLGpu.cpp
-+++ b/src/gpu/gl/GrGLGpu.cpp
-@@ -3536,6 +3536,8 @@ void GrGLGpu::xferBarrier(GrRenderTarget* rt, 
GrXferBarrierType type) {
-     }
- }
- 
-+#undef MemoryBarrier
-+
- void GrGLGpu::insertManualFramebufferBarrier() {
-     
SkASSERT(this->caps()->requiresManualFBBarrierAfterTessellatedStencilDraw());
-     GL_CALL(MemoryBarrier(GR_GL_FRAMEBUFFER_BARRIER_BIT));
-diff --git a/src/gpu/vk/GrVkSemaphore.cpp b/src/gpu/vk/GrVkSemaphore.cpp
-index 23bf656bf8..f926ebfdc2 100644
---- a/src/gpu/vk/GrVkSemaphore.cpp
-+++ b/src/gpu/vk/GrVkSemaphore.cpp
+diff --git a/src/gpu/ganesh/vk/GrVkSemaphore.cpp 
b/src/gpu/ganesh/vk/GrVkSemaphore.cpp
+index 70c7f0ea80..ab8319a447 100644
+--- a/src/gpu/ganesh/vk/GrVkSemaphore.cpp
++++ b/src/gpu/ganesh/vk/GrVkSemaphore.cpp
 @@ -10,6 +10,7 @@
  #include "include/gpu/GrBackendSemaphore.h"
- #include "src/gpu/vk/GrVkGpu.h"
- #include "src/gpu/vk/GrVkUtil.h"
+ #include "src/gpu/ganesh/vk/GrVkGpu.h"
+ #include "src/gpu/ganesh/vk/GrVkUtil.h"
 +#include "tools/gpu/vk/GrVulkanDefines.h"
  
  #ifdef VK_USE_PLATFORM_WIN32_KHR
  // windows wants to define this as CreateSemaphoreA or CreateSemaphoreW
+diff --git a/src/sksl/ir/SkSLPoison.h b/src/sksl/ir/SkSLPoison.h
+index 035f94e1f6..3cf12db902 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/src/utils/win/SkDWriteGeometrySink.h 
b/src/utils/win/SkDWriteGeometrySink.h
 index af4909aaaf..825ec35c83 100644
 --- a/src/utils/win/SkDWriteGeometrySink.h
@@ -73,7 +80,7 @@ index af4909aaaf..825ec35c83 100644
  #include <d2d1.h>
  
 diff --git a/third_party/skcms/skcms.cc b/third_party/skcms/skcms.cc
-index 33e3514253..af9313a958 100644
+index 1b643f45cf..c1981110da 100644
 --- a/third_party/skcms/skcms.cc
 +++ b/third_party/skcms/skcms.cc
 @@ -130,7 +130,8 @@ static float minus_1_ulp(float x) {
@@ -86,7 +93,7 @@ index 33e3514253..af9313a958 100644
  struct TF_PQish  { float A,B,C,D,E,F; };
  struct TF_HLGish { float R,G,a,b,c,K_minus_1; };
  // We didn't originally support a scale factor K for HLG, and instead just 
stored 0 in
-@@ -2061,7 +2062,9 @@ typedef enum {
+@@ -2318,7 +2319,9 @@ typedef enum {
      Op_store_hhhh,
      Op_store_fff,
      Op_store_ffff,
@@ -97,23 +104,3 @@ index 33e3514253..af9313a958 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.1 
b/external/skia/fix-without-gl.patch.1
index 3a17e32dcff6..8735dc81d039 100644
--- a/external/skia/fix-without-gl.patch.1
+++ b/external/skia/fix-without-gl.patch.1
@@ -1,8 +1,8 @@
 diff --git a/include/gpu/gl/GrGLInterface.h b/include/gpu/gl/GrGLInterface.h
-index af3ca67dcc..14d2521d12 100644
+index e10242b3b7..a1c0058caa 100644
 --- a/include/gpu/gl/GrGLInterface.h
 +++ b/include/gpu/gl/GrGLInterface.h
-@@ -85,7 +85,9 @@ public:
+@@ -83,7 +83,9 @@ public:
  
      GrGLExtensions fExtensions;
  
@@ -12,11 +12,11 @@ index af3ca67dcc..14d2521d12 100644
  
      /**
       * The function pointers are in a struct so that we can have a compiler 
generated assignment
-diff --git a/src/gpu/gl/GrGLContext.h b/src/gpu/gl/GrGLContext.h
-index 93bd57c2c5..487774d7d5 100644
---- a/src/gpu/gl/GrGLContext.h
-+++ b/src/gpu/gl/GrGLContext.h
-@@ -45,9 +45,11 @@ public:
+diff --git a/src/gpu/ganesh/gl/GrGLContext.h b/src/gpu/ganesh/gl/GrGLContext.h
+index d5424ca6cf..5b730fe176 100644
+--- a/src/gpu/ganesh/gl/GrGLContext.h
++++ b/src/gpu/ganesh/gl/GrGLContext.h
+@@ -64,9 +64,11 @@ public:
      const GrGLCaps* caps() const { return fGLCaps.get(); }
      GrGLCaps* caps() { return fGLCaps.get(); }
  
@@ -28,11 +28,11 @@ index 93bd57c2c5..487774d7d5 100644
  
      const GrGLExtensions& extensions() const { return 
fInterface->fExtensions; }
  
-diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h
-index 50affac85e..f0f28046a9 100644
---- a/src/gpu/gl/GrGLGpu.h
-+++ b/src/gpu/gl/GrGLGpu.h
-@@ -277,6 +277,7 @@ private:
+diff --git a/src/gpu/ganesh/gl/GrGLGpu.h b/src/gpu/ganesh/gl/GrGLGpu.h
+index a3ac1ad25d..ffc18093e6 100644
+--- a/src/gpu/ganesh/gl/GrGLGpu.h
++++ b/src/gpu/ganesh/gl/GrGLGpu.h
+@@ -279,6 +279,7 @@ private:
      // compatible stencil format, or negative if there is no compatible 
stencil format.
      int getCompatibleStencilIndex(GrGLFormat format);
  
@@ -40,7 +40,7 @@ index 50affac85e..f0f28046a9 100644
      GrBackendFormat getPreferredStencilFormat(const GrBackendFormat& format) 
override {
          int idx = this->getCompatibleStencilIndex(format.asGLFormat());
          if (idx < 0) {
-@@ -285,6 +286,7 @@ private:
+@@ -287,6 +288,7 @@ private:
          return 
GrBackendFormat::MakeGL(GrGLFormatToEnum(this->glCaps().stencilFormats()[idx]),
                                         GR_GL_TEXTURE_NONE);
      }
diff --git a/external/skia/inc/pch/precompiled_skia.hxx 
b/external/skia/inc/pch/precompiled_skia.hxx
index a6b39fe19eac..e9631b68daf7 100644
--- a/external/skia/inc/pch/precompiled_skia.hxx
+++ b/external/skia/inc/pch/precompiled_skia.hxx
@@ -13,7 +13,7 @@
  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-11-25 16:36:08 using:
+ Generated on 2022-05-20 16:24:18 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:
@@ -33,14 +33,15 @@
 #include <climits>
 #include <cmath>
 #include <cstddef>
+#include <cstdint>
 #include <cstdio>
 #include <cstring>
 #include <ctype.h>
 #include <deque>
 #include <errno.h>
 #include <forward_list>
-#include <fstream>
 #include <functional>
+#include <initializer_list>
 #include <inttypes.h>
 #include <iterator>
 #include <limits.h>
@@ -51,18 +52,21 @@
 #include <memory>
 #include <new>
 #include <numeric>
+#include <optional>
 #include <png.h>
 #include <queue>
+#include <set>
 #include <sstream>
-#include <stack>
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <string>
+#include <string_view>
 #include <thread>
 #include <tuple>
+#include <type_traits>
 #include <unordered_map>
 #include <unordered_set>
 #include <utility>
@@ -86,16 +90,20 @@
 #include <include/c/sk_surface.h>
 #include <include/codec/SkAndroidCodec.h>
 #include <include/codec/SkCodec.h>
+#include <include/core/SkAlphaType.h>
 #include <include/core/SkAnnotation.h>
 #include <include/core/SkBBHFactory.h>
 #include <include/core/SkBitmap.h>
 #include <include/core/SkBlendMode.h>
 #include <include/core/SkBlender.h>
+#include <include/core/SkBlurTypes.h>
 #include <include/core/SkCanvas.h>
+#include <include/core/SkClipOp.h>
 #include <include/core/SkColor.h>
 #include <include/core/SkColorFilter.h>
 #include <include/core/SkColorPriv.h>
 #include <include/core/SkColorSpace.h>
+#include <include/core/SkColorType.h>
 #include <include/core/SkContourMeasure.h>
 #include <include/core/SkCubicMap.h>
 #include <include/core/SkData.h>
@@ -107,8 +115,12 @@
 #include <include/core/SkExecutor.h>
 #include <include/core/SkFlattenable.h>
 #include <include/core/SkFont.h>
+#include <include/core/SkFontArguments.h>
 #include <include/core/SkFontMetrics.h>
 #include <include/core/SkFontMgr.h>
+#include <include/core/SkFontParameters.h>
+#include <include/core/SkFontStyle.h>
+#include <include/core/SkFontTypes.h>
 #include <include/core/SkGraphics.h>
 #include <include/core/SkICC.h>
 #include <include/core/SkImage.h>
@@ -121,12 +133,15 @@
 #include <include/core/SkMaskFilter.h>
 #include <include/core/SkMath.h>
 #include <include/core/SkMatrix.h>
+#include <include/core/SkMesh.h>
+#include <include/core/SkOpenTypeSVGDecoder.h>
 #include <include/core/SkOverdrawCanvas.h>
 #include <include/core/SkPaint.h>
 #include <include/core/SkPath.h>
 #include <include/core/SkPathBuilder.h>
 #include <include/core/SkPathEffect.h>
 #include <include/core/SkPathMeasure.h>
+#include <include/core/SkPathTypes.h>
 #include <include/core/SkPicture.h>
 #include <include/core/SkPictureRecorder.h>
 #include <include/core/SkPixelRef.h>
@@ -140,6 +155,7 @@
 #include <include/core/SkRect.h>
 #include <include/core/SkRefCnt.h>
 #include <include/core/SkRegion.h>
+#include <include/core/SkSamplingOptions.h>
 #include <include/core/SkScalar.h>
 #include <include/core/SkSerialProcs.h>
 #include <include/core/SkShader.h>
@@ -147,7 +163,6 @@
 #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>
@@ -194,8 +209,7 @@
 #include <include/gpu/GrRecordingContext.h>
 #include <include/pathops/SkPathOps.h>
 #include <include/ports/SkRemotableFontMgr.h>
-#include <include/private/GrImageContext.h>
-#include <include/private/GrResourceKey.h>
+#include <include/private/SkBitmaskEnum.h>
 #include <include/private/SkChecksum.h>
 #include <include/private/SkColorData.h>
 #include <include/private/SkDeque.h>
@@ -211,6 +225,7 @@
 #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>
 #include <include/private/SkSLDefines.h>
 #include <include/private/SkSLLayout.h>
@@ -225,17 +240,21 @@
 #include <include/private/SkSemaphore.h>
 #include <include/private/SkShadowFlags.h>
 #include <include/private/SkSpinlock.h>
+#include <include/private/SkStringView.h>
 #include <include/private/SkTArray.h>
 #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>
 #include <include/private/SkThreadID.h>
 #include <include/private/SkTo.h>
 #include <include/private/SkVx.h>
+#include <include/private/chromium/GrSlug.h>
+#include <include/private/chromium/SkChromeRemoteGlyphCache.h>
+#include <include/private/gpu/ganesh/GrImageContext.h>
+#include <include/private/gpu/ganesh/GrTypesPriv.h>
 #include <include/third_party/skcms/skcms.h>
 #include <include/utils/SkBase64.h>
 #include <include/utils/SkCamera.h>
@@ -308,6 +327,7 @@
 #include <src/core/SkCoreBlitters.h>
 #include <src/core/SkCpu.h>
 #include <src/core/SkCubicClipper.h>
+#include <src/core/SkDebugUtils.h>
 #include <src/core/SkDescriptor.h>
 #include <src/core/SkDevice.h>
 #include <src/core/SkDiscardableMemory.h>
@@ -338,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>
@@ -345,7 +367,6 @@
 #include <src/core/SkLocalMatrixImageFilter.h>
 #include <src/core/SkMD5.h>
 #include <src/core/SkMSAN.h>
-#include <src/core/SkMarkerStack.h>
 #include <src/core/SkMask.h>
 #include <src/core/SkMaskBlurFilter.h>
 #include <src/core/SkMaskCache.h>
@@ -357,6 +378,7 @@
 #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>
@@ -367,6 +389,7 @@
 #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>
@@ -378,6 +401,7 @@
 #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>
@@ -397,9 +421,9 @@
 #include <src/core/SkRecords.h>
 #include <src/core/SkRectPriv.h>
 #include <src/core/SkRegionPriv.h>
-#include <src/core/SkRemoteGlyphCache.h>
 #include <src/core/SkResourceCache.h>
 #include <src/core/SkRuntimeEffectPriv.h>
+#include <src/core/SkSLTypeShared.h>
 #include <src/core/SkSafeMath.h>
 #include <src/core/SkSafeRange.h>
 #include <src/core/SkSamplingPriv.h>
@@ -409,6 +433,7 @@
 #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>
@@ -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>
@@ -456,54 +482,57 @@
 #include <src/effects/SkTrimPE.h>
 #include <src/effects/imagefilters/SkCropImageFilter.h>
 #include <src/effects/imagefilters/SkRuntimeImageFilter.h>
-#include <src/gpu/BaseDevice.h>
-#include <src/gpu/GrBlend.h>
-#include <src/gpu/GrCaps.h>
-#include <src/gpu/GrColorInfo.h>
-#include <src/gpu/GrColorSpaceXform.h>
-#include <src/gpu/GrContextThreadSafeProxyPriv.h>
-#include <src/gpu/GrDirectContextPriv.h>
-#include <src/gpu/GrDrawOpAtlas.h>
-#include <src/gpu/GrFPArgs.h>
-#include <src/gpu/GrFragmentProcessor.h>
-#include <src/gpu/GrGpuResourcePriv.h>
-#include <src/gpu/GrImageContextPriv.h>
-#include <src/gpu/GrImageInfo.h>
-#include <src/gpu/GrPaint.h>
-#include <src/gpu/GrProxyProvider.h>
-#include <src/gpu/GrRecordingContextPriv.h>
-#include <src/gpu/GrRenderTask.h>
-#include <src/gpu/GrResourceProvider.h>
-#include <src/gpu/GrSamplerState.h>
-#include <src/gpu/GrShaderCaps.h>
-#include <src/gpu/GrStyle.h>
-#include <src/gpu/GrSurfaceProxyView.h>
-#include <src/gpu/GrTexture.h>
-#include <src/gpu/GrTextureProxy.h>
-#include <src/gpu/GrThreadSafeCache.h>
-#include <src/gpu/GrYUVATextureProxies.h>
-#include <src/gpu/SkGr.h>
-#include <src/gpu/SurfaceFillContext.h>
-#include <src/gpu/effects/GrBicubicEffect.h>
-#include <src/gpu/effects/GrBlendFragmentProcessor.h>
-#include <src/gpu/effects/GrCustomXfermode.h>
-#include <src/gpu/effects/GrMatrixConvolutionEffect.h>
-#include <src/gpu/effects/GrMatrixEffect.h>
-#include <src/gpu/effects/GrPorterDuffXferProcessor.h>
-#include <src/gpu/effects/GrSkSLFP.h>
-#include <src/gpu/effects/GrTextureEffect.h>
-#include <src/gpu/effects/GrYUVtoRGBEffect.h>
-#include <src/gpu/geometry/GrPathUtils.h>
-#include <src/gpu/geometry/GrStyledShape.h>
-#include <src/gpu/glsl/GrGLSLFragmentShaderBuilder.h>
-#include <src/gpu/glsl/GrGLSLProgramDataManager.h>
-#include <src/gpu/glsl/GrGLSLUniformHandler.h>
-#include <src/gpu/gradients/GrGradientShader.h>
-#include <src/gpu/text/GrSDFMaskFilter.h>
-#include <src/gpu/text/GrSDFTControl.h>
-#include <src/gpu/text/GrStrikeCache.h>
-#include <src/gpu/text/GrTextBlobCache.h>
-#include <src/gpu/v1/SurfaceDrawContext_v1.h>
+#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>
+#include <src/gpu/ganesh/GrContextThreadSafeProxyPriv.h>
+#include <src/gpu/ganesh/GrDirectContextPriv.h>
+#include <src/gpu/ganesh/GrDrawOpAtlas.h>
+#include <src/gpu/ganesh/GrFPArgs.h>
+#include <src/gpu/ganesh/GrFragmentProcessor.h>
+#include <src/gpu/ganesh/GrGpuResourcePriv.h>
+#include <src/gpu/ganesh/GrImageContextPriv.h>
+#include <src/gpu/ganesh/GrImageInfo.h>
+#include <src/gpu/ganesh/GrMemoryPool.h>
+#include <src/gpu/ganesh/GrPaint.h>
+#include <src/gpu/ganesh/GrProxyProvider.h>
+#include <src/gpu/ganesh/GrRecordingContextPriv.h>
+#include <src/gpu/ganesh/GrRenderTask.h>
+#include <src/gpu/ganesh/GrResourceProvider.h>
+#include <src/gpu/ganesh/GrSamplerState.h>
+#include <src/gpu/ganesh/GrShaderCaps.h>
+#include <src/gpu/ganesh/GrStyle.h>
+#include <src/gpu/ganesh/GrSurfaceProxyView.h>
+#include <src/gpu/ganesh/GrTexture.h>
+#include <src/gpu/ganesh/GrTextureProxy.h>
+#include <src/gpu/ganesh/GrThreadSafeCache.h>
+#include <src/gpu/ganesh/GrYUVATextureProxies.h>
+#include <src/gpu/ganesh/SkGr.h>
+#include <src/gpu/ganesh/SurfaceFillContext.h>
+#include <src/gpu/ganesh/effects/GrBicubicEffect.h>
+#include <src/gpu/ganesh/effects/GrBlendFragmentProcessor.h>
+#include <src/gpu/ganesh/effects/GrCustomXfermode.h>
+#include <src/gpu/ganesh/effects/GrMatrixConvolutionEffect.h>
+#include <src/gpu/ganesh/effects/GrMatrixEffect.h>
+#include <src/gpu/ganesh/effects/GrPorterDuffXferProcessor.h>
+#include <src/gpu/ganesh/effects/GrSkSLFP.h>
+#include <src/gpu/ganesh/effects/GrTextureEffect.h>
+#include <src/gpu/ganesh/effects/GrYUVtoRGBEffect.h>
+#include <src/gpu/ganesh/geometry/GrPathUtils.h>
+#include <src/gpu/ganesh/geometry/GrStyledShape.h>
+#include <src/gpu/ganesh/glsl/GrGLSLFragmentShaderBuilder.h>
+#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>
@@ -558,9 +587,11 @@
 #include <src/shaders/gradients/SkRadialGradient.h>
 #include <src/shaders/gradients/SkSweepGradient.h>
 #include <src/shaders/gradients/SkTwoPointConicalGradient.h>
-#include <src/utils/SkBitSet.h>
+#include <src/text/gpu/StrikeCache.h>
+#include <src/utils/SkBlitterTrace.h>
 #include <src/utils/SkCanvasStack.h>
 #include <src/utils/SkCharToGlyphCache.h>
+#include <src/utils/SkClipStackUtils.h>
 #include <src/utils/SkDashPathPriv.h>
 #include <src/utils/SkFloatToDecimal.h>
 #include <src/utils/SkJSON.h>
@@ -571,9 +602,12 @@
 #include <src/utils/SkOSPath.h>
 #include <src/utils/SkPatchUtils.h>
 #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>
 #include <tools/sk_app/WindowContext.h>
 #endif // PCH_LEVEL >= 3
 #if PCH_LEVEL >= 4
diff --git a/external/skia/libvulkan-name.patch.1 
b/external/skia/libvulkan-name.patch.1
deleted file mode 100644
index 265d8daa11df..000000000000
--- a/external/skia/libvulkan-name.patch.1
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tools/gpu/vk/VkTestUtils.cpp b/tools/gpu/vk/VkTestUtils.cpp
-index 5b7e8c29ae..1580136b5c 100644
---- a/tools/gpu/vk/VkTestUtils.cpp
-+++ b/tools/gpu/vk/VkTestUtils.cpp
-@@ -13,7 +13,7 @@
-     #if defined _WIN32
-         #define SK_GPU_TOOLS_VK_LIBRARY_NAME "vulkan-1.dll"
-     #else
--        #define SK_GPU_TOOLS_VK_LIBRARY_NAME "libvulkan.so"
-+        #define SK_GPU_TOOLS_VK_LIBRARY_NAME "libvulkan.so.1"
-     #endif
- #endif
- 
diff --git a/external/skia/missing-include.patch.0 
b/external/skia/missing-include.patch.0
deleted file mode 100644
index cc898799ed83..000000000000
--- a/external/skia/missing-include.patch.0
+++ /dev/null
@@ -1,10 +0,0 @@
---- include/private/SkTArray.h
-+++ include/private/SkTArray.h
-@@ -17,6 +17,7 @@
- #include "include/private/SkTo.h"
- 
- #include <string.h>
-+#include <algorithm>
- #include <initializer_list>
- #include <memory>
- #include <new>
diff --git a/external/skia/no-trace-resources-on-exit.patch.1 
b/external/skia/no-trace-resources-on-exit.patch.1
index fa563fee21d0..4d52a37dc56c 100644
--- a/external/skia/no-trace-resources-on-exit.patch.1
+++ b/external/skia/no-trace-resources-on-exit.patch.1
@@ -1,7 +1,7 @@
 diff --git a/src/gpu/vk/GrVkResource.h b/src/gpu/vk/GrVkResource.h
 index 7b9949ba1b..4e8fb48c7c 100644
---- a/src/gpu/GrManagedResource.h
-+++ b/src/gpu/GrManagedResource.h
+--- a/src/gpu/ganesh/GrManagedResource.h
++++ b/src/gpu/ganesh/GrManagedResource.h
 @@ -17,7 +17,7 @@ class GrVkGpu;
  
  // uncomment to enable tracing of resource refs
diff --git a/external/skia/share-grcontext.patch.1 
b/external/skia/share-grcontext.patch.1
index f131069e7a1c..2a957c284358 100644
--- a/external/skia/share-grcontext.patch.1
+++ b/external/skia/share-grcontext.patch.1
@@ -1,5 +1,5 @@
 diff --git a/tools/sk_app/MetalWindowContext.h 
b/tools/sk_app/MetalWindowContext.h
-index a9eacdd66f..23604db25b 100644
+index 106d366415..08dc19b5c8 100644
 --- a/tools/sk_app/MetalWindowContext.h
 +++ b/tools/sk_app/MetalWindowContext.h
 @@ -14,13 +14,18 @@
@@ -59,7 +59,7 @@ index a9eacdd66f..23604db25b 100644
  }   // namespace sk_app
  
 diff --git a/tools/sk_app/MetalWindowContext.mm 
b/tools/sk_app/MetalWindowContext.mm
-index c464c3904a..799aafa78b 100644
+index d972e321a6..9f576944b7 100644
 --- a/tools/sk_app/MetalWindowContext.mm
 +++ b/tools/sk_app/MetalWindowContext.mm
 @@ -37,24 +37,30 @@ NSURL* MetalWindowContext::CacheURL() {
@@ -241,23 +241,26 @@ index c464c3904a..799aafa78b 100644
 +
  }   //namespace sk_app
 diff --git a/tools/sk_app/VulkanWindowContext.cpp 
b/tools/sk_app/VulkanWindowContext.cpp
-index d07d5a4274..2b36d60076 100644
+index c9db528ca4..634034da5a 100644
 --- a/tools/sk_app/VulkanWindowContext.cpp
 +++ b/tools/sk_app/VulkanWindowContext.cpp
-@@ -24,8 +24,10 @@
- #undef CreateSemaphore
+@@ -25,9 +25,13 @@
  #endif
  
--#define GET_PROC(F) f ## F = (PFN_vk ## F) fGetInstanceProcAddr(fInstance, 
"vk" #F)
--#define GET_DEV_PROC(F) f ## F = (PFN_vk ## F) fGetDeviceProcAddr(fDevice, 
"vk" #F)
-+#define GET_PROC(F) f ## F = (PFN_vk ## F) 
fGetInstanceProcAddr(fShared->fInstance, "vk" #F)
-+#define GET_DEV_PROC(F) f ## F = (PFN_vk ## F) 
fGetDeviceProcAddr(fShared->fDevice, "vk" #F)
-+#define GET_PROC_GLOBAL(F) fGlobalShared->f ## F = (PFN_vk ## F) 
fGetInstanceProcAddr(fGlobalShared->fInstance, "vk" #F)
-+#define GET_DEV_PROC_GLOBAL(F) fGlobalShared->f ## F = (PFN_vk ## F) 
fGetDeviceProcAddr(fGlobalShared->fDevice, "vk" #F)
+ #define GET_PROC(F) f ## F = \
+-    (PFN_vk ## F) backendContext.fGetProc("vk" #F, fInstance, VK_NULL_HANDLE)
++    (PFN_vk ## F) fGlobalShared->backendContext.fGetProc("vk" #F, 
fShared->fInstance, VK_NULL_HANDLE)
+ #define GET_DEV_PROC(F) f ## F = \
+-    (PFN_vk ## F) backendContext.fGetProc("vk" #F, VK_NULL_HANDLE, fDevice)
++    (PFN_vk ## F) fGlobalShared->backendContext.fGetProc("vk" #F, 
VK_NULL_HANDLE, fShared->fDevice)
++#define GET_PROC_GLOBAL(F) fGlobalShared->f ## F = \
++    (PFN_vk ## F) fGlobalShared->backendContext.fGetProc("vk" #F, 
fGlobalShared->fInstance, VK_NULL_HANDLE)
++#define GET_DEV_PROC_GLOBAL(F) fGlobalShared->f ## F = \
++    (PFN_vk ## F) fGlobalShared->backendContext.fGetProc("vk" #F, 
VK_NULL_HANDLE, fGlobalShared->fDevice)
  
  namespace sk_app {
  
-@@ -49,6 +51,14 @@ VulkanWindowContext::VulkanWindowContext(const 
DisplayParams& params,
+@@ -49,31 +53,39 @@ VulkanWindowContext::VulkanWindowContext(const 
DisplayParams& params,
  }
  
  void VulkanWindowContext::initializeContext() {
@@ -272,15 +275,16 @@ index d07d5a4274..2b36d60076 100644
      SkASSERT(!fContext);
      // any config code here (particularly for msaa)?
  
-@@ -63,24 +73,25 @@ void VulkanWindowContext::initializeContext() {
-     };
-     GrVkBackendContext backendContext;
+     PFN_vkGetInstanceProcAddr getInstanceProc = fGetInstanceProcAddr;
+-    GrVkBackendContext backendContext;
++    GrVkBackendContext& backendContext = fGlobalShared->backendContext;
      GrVkExtensions extensions;
 -    VkPhysicalDeviceFeatures2 features;
--    if (!sk_gpu_test::CreateVkBackendContext(getProc, &backendContext, 
&extensions, &features,
--                                             &fDebugCallback, 
&fPresentQueueIndex, fCanPresentFn)) {
+-    if (!sk_gpu_test::CreateVkBackendContext(getInstanceProc, 
&backendContext, &extensions,
+-                                             &features, &fDebugCallback, 
&fPresentQueueIndex,
+-                                             fCanPresentFn)) {
 -        sk_gpu_test::FreeVulkanFeaturesStructs(&features);
-+    if (!sk_gpu_test::CreateVkBackendContext(getProc, &backendContext, 
&extensions, &d->features,
++    if (!sk_gpu_test::CreateVkBackendContext(getInstanceProc, 
&backendContext, &extensions, &d->features,
 +                                             &d->fDebugCallback, 
&d->fPresentQueueIndex, fCanPresentFn)) {
 +        sk_gpu_test::FreeVulkanFeaturesStructs(&d->features);
 +        fGlobalShared.reset();
@@ -308,7 +312,7 @@ index d07d5a4274..2b36d60076 100644
  
      PFN_vkGetPhysicalDeviceProperties localGetPhysicalDeviceProperties =
              reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>(
-@@ -88,21 +99,30 @@ void VulkanWindowContext::initializeContext() {
+@@ -81,21 +93,30 @@ void VulkanWindowContext::initializeContext() {
                                              backendContext.fInstance,
                                              VK_NULL_HANDLE));
      if (!localGetPhysicalDeviceProperties) {
@@ -347,7 +351,7 @@ index d07d5a4274..2b36d60076 100644
      GET_PROC(DestroySurfaceKHR);
      GET_PROC(GetPhysicalDeviceSurfaceSupportKHR);
      GET_PROC(GetPhysicalDeviceSurfaceCapabilitiesKHR);
-@@ -110,7 +130,6 @@ void VulkanWindowContext::initializeContext() {
+@@ -103,7 +124,6 @@ void VulkanWindowContext::initializeContext() {
      GET_PROC(GetPhysicalDeviceSurfacePresentModesKHR);
      GET_DEV_PROC(DeviceWaitIdle);
      GET_DEV_PROC(QueueWaitIdle);
@@ -355,7 +359,7 @@ index d07d5a4274..2b36d60076 100644
      GET_DEV_PROC(CreateSwapchainKHR);
      GET_DEV_PROC(DestroySwapchainKHR);
      GET_DEV_PROC(GetSwapchainImagesKHR);
-@@ -118,46 +137,44 @@ void VulkanWindowContext::initializeContext() {
+@@ -111,46 +131,44 @@ void VulkanWindowContext::initializeContext() {
      GET_DEV_PROC(QueuePresentKHR);
      GET_DEV_PROC(GetDeviceQueue);
  
@@ -412,7 +416,7 @@ index d07d5a4274..2b36d60076 100644
                                                nullptr);
      if (VK_SUCCESS != res) {
          return false;
-@@ -165,14 +182,14 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
+@@ -158,14 +176,14 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
  
      SkAutoMalloc surfaceFormatAlloc(surfaceFormatCount * 
sizeof(VkSurfaceFormatKHR));
      VkSurfaceFormatKHR* surfaceFormats = 
(VkSurfaceFormatKHR*)surfaceFormatAlloc.get();
@@ -429,7 +433,7 @@ index d07d5a4274..2b36d60076 100644
                                                     nullptr);
      if (VK_SUCCESS != res) {
          return false;
-@@ -180,7 +197,7 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
+@@ -173,7 +191,7 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
  
      SkAutoMalloc presentModeAlloc(presentModeCount * 
sizeof(VkPresentModeKHR));
      VkPresentModeKHR* presentModes = 
(VkPresentModeKHR*)presentModeAlloc.get();
@@ -438,7 +442,7 @@ index d07d5a4274..2b36d60076 100644
                                                     presentModes);
      if (VK_SUCCESS != res) {
          return false;
-@@ -293,8 +310,8 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
+@@ -286,8 +304,8 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
      swapchainCreateInfo.imageArrayLayers = 1;
      swapchainCreateInfo.imageUsage = usageFlags;
  
@@ -449,7 +453,7 @@ index d07d5a4274..2b36d60076 100644
          swapchainCreateInfo.imageSharingMode = VK_SHARING_MODE_CONCURRENT;
          swapchainCreateInfo.queueFamilyIndexCount = 2;
          swapchainCreateInfo.pQueueFamilyIndices = queueFamilies;
-@@ -310,27 +327,27 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
+@@ -303,27 +321,27 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
      swapchainCreateInfo.clipped = true;
      swapchainCreateInfo.oldSwapchain = fSwapchain;
  
@@ -482,7 +486,7 @@ index d07d5a4274..2b36d60076 100644
      }
  
      return true;
-@@ -339,10 +356,10 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
+@@ -332,10 +350,10 @@ bool VulkanWindowContext::createSwapchain(int width, int 
height,
  bool VulkanWindowContext::createBuffers(VkFormat format, VkImageUsageFlags 
usageFlags,
                                          SkColorType colorType,
                                          VkSharingMode sharingMode) {
@@ -495,7 +499,7 @@ index d07d5a4274..2b36d60076 100644
  
      // set up initial image layouts and create surfaces
      fImageLayouts = new VkImageLayout[fImageCount];
-@@ -358,7 +375,7 @@ bool VulkanWindowContext::createBuffers(VkFormat format, 
VkImageUsageFlags usage
+@@ -351,7 +369,7 @@ bool VulkanWindowContext::createBuffers(VkFormat format, 
VkImageUsageFlags usage
          info.fFormat = format;
          info.fImageUsageFlags = usageFlags;
          info.fLevelCount = 1;
@@ -504,7 +508,7 @@ index d07d5a4274..2b36d60076 100644
          info.fSharingMode = sharingMode;
  
          if (usageFlags & VK_IMAGE_USAGE_SAMPLED_BIT) {
-@@ -394,8 +411,8 @@ bool VulkanWindowContext::createBuffers(VkFormat format, 
VkImageUsageFlags usage
+@@ -387,8 +405,8 @@ bool VulkanWindowContext::createBuffers(VkFormat format, 
VkImageUsageFlags usage
      fBackbuffers = new BackbufferInfo[fImageCount + 1];
      for (uint32_t i = 0; i < fImageCount + 1; ++i) {
          fBackbuffers[i].fImageIndex = -1;
@@ -515,7 +519,7 @@ index d07d5a4274..2b36d60076 100644
                                  &fBackbuffers[i].fRenderSemaphore));
          SkASSERT(result == VK_SUCCESS);
      }
-@@ -408,8 +425,8 @@ void VulkanWindowContext::destroyBuffers() {
+@@ -401,8 +419,8 @@ void VulkanWindowContext::destroyBuffers() {
      if (fBackbuffers) {
          for (uint32_t i = 0; i < fImageCount + 1; ++i) {
              fBackbuffers[i].fImageIndex = -1;
@@ -526,7 +530,7 @@ index d07d5a4274..2b36d60076 100644
                                          fBackbuffers[i].fRenderSemaphore,
                                          nullptr));
          }
-@@ -434,42 +451,59 @@ VulkanWindowContext::~VulkanWindowContext() {
+@@ -427,42 +445,59 @@ VulkanWindowContext::~VulkanWindowContext() {
  void VulkanWindowContext::destroyContext() {
      if (this->isValid()) {
          fQueueWaitIdle(fPresentQueue);
@@ -600,7 +604,7 @@ index d07d5a4274..2b36d60076 100644
  }
  
  VulkanWindowContext::BackbufferInfo* 
VulkanWindowContext::getAvailableBackbuffer() {
-@@ -495,35 +529,35 @@ sk_sp<SkSurface> 
VulkanWindowContext::getBackbufferSurface() {
+@@ -488,35 +523,35 @@ sk_sp<SkSurface> 
VulkanWindowContext::getBackbufferSurface() {
      semaphoreInfo.pNext = nullptr;
      semaphoreInfo.flags = 0;
      VkSemaphore semaphore;
@@ -642,7 +646,7 @@ index d07d5a4274..2b36d60076 100644
              return nullptr;
          }
      }
-@@ -549,7 +583,7 @@ void VulkanWindowContext::swapBuffers() {
+@@ -542,7 +577,7 @@ void VulkanWindowContext::swapBuffers() {
      GrFlushInfo info;
      info.fNumSemaphores = 1;
      info.fSignalSemaphores = &beSemaphore;
@@ -651,7 +655,7 @@ index d07d5a4274..2b36d60076 100644
      surface->flush(info, &presentState);
      surface->recordingContext()->asDirectContext()->submit();
  
-@@ -569,4 +603,6 @@ void VulkanWindowContext::swapBuffers() {
+@@ -562,4 +597,6 @@ void VulkanWindowContext::swapBuffers() {
      fQueuePresentKHR(fPresentQueue, &presentInfo);
  }
  
@@ -659,7 +663,7 @@ index d07d5a4274..2b36d60076 100644
 +
  }   //namespace sk_app
 diff --git a/tools/sk_app/VulkanWindowContext.h 
b/tools/sk_app/VulkanWindowContext.h
-index 580dba2733..92bfba6dff 100644
+index 7e1fdd9af5..946bca7522 100644
 --- a/tools/sk_app/VulkanWindowContext.h
 +++ b/tools/sk_app/VulkanWindowContext.h
 @@ -19,18 +19,22 @@
@@ -689,7 +693,7 @@ index 580dba2733..92bfba6dff 100644
          this->createSwapchain(w, h, fDisplayParams);
 @@ -50,9 +54,15 @@ public:
      VulkanWindowContext(const DisplayParams&, CreateVkSurfaceFn, CanPresentFn,
-                         PFN_vkGetInstanceProcAddr, PFN_vkGetDeviceProcAddr);
+                         PFN_vkGetInstanceProcAddr);
  
 +    static const VkPhysicalDeviceProperties& getPhysDeviceProperties() {
 +        assert( fGlobalShared != nullptr );
@@ -715,7 +719,7 @@ index 580dba2733..92bfba6dff 100644
      // Create functions
      CreateVkSurfaceFn fCreateVkSurfaceFn;
      CanPresentFn      fCanPresentFn;
-@@ -90,20 +95,44 @@ private:
+@@ -88,20 +93,46 @@ private:
      PFN_vkAcquireNextImageKHR fAcquireNextImageKHR = nullptr;
      PFN_vkQueuePresentKHR fQueuePresentKHR = nullptr;
  
@@ -748,6 +752,8 @@ index 580dba2733..92bfba6dff 100644
 +
 +    // Store this to make it accessible.
 +    VkPhysicalDeviceProperties physDeviceProperties;
++
++    GrVkBackendContext backendContext;
 +
      uint32_t          fGraphicsQueueIndex;
      VkQueue           fGraphicsQueue;
@@ -766,7 +772,7 @@ index 580dba2733..92bfba6dff 100644
  
      uint32_t               fImageCount;
 diff --git a/tools/sk_app/WindowContext.h b/tools/sk_app/WindowContext.h
-index 79f6d72f35..01d0e18f46 100644
+index 65ab8b9aa4..2d222385a3 100644
 --- a/tools/sk_app/WindowContext.h
 +++ b/tools/sk_app/WindowContext.h
 @@ -10,9 +10,9 @@
@@ -779,7 +785,7 @@ index 79f6d72f35..01d0e18f46 100644
 -class GrDirectContext;
  class SkSurface;
  #ifdef SK_GRAPHITE_ENABLED
- namespace skgpu {
+ namespace skgpu::graphite {
 diff --git a/tools/sk_app/mac/MetalWindowContext_mac.mm 
b/tools/sk_app/mac/MetalWindowContext_mac.mm
 index 5bea8578fa..f7df061af0 100644
 --- a/tools/sk_app/mac/MetalWindowContext_mac.mm
@@ -801,7 +807,7 @@ index 5bea8578fa..f7df061af0 100644
  
      // resize ignores the passed values and uses the fMainView directly.
 diff --git a/tools/sk_app/unix/VulkanWindowContext_unix.cpp 
b/tools/sk_app/unix/VulkanWindowContext_unix.cpp
-index 34f6640c76..5478b75dac 100644
+index 2b31fedc19..0c05fbfc92 100644
 --- a/tools/sk_app/unix/VulkanWindowContext_unix.cpp
 +++ b/tools/sk_app/unix/VulkanWindowContext_unix.cpp
 @@ -30,7 +30,7 @@ std::unique_ptr<WindowContext> MakeVulkanForXlib(const 
XlibWindowInfo& info,
@@ -826,17 +832,17 @@ index 34f6640c76..5478b75dac 100644
 @@ -76,7 +79,7 @@ std::unique_ptr<WindowContext> MakeVulkanForXlib(const 
XlibWindowInfo& info,
      };
      std::unique_ptr<WindowContext> ctx(
-             new VulkanWindowContext(displayParams, createVkSurface, 
canPresent, instProc, devProc));
+             new VulkanWindowContext(displayParams, createVkSurface, 
canPresent, instProc));
 -    if (!ctx->isValid()) {
 +    if (!ctx->isValid() && createVkSurface != nullptr) {
          return nullptr;
      }
      return ctx;
 diff --git a/tools/sk_app/win/VulkanWindowContext_win.cpp 
b/tools/sk_app/win/VulkanWindowContext_win.cpp
-index 909c96127b..35e063ae28 100644
+index 976c42556e..c8f6b162bf 100644
 --- a/tools/sk_app/win/VulkanWindowContext_win.cpp
 +++ b/tools/sk_app/win/VulkanWindowContext_win.cpp
-@@ -30,7 +30,7 @@ std::unique_ptr<WindowContext> MakeVulkanForWin(HWND hwnd, 
const DisplayParams&
+@@ -29,7 +29,7 @@ std::unique_ptr<WindowContext> MakeVulkanForWin(HWND hwnd, 
const DisplayParams&
          return nullptr;
      }
  
@@ -845,7 +851,7 @@ index 909c96127b..35e063ae28 100644
          static PFN_vkCreateWin32SurfaceKHR createWin32SurfaceKHR = nullptr;
          if (!createWin32SurfaceKHR) {
              createWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)
-@@ -54,6 +54,9 @@ std::unique_ptr<WindowContext> MakeVulkanForWin(HWND hwnd, 
const DisplayParams&
+@@ -53,6 +53,9 @@ std::unique_ptr<WindowContext> MakeVulkanForWin(HWND hwnd, 
const DisplayParams&
  
          return surface;
      };
@@ -855,10 +861,10 @@ index 909c96127b..35e063ae28 100644
  
      auto canPresent = [instProc] (VkInstance instance, VkPhysicalDevice 
physDev,
                                    uint32_t queueFamilyIndex) {
-@@ -71,7 +74,7 @@ std::unique_ptr<WindowContext> MakeVulkanForWin(HWND hwnd, 
const DisplayParams&
+@@ -70,7 +73,7 @@ std::unique_ptr<WindowContext> MakeVulkanForWin(HWND hwnd, 
const DisplayParams&
  
      std::unique_ptr<WindowContext> ctx(
-             new VulkanWindowContext(params, createVkSurface, canPresent, 
instProc, devProc));
+             new VulkanWindowContext(params, createVkSurface, canPresent, 
instProc));
 -    if (!ctx->isValid()) {
 +    if (!ctx->isValid() && createVkSurface != nullptr) {
          return nullptr;
diff --git a/external/skia/source/skia_opts.cxx 
b/external/skia/source/skia_opts.cxx
index 9bfe04e14459..be728d600111 100644
--- a/external/skia/source/skia_opts.cxx
+++ b/external/skia/source/skia_opts.cxx
@@ -5,6 +5,8 @@
 
 #include <skia_opts.hxx>
 
+#include "include/private/SkOnce.h"
+
 #if defined __GNUC__
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wshadow"
diff --git a/external/skia/ubsan.patch.0 b/external/skia/ubsan.patch.1
similarity index 57%
rename from external/skia/ubsan.patch.0
rename to external/skia/ubsan.patch.1
index c249b02f3f14..005fdfebf639 100644
--- a/external/skia/ubsan.patch.0
+++ b/external/skia/ubsan.patch.1
@@ -1,6 +1,8 @@
---- include/private/GrContext_Base.h
-+++ include/private/GrContext_Base.h
-@@ -20,7 +20,7 @@
+diff --git a/include/private/gpu/ganesh/GrContext_Base.h 
b/include/private/gpu/ganesh/GrContext_Base.h
+index 847e76f232..e27d9454f8 100644
+--- a/include/private/gpu/ganesh/GrContext_Base.h
++++ b/include/private/gpu/ganesh/GrContext_Base.h
+@@ -20,7 +20,7 @@ class GrDirectContext;
  class GrImageContext;
  class GrRecordingContext;
  
@@ -9,7 +11,7 @@
  public:
      ~GrContext_Base() override;
  
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,7 @@ public:
      /*
       * The 3D API backing this context
       */
@@ -18,7 +20,7 @@
  
      /*
       * Retrieve the default GrBackendFormat for a given SkColorType and 
renderability.
-@@ -41,9 +41,9 @@
+@@ -41,16 +41,16 @@ public:
       *
       * The caller should check that the returned format is valid.
       */
@@ -28,5 +30,13 @@
 -    SK_API GrBackendFormat compressedBackendFormat(SkImage::CompressionType) 
const;
 +    GrBackendFormat compressedBackendFormat(SkImage::CompressionType) const;
  
+     /**
+      * Gets the maximum supported sample count for a color type. 1 is 
returned if only non-MSAA
+      * rendering is supported for the color type. 0 is returned if rendering 
to this color type
+      * is not supported at all.
+      */
+-    SK_API int maxSurfaceSampleCountForColorType(SkColorType colorType) const;
++    int maxSurfaceSampleCountForColorType(SkColorType colorType) const;
+ 
      // TODO: When the public version is gone, rename to refThreadSafeProxy 
and add raw ptr ver.
      sk_sp<GrContextThreadSafeProxy> threadSafeProxy();
diff --git a/external/skia/vk_mem_alloc.patch.1 
b/external/skia/vk_mem_alloc.patch.1
new file mode 100644
index 000000000000..94f2504cbd52
--- /dev/null
+++ b/external/skia/vk_mem_alloc.patch.1
@@ -0,0 +1,19639 @@
+diff --git a/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.h 
b/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.h
+index 1c6212bd47..756175b4e7 100644
+--- a/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.h
++++ b/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.h
+@@ -32,7 +32,7 @@
+ #define VULKAN_H_
+ #define GR_NEEDED_TO_DEFINE_VULKAN_H
+ #endif
+-#include "vk_mem_alloc.h"
++#include "include/vk_mem_alloc.h"
+ #ifdef GR_NEEDED_TO_DEFINE_VULKAN_H
+ #undef VULKAN_H_
+ #endif
+diff --git a/third_party/vulkanmemoryallocator/include/LICENSE.txt 
b/third_party/vulkanmemoryallocator/include/LICENSE.txt
+new file mode 100644
+index 0000000000..dbfe253391
+--- /dev/null
++++ b/third_party/vulkanmemoryallocator/include/LICENSE.txt
+@@ -0,0 +1,19 @@
++Copyright (c) 2017-2018 Advanced Micro Devices, Inc. All rights reserved.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE.
+diff --git a/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h 
b/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h
+new file mode 100644
+index 0000000000..90410b56af
+--- /dev/null
++++ b/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h
+@@ -0,0 +1,19595 @@
++//
++// Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved.
++//
++// Permission is hereby granted, free of charge, to any person obtaining a 
copy
++// of this software and associated documentation files (the "Software"), to 
deal
++// in the Software without restriction, including without limitation the 
rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++//
++
++#ifndef AMD_VULKAN_MEMORY_ALLOCATOR_H
++#define AMD_VULKAN_MEMORY_ALLOCATOR_H
++
++/** \mainpage Vulkan Memory Allocator
++
++<b>Version 3.0.1-development (2022-03-28)</b>
++
++Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved. \n
++License: MIT
++
++<b>API documentation divided into groups:</b> [Modules](modules.html)
++
++\section main_table_of_contents Table of contents
++
++- <b>User guide</b>
++  - \subpage quick_start
++    - [Project setup](@ref quick_start_project_setup)
++    - [Initialization](@ref quick_start_initialization)
++    - [Resource allocation](@ref quick_start_resource_allocation)
++  - \subpage choosing_memory_type
++    - [Usage](@ref choosing_memory_type_usage)
++    - [Required and preferred flags](@ref 
choosing_memory_type_required_preferred_flags)
++    - [Explicit memory types](@ref choosing_memory_type_explicit_memory_types)
++    - [Custom memory pools](@ref choosing_memory_type_custom_memory_pools)
++    - [Dedicated allocations](@ref choosing_memory_type_dedicated_allocations)
++  - \subpage memory_mapping
++    - [Mapping functions](@ref memory_mapping_mapping_functions)
++    - [Persistently mapped memory](@ref 
memory_mapping_persistently_mapped_memory)
++    - [Cache flush and invalidate](@ref memory_mapping_cache_control)
++  - \subpage staying_within_budget
++    - [Querying for budget](@ref staying_within_budget_querying_for_budget)
++    - [Controlling memory usage](@ref 
staying_within_budget_controlling_memory_usage)
++  - \subpage resource_aliasing
++  - \subpage custom_memory_pools
++    - [Choosing memory type index](@ref custom_memory_pools_MemTypeIndex)
++    - [Linear allocation algorithm](@ref linear_algorithm)
++      - [Free-at-once](@ref linear_algorithm_free_at_once)
++      - [Stack](@ref linear_algorithm_stack)
++      - [Double stack](@ref linear_algorithm_double_stack)
++      - [Ring buffer](@ref linear_algorithm_ring_buffer)
++  - \subpage defragmentation
++  - \subpage statistics
++    - [Numeric statistics](@ref statistics_numeric_statistics)
++    - [JSON dump](@ref statistics_json_dump)
++  - \subpage allocation_annotation
++    - [Allocation user data](@ref allocation_user_data)
++    - [Allocation names](@ref allocation_names)
++  - \subpage virtual_allocator
++  - \subpage debugging_memory_usage
++    - [Memory initialization](@ref debugging_memory_usage_initialization)
++    - [Margins](@ref debugging_memory_usage_margins)
++    - [Corruption detection](@ref debugging_memory_usage_corruption_detection)
++  - \subpage opengl_interop
++- \subpage usage_patterns
++    - [GPU-only resource](@ref usage_patterns_gpu_only)
++    - [Staging copy for upload](@ref usage_patterns_staging_copy_upload)
++    - [Readback](@ref usage_patterns_readback)
++    - [Advanced data uploading](@ref usage_patterns_advanced_data_uploading)
++    - [Other use cases](@ref usage_patterns_other_use_cases)
++- \subpage configuration
++  - [Pointers to Vulkan functions](@ref config_Vulkan_functions)
++  - [Custom host memory allocator](@ref custom_memory_allocator)
++  - [Device memory allocation callbacks](@ref allocation_callbacks)
++  - [Device heap memory limit](@ref heap_memory_limit)
++- <b>Extension support</b>
++    - \subpage vk_khr_dedicated_allocation
++    - \subpage enabling_buffer_device_address
++    - \subpage vk_ext_memory_priority
++    - \subpage vk_amd_device_coherent_memory
++- \subpage general_considerations
++  - [Thread safety](@ref general_considerations_thread_safety)
++  - [Versioning and compatibility](@ref 
general_considerations_versioning_and_compatibility)
++  - [Validation layer warnings](@ref 
general_considerations_validation_layer_warnings)
++  - [Allocation algorithm](@ref general_considerations_allocation_algorithm)
++  - [Features not supported](@ref 
general_considerations_features_not_supported)
++
++\section main_see_also See also
++
++- [**Product page on 
GPUOpen**](https://gpuopen.com/gaming-product/vulkan-memory-allocator/)
++- [**Source repository on 
GitHub**](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator)
++
++\defgroup group_init Library initialization
++
++\brief API elements related to the initialization and management of the 
entire library, especially #VmaAllocator object.
++
++\defgroup group_alloc Memory allocation
++
++\brief API elements related to the allocation, deallocation, and management 
of Vulkan memory, buffers, images.
++Most basic ones being: vmaCreateBuffer(), vmaCreateImage().
++
++\defgroup group_virtual Virtual allocator
++
++\brief API elements related to the mechanism of \ref virtual_allocator - 
using the core allocation algorithm
++for user-defined purpose without allocating any real GPU memory.
++
++\defgroup group_stats Statistics
++
++\brief API elements that query current status of the allocator, from memory 
usage, budget, to full dump of the internal state in JSON format.
++See documentation chapter: \ref statistics.
++*/
++
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#ifndef VULKAN_H_
++    #include <vulkan/vulkan.h>
++#endif
++
++// Define this macro to declare maximum supported Vulkan version in format 
AAABBBCCC,
++// where AAA = major, BBB = minor, CCC = patch.
++// If you want to use version > 1.0, it still needs to be enabled via 
VmaAllocatorCreateInfo::vulkanApiVersion.
++#if !defined(VMA_VULKAN_VERSION)
++    #if defined(VK_VERSION_1_3)
++        #define VMA_VULKAN_VERSION 1003000
++    #elif defined(VK_VERSION_1_2)
++        #define VMA_VULKAN_VERSION 1002000
++    #elif defined(VK_VERSION_1_1)
++        #define VMA_VULKAN_VERSION 1001000
++    #else
++        #define VMA_VULKAN_VERSION 1000000
++    #endif
++#endif
++
++#if defined(__ANDROID__) && defined(VK_NO_PROTOTYPES) && 
VMA_STATIC_VULKAN_FUNCTIONS
++    extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
++    extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
++    extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
++    extern PFN_vkGetPhysicalDeviceMemoryProperties 
vkGetPhysicalDeviceMemoryProperties;
++    extern PFN_vkAllocateMemory vkAllocateMemory;
++    extern PFN_vkFreeMemory vkFreeMemory;
++    extern PFN_vkMapMemory vkMapMemory;
++    extern PFN_vkUnmapMemory vkUnmapMemory;
++    extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
++    extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
++    extern PFN_vkBindBufferMemory vkBindBufferMemory;
++    extern PFN_vkBindImageMemory vkBindImageMemory;
++    extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
++    extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
++    extern PFN_vkCreateBuffer vkCreateBuffer;
++    extern PFN_vkDestroyBuffer vkDestroyBuffer;
++    extern PFN_vkCreateImage vkCreateImage;
++    extern PFN_vkDestroyImage vkDestroyImage;
++    extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
++    #if VMA_VULKAN_VERSION >= 1001000
++        extern PFN_vkGetBufferMemoryRequirements2 
vkGetBufferMemoryRequirements2;
++        extern PFN_vkGetImageMemoryRequirements2 
vkGetImageMemoryRequirements2;
++        extern PFN_vkBindBufferMemory2 vkBindBufferMemory2;

... etc. - the rest is truncated

Reply via email to