From d59ac5e32c7f5eb9b672ec166d715a2ad56ceb3a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 25 Jun 2025 17:58:06 +0100 Subject: [PATCH 001/146] Roll skia on m138 (canvaskit/0.40.0-456-g114d33c629 to canvaskit/0.40.0-457-ga46d5732d9) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index 114d33c6..a46d5732 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit 114d33c62998ce5c16f899b9123c22000ca06ddd +Subproject commit a46d5732d9fca93eaec23e502e2eef814b707e6b From 45ece541eabb80d8b08c40e14720e5de2f3c7b72 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 25 Jun 2025 17:59:23 +0100 Subject: [PATCH 002/146] Upgrade skia to m139 (canvaskit/0.40.0-457-ga46d5732d9 to canvaskit/0.40.0-787-g0f94c19331) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index a46d5732..0f94c193 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit a46d5732d9fca93eaec23e502e2eef814b707e6b +Subproject commit 0f94c19331c51259e23bee547b2657b5ad7dff26 From 28d707bd1598e0e2060be461d62d489ea086d1ad Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 25 Jun 2025 18:03:50 +0100 Subject: [PATCH 003/146] Bump version up to 139.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index f0e2b708..bbaf710a 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ pass NAME = 'skia-python' -__version__ = '138.0' +__version__ = '139.0' SKIA_PATH = os.getenv('SKIA_PATH', 'skia') SKIA_OUT_PATH = os.getenv( From 76c1c520ebf516c715e74ff1d633a3ddfe340c5e Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 25 Jun 2025 18:11:08 +0100 Subject: [PATCH 004/146] m139 patch plus adjustments --- patch/skia-m139-minimize-download.patch | 70 +++++++++++++++++++++++++ scripts/build_Linux.sh | 2 +- scripts/build_Windows.sh | 2 +- scripts/build_macOS.sh | 2 +- 4 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 patch/skia-m139-minimize-download.patch diff --git a/patch/skia-m139-minimize-download.patch b/patch/skia-m139-minimize-download.patch new file mode 100644 index 00000000..0ac82872 --- /dev/null +++ b/patch/skia-m139-minimize-download.patch @@ -0,0 +1,70 @@ +diff --git a/DEPS b/DEPS +index 6b685a0..c2f3e74 100644 +--- a/DEPS ++++ b/DEPS +@@ -31,53 +31,18 @@ vars = { + # ./tools/git-sync-deps + deps = { + "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", +- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@5220e634850ec26f4b4b0f305ba2a69cf0bc55df", +- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", +- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", +- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. +- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. +- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@d03fe7eda12dfce1578bf69da2814f89fd78c1e9", +- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", +- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", +- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@04dc59d2c83238cb1fcb49083e5e416643a899ce", +- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", + "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", +- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", +- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", + "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", + "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", +- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", + "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", +- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", +- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", +- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", +- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", +- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", + "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", +- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", + "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", + "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", +- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", +- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", +- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", +- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", +- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", + "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", +- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@0ce9bc68d3fc995f76dcab4771c26471100ce759", + "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", +- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. +- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@31127c60fb320a7eedf48289aa5c435bbb020659", +- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@2a611a970fdbc41ac2e3e328802aed9985352dca", +- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@108b19e5c6979f496deffad4acbe354237afa7d3", +- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", +- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@10739e8e00a7b6f74d22dd0a547f1406ff1f5eb9", +- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@e3fc64396755191b3c51e5c57d0454872e7fa487", +- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@72665ee1e50db3d949080df8d727dffa8067f5f8", +- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", +- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", + "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", + "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", + +diff --git a/bin/activate-emsdk b/bin/activate-emsdk +index 687ca9f..7167d8d 100755 +--- a/bin/activate-emsdk ++++ b/bin/activate-emsdk +@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') + EMSDK_VERSION = '3.1.44' + + def main(): ++ return + if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: + # This platform cannot install emsdk at the provided version. See + # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index 461724a0..488aa66f 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -19,7 +19,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m138-minimize-download.patch && \ + patch -p1 < ../patch/skia-m139-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ python3 tools/git-sync-deps && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 85df523e..f6795c38 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -12,7 +12,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m138-minimize-download.patch && \ + patch -p1 < ../patch/skia-m139-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ patch -p1 < ../patch/0001-gn-Remove-msvc-env-setting.patch && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index 25869913..568a4662 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -22,7 +22,7 @@ function apply_patch { } cd skia && \ - patch -p1 < ../patch/skia-m138-minimize-download.patch && \ + patch -p1 < ../patch/skia-m139-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ bin/gn gen out/Release --args=" From d9b3d4fa42c73cc5b21cb43f667996c06a57ffbb Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 25 Jun 2025 22:18:41 +0100 Subject: [PATCH 005/146] m139 changes --- setup.py | 9 ++++++--- src/skia/Canvas.cpp | 8 ++++---- src/skia/Font.cpp | 32 ++++++++++++++++---------------- src/skia/Matrix.cpp | 12 +++++++----- src/skia/Path.cpp | 18 +++++++++--------- src/skia/PathEffect.cpp | 2 +- src/skia/Rect.cpp | 6 +++--- src/skia/SkTextOnPath.cpp | 7 +++---- src/skia/TextBlob.cpp | 10 +++++----- 9 files changed, 54 insertions(+), 50 deletions(-) diff --git a/setup.py b/setup.py index bbaf710a..ef51dfeb 100644 --- a/setup.py +++ b/setup.py @@ -35,7 +35,8 @@ EXTRA_OBJECTS = list( ) + [os.path.join(SKIA_OUT_PATH, 'svg.lib'), os.path.join(SKIA_OUT_PATH, 'skresources.lib'), os.path.join(SKIA_OUT_PATH, 'skia.lib'), os.path.join(SKIA_OUT_PATH, 'skparagraph.lib'), os.path.join(SKIA_OUT_PATH, 'skshaper.lib'), - os.path.join(SKIA_OUT_PATH, 'skunicode_icu.lib'), os.path.join(SKIA_OUT_PATH, 'skunicode_core.lib')] + os.path.join(SKIA_OUT_PATH, 'skunicode_icu.lib'), os.path.join(SKIA_OUT_PATH, 'skunicode_core.lib'), + os.path.join(SKIA_OUT_PATH, 'pathops.lib')] EXTRA_COMPILE_ARGS = [ '/std:c++17', # c++20 fails. '/DVERSION_INFO=%s' % __version__, @@ -69,7 +70,8 @@ EXTRA_OBJECTS = list( ) + [os.path.join(SKIA_OUT_PATH, 'libsvg.a'), os.path.join(SKIA_OUT_PATH, 'libskia.a'), os.path.join(SKIA_OUT_PATH, 'libskparagraph.a'), os.path.join(SKIA_OUT_PATH, 'libskshaper.a'), - os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a')] + os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a'), + os.path.join(SKIA_OUT_PATH, 'libpathops.a')] EXTRA_COMPILE_ARGS = [ '-std=c++17', '-stdlib=libc++', @@ -104,7 +106,8 @@ EXTRA_OBJECTS = list( ) + [os.path.join(SKIA_OUT_PATH, 'libsvg.a'), os.path.join(SKIA_OUT_PATH, 'libskresources.a'), os.path.join(SKIA_OUT_PATH, 'libskia.a'), os.path.join(SKIA_OUT_PATH, 'libskparagraph.a'), os.path.join(SKIA_OUT_PATH, 'libskshaper.a'), - os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a')] + os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a'), + os.path.join(SKIA_OUT_PATH, 'libpathops.a')] EXTRA_COMPILE_ARGS = [ '-std=c++17', '-fvisibility=hidden', diff --git a/src/skia/Canvas.cpp b/src/skia/Canvas.cpp index a87b4663..8957374d 100644 --- a/src/skia/Canvas.cpp +++ b/src/skia/Canvas.cpp @@ -1346,7 +1346,7 @@ canvas // &SkCanvas::drawPoints, [] (SkCanvas& canvas, SkCanvas::PointMode mode, const std::vector& points, const SkPaint &paint) { - canvas.drawPoints(mode, points.size(), &points[0], paint); + canvas.drawPoints(mode, {&points[0], points.size()}, paint); }, R"docstring( Draws pts using clip, :py:class:`Matrix` and :py:class:`Paint` @@ -2318,9 +2318,9 @@ canvas if (!colors.empty() && colors.size() != xform.size()) throw std::runtime_error( "colors must have the same length with xform."); - canvas.drawAtlas(atlas, &xform[0], &tex[0], - (colors.empty()) ? nullptr : &colors[0], - xform.size(), mode, options, cullRect, paint); + canvas.drawAtlas(atlas, {&xform[0], xform.size()}, {&tex[0], tex.size()}, + {(colors.empty()) ? nullptr : &colors[0], + colors.size()}, mode, options, cullRect, paint); }, R"docstring( Draws a set of sprites from atlas, using clip, :py:class:`Matrix`, and diff --git a/src/skia/Font.cpp b/src/skia/Font.cpp index ea31a519..9dd4e4b4 100644 --- a/src/skia/Font.cpp +++ b/src/skia/Font.cpp @@ -454,14 +454,14 @@ typeface )docstring") .def("getVariationDesignParameters", [] (const SkTypeface& typeface) { - auto count = typeface.getVariationDesignParameters(nullptr, 0); + auto count = typeface.getVariationDesignParameters({nullptr, 0}); if (count == -1) throw std::runtime_error("Failed to get; Likely no parameter"); std::vector params(count); if (count == 0) return params; auto actualCount = typeface.getVariationDesignParameters( - params.data(), params.size()); + {params.data(), params.size()}); if (actualCount == -1) throw std::runtime_error("Failed to get"); return params; @@ -474,12 +474,12 @@ typeface )docstring") .def("getVariationDesignPosition", [] (const SkTypeface& typeface) { - auto count = typeface.getVariationDesignPosition(nullptr, 0); + auto count = typeface.getVariationDesignPosition({nullptr, 0}); if (count == -1) throw std::runtime_error("Failed to get; Likely no position"); std::vector coords(count); auto actualCount = typeface.getVariationDesignPosition( - coords.data(), coords.size()); + {coords.data(), coords.size()}); if (actualCount == -1) throw std::runtime_error("Failed to get"); return coords; @@ -523,7 +523,7 @@ typeface .def("unicharsToGlyphs", [] (const SkTypeface& typeface, const std::vector& chars) { std::vector glyphs(chars.size()); - typeface.unicharsToGlyphs(&chars[0], chars.size(), &glyphs[0]); + typeface.unicharsToGlyphs({&chars[0], chars.size()}, {&glyphs[0], glyphs.size()}); return glyphs; }, R"docstring( @@ -555,7 +555,7 @@ typeface .def("getTableTags", [] (const SkTypeface& typeface) { std::vector tags(typeface.countTables()); - size_t size = typeface.getTableTags(&tags[0]); + size_t size = typeface.readTableTags({&tags[0], tags.size()}); if (size < tags.size()) throw std::runtime_error("Failed to get table tags."); return tags; @@ -612,7 +612,7 @@ typeface const std::vector& glyphs) -> py::object { std::vector adjustments(glyphs.size() - 1); auto result = typeface.getKerningPairAdjustments( - &glyphs[0], glyphs.size(), (glyphs.size() > 1) ? &adjustments[0] : nullptr); + {&glyphs[0], glyphs.size()}, {(glyphs.size() > 1) ? &adjustments[0] : nullptr, adjustments.size()}); if (!result) { // Kerning is not supported for this typeface. return py::none(); @@ -1314,7 +1314,7 @@ font int count = font.countText(&text[0], text.size(), encoding); std::vector glyphs(count); font.textToGlyphs( - &text[0], text.size(), encoding, &glyphs[0], glyphs.size()); + &text[0], text.size(), encoding, {&glyphs[0], glyphs.size()}); return glyphs; }, R"docstring( @@ -1354,7 +1354,7 @@ font .def("unicharsToGlyphs", [] (const SkFont& font, const std::vector& uni) { std::vector glyphs(uni.size()); - font.unicharsToGlyphs(&uni[0], uni.size(), &glyphs[0]); + font.unicharsToGlyphs({&uni[0], uni.size()}, {&glyphs[0], glyphs.size()}); return glyphs; }, py::arg("uni")) @@ -1401,7 +1401,7 @@ font .def("getWidths", [] (const SkFont& font, const std::vector& glyphs) { std::vector width(glyphs.size()); - font.getWidths(&glyphs[0], glyphs.size(), &width[0]); + font.getWidths({&glyphs[0], glyphs.size()}, {&width[0], width.size()}); return width; }, R"docstring( @@ -1417,7 +1417,7 @@ font std::vector width(glyphs.size()); std::vector bounds(glyphs.size()); font.getWidthsBounds( - &glyphs[0], glyphs.size(), &width[0], &bounds[0], paint); + {&glyphs[0], glyphs.size()}, {&width[0], width.size()}, {&bounds[0], bounds.size()}, paint); return py::make_tuple(width, bounds); }, R"docstring( @@ -1434,7 +1434,7 @@ font [] (const SkFont& font, const std::vector& glyphs, const SkPaint* paint) { std::vector bounds(glyphs.size()); - font.getBounds(&glyphs[0], glyphs.size(), &bounds[0], paint); + font.getBounds({&glyphs[0], glyphs.size()}, {&bounds[0], bounds.size()}, paint); return bounds; }, R"docstring( @@ -1454,7 +1454,7 @@ font [] (const SkFont& font, const std::vector& glyphs, const SkPoint& origin) { std::vector pos(glyphs.size()); - font.getPos(&glyphs[0], glyphs.size(), &pos[0], origin); + font.getPos({&glyphs[0], glyphs.size()}, {&pos[0], pos.size()}, origin); return pos; }, R"docstring( @@ -1472,7 +1472,7 @@ font [] (const SkFont& font, const std::vector& glyphs, const SkScalar& origin) { std::vector xpos(glyphs.size()); - font.getXPos(&glyphs[0], glyphs.size(), &xpos[0], origin); + font.getXPos({&glyphs[0], glyphs.size()}, {&xpos[0], xpos.size()}, origin); return xpos; }, R"docstring( @@ -1509,8 +1509,8 @@ font std::vector paths; paths.reserve(glyphIDs.size()); font.getPaths( - glyphIDs.data(), - glyphIDs.size(), + {glyphIDs.data(), + glyphIDs.size()}, [] (const SkPath* pathOrNull, const SkMatrix& mx, void* ctx) { auto paths_ = static_cast*>(ctx); if (pathOrNull) { diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index a0eb9128..62991092 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1291,7 +1291,7 @@ matrix [] (const SkMatrix& matrix, std::vector& pts) { if (pts.empty()) return pts; - matrix.mapPoints(&pts[0], &pts[0], pts.size()); + matrix.mapPoints({&pts[0], pts.size()}, {&pts[0], pts.size()}); return pts; }, R"docstring( @@ -1325,7 +1325,7 @@ matrix [] (const SkMatrix& matrix, std::vector& pts) -> py::object { if (pts.empty()) return py::cast(pts); - matrix.mapHomogeneousPoints(&pts[0], &pts[0], pts.size()); + matrix.mapHomogeneousPoints({&pts[0], pts.size()}, {&pts[0], pts.size()}); return py::cast(pts); }, R"docstring( @@ -1354,7 +1354,7 @@ matrix if (pts.empty()) return py::cast(pts); std::vector dst(pts.size()); - matrix.mapHomogeneousPoints(&dst[0], &pts[0], pts.size()); + matrix.mapPointsToHomogeneous({&dst[0], dst.size()}, {&pts[0], pts.size()}); return py::cast(dst); }, R"docstring( @@ -1365,7 +1365,9 @@ matrix )docstring", py::arg("pts")) .def("mapXY", - py::overload_cast(&SkMatrix::mapXY, py::const_), + [] (const SkMatrix& matrix, SkScalar x, SkScalar y) { + return matrix.mapPoint({x, y}); + }, R"docstring( Returns :py:class:`Point` (x, y) multiplied by :py:class:`Matrix`. @@ -1390,7 +1392,7 @@ matrix [] (const SkMatrix& matrix, std::vector& src) { if (src.empty()) return src; - matrix.mapVectors(&src[0], &src[0], src.size()); + matrix.mapVectors({&src[0], src.size()}, {&src[0], src.size()}); return src; }, R"docstring( diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index 0190f680..8234ffc1 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -380,8 +380,8 @@ path SkPathFillType fillType, bool isVolatile) { return SkPath::Make( - points.data(), points.size(), verbs.data(), verbs.size(), - conicWeights.data(), conicWeights.size(), fillType, isVolatile); + {points.data(), points.size()}, {verbs.data(), verbs.size()}, + {conicWeights.data(), conicWeights.size()}, fillType, isVolatile); }, R"docstring( Create a new path with the specified segments. @@ -434,7 +434,7 @@ path [] (const std::vector& points, bool isClosed, SkPathFillType fillType, bool isVolatile) { return SkPath::Polygon( - points.data(), points.size(), isClosed, fillType, isVolatile); + {points.data(), points.size()}, isClosed, fillType, isVolatile); }, py::arg("points"), py::arg("isClosed"), py::arg_v("fillType", SkPathFillType::kWinding, "skia.PathFillType.kWinding"), @@ -710,7 +710,7 @@ path if (max == 0) max = path.countVerbs(); std::vector points(max); - auto length = path.getPoints(&points[0], max); + auto length = path.getPoints({&points[0], max}); if (length < max) points.erase(points.begin() + length, points.end()); return points; @@ -741,7 +741,7 @@ path if (max == 0) max = path.countVerbs(); std::vector verbs(max); - auto length = path.getVerbs(&verbs[0], max); + auto length = path.getVerbs({&verbs[0], max}); if (length < max) verbs.erase(verbs.begin() + length, verbs.end()); std::vector verbs_(verbs.size()); @@ -1604,7 +1604,7 @@ path << " elements)."; throw py::value_error(stream.str()); } - return path.addRoundRect(rect, &radii_[0], dir); + return path.addRoundRect(rect, {&radii_[0], radii_.size()}, dir); }, R"docstring( Appends :py:class:`RRect` to :py:class:`Path`, creating a new closed @@ -1658,7 +1658,7 @@ path py::arg("rrect"), py::arg("dir"), py::arg("start")) .def("addPoly", [] (SkPath& path, const std::vector& pts, bool close) { - return path.addPoly(&pts[0], pts.size(), close); + return path.addPoly({&pts[0], pts.size()}, close); }, R"docstring( Adds contour created from pts. @@ -2291,7 +2291,7 @@ PathBuilder .def("close", &SkPathBuilder::close) .def("polylineTo", [] (SkPathBuilder& self, const std::vector& points) { - return self.polylineTo(points.data(), points.size()); + return self.polylineTo({points.data(), points.size()}); }, R"docstring( Append a series of lineTo(...) @@ -2457,7 +2457,7 @@ PathBuilder .def("addPolygon", [] (SkPathBuilder& self, const std::vector& points, bool isClosed) { - return self.addPolygon(points.data(), points.size(), isClosed); + return self.addPolygon({points.data(), points.size()}, isClosed); }, py::arg("points"), py::arg("isClosed")) .def("incReserve", diff --git a/src/skia/PathEffect.cpp b/src/skia/PathEffect.cpp index a01f2e7d..376e1259 100644 --- a/src/skia/PathEffect.cpp +++ b/src/skia/PathEffect.cpp @@ -330,7 +330,7 @@ py::class_(m, "DashPathEffect") .def_static("Make", [] (const std::vector& intervals, SkScalar phase) { return SkDashPathEffect::Make( - &intervals[0], intervals.size(), phase); + {&intervals[0], intervals.size()}, phase); }, R"docstring( For example: if intervals[] = {10, 20}, count = 2, and phase = 25, this diff --git a/src/skia/Rect.cpp b/src/skia/Rect.cpp index 4585eaf5..11b3973f 100644 --- a/src/skia/Rect.cpp +++ b/src/skia/Rect.cpp @@ -868,7 +868,7 @@ py::class_(m, "Rect", R"docstring( py::arg("left"), py::arg("top"), py::arg("right"), py::arg("bottom")) .def("setBounds", [] (SkRect& rect, const std::vector& points) { - rect.setBounds(&points[0], points.size()); + rect.setBounds({&points[0], points.size()}); }, R"docstring( Sets to bounds of :py:class:`Point` array with count entries. @@ -884,7 +884,7 @@ py::class_(m, "Rect", R"docstring( py::arg("points")) .def("setBoundsCheck", [] (SkRect& rect, const std::vector& points) { - return rect.setBoundsCheck(&points[0], points.size()); + return rect.setBoundsCheck({&points[0], points.size()}); }, R"docstring( Sets to bounds of :py:class:`Point` array with count entries. @@ -902,7 +902,7 @@ py::class_(m, "Rect", R"docstring( py::arg("points")) .def("setBoundsNoCheck", [] (SkRect& rect, const std::vector& points) { - rect.setBoundsNoCheck(&points[0], points.size()); + rect.setBoundsNoCheck({&points[0], points.size()}); }, R"docstring( Sets to bounds of :py:class:`Point` pts array with count entries. diff --git a/src/skia/SkTextOnPath.cpp b/src/skia/SkTextOnPath.cpp index fd3cc884..06c15e09 100644 --- a/src/skia/SkTextOnPath.cpp +++ b/src/skia/SkTextOnPath.cpp @@ -17,10 +17,9 @@ static void morphpoints(SkPoint dst[], const SkPoint src[], int count, SkPathMeasure& meas, const SkMatrix& matrix) { for (int i = 0; i < count; i++) { - SkPoint pos; SkVector tangent; - matrix.mapXY(src[i].fX, src[i].fY, &pos); + SkPoint pos = matrix.mapPoint({src[i].fX, src[i].fY}); SkScalar sx = pos.fX; SkScalar sy = pos.fY; @@ -101,9 +100,9 @@ void SkVisitTextOnPath(const void* text, size_t byteLength, const SkPaint& paint int glyphCount = font.countText(text, byteLength, SkTextEncoding::kUTF8); if (glyphCount <= 0) return; std::vector glyphs(glyphCount); - font.textToGlyphs(text, byteLength, SkTextEncoding::kUTF8, glyphs.data(), glyphCount); + font.textToGlyphs(text, byteLength, SkTextEncoding::kUTF8, {glyphs.data(), glyphCount}); std::vector advances(glyphCount); - font.getWidths(glyphs.data(), glyphCount, advances.data()); + font.getWidths({glyphs.data(), glyphCount}, {advances.data(), advances.size()}); // Prepare path measuring SkPathMeasure meas(follow, false); diff --git a/src/skia/TextBlob.cpp b/src/skia/TextBlob.cpp index 8994b642..558b3c6d 100644 --- a/src/skia/TextBlob.cpp +++ b/src/skia/TextBlob.cpp @@ -94,7 +94,7 @@ textblob "len(text) = {} does not match len(pos) = {}").format( count, pos_.size())); return SkTextBlob::MakeFromPosText( - text.c_str(), text.size(), &pos_[0], font, encoding); + text.c_str(), text.size(), {&pos_[0], pos_.size()}, font, encoding); }), R"docstring( Creates :py:class:`TextBlob` with a single run. @@ -286,7 +286,7 @@ textblob throw py::value_error(stream.str()); } return SkTextBlob::MakeFromPosTextH( - text.c_str(), text.size(), &xpos_[0], constY, font, encoding); + text.c_str(), text.size(), {&xpos_[0], xpos_.size()}, constY, font, encoding); }, R"docstring( Returns a textblob built from a single run of text with x-positions and @@ -316,7 +316,7 @@ textblob throw std::runtime_error( "text and pos must have the same number of elements."); return SkTextBlob::MakeFromPosText( - text.c_str(), text.size(), &pos[0], font, encoding); + text.c_str(), text.size(), {&pos[0], pos.size()}, font, encoding); }, R"docstring( Returns a textblob built from a single run of text with x-positions and @@ -344,7 +344,7 @@ textblob throw std::runtime_error( "text and xform must have the same number of elements."); return SkTextBlob::MakeFromRSXform( - text.c_str(), text.size(), &xform[0], font, encoding); + text.c_str(), text.size(), {&xform[0], xform.size()}, font, encoding); }, py::arg("text"), py::arg("xform"), py::arg("font"), py::arg_v("encoding", SkTextEncoding::kUTF8, "skia.TextEncoding.kUTF8")) @@ -399,7 +399,7 @@ textblobbuilder int glyphCount = font.countText(&text[0], text.size(), encoding); auto run = builder.allocRun(font, glyphCount, x, y, bounds); font.textToGlyphs( - &text[0], text.size(), encoding, run.glyphs, glyphCount); + &text[0], text.size(), encoding, {run.glyphs, glyphCount}); }, R"docstring( Sets a new run with glyphs. From cd8af0cd352f6653a7eb2951813d7f8bbe6ee3b8 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Jun 2025 00:38:18 +0100 Subject: [PATCH 006/146] Upstream main (post m139) fix for pdf breakage --- ...evert-gn-Split-pdf-and-xps-from-skia.patch | 210 ++++++++++++++++++ scripts/build_Linux.sh | 1 + scripts/build_Windows.sh | 1 + scripts/build_macOS.sh | 1 + 4 files changed, 213 insertions(+) create mode 100644 patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch diff --git a/patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch b/patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch new file mode 100644 index 00000000..5ffce7c1 --- /dev/null +++ b/patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch @@ -0,0 +1,210 @@ +From e5b9496b71237d3e63289c6fd8a7466d8db80a29 Mon Sep 17 00:00:00 2001 +From: Florin Malita +Date: Mon, 23 Jun 2025 19:07:15 -0700 +Subject: [PATCH] Revert "[gn] Split :pdf and :xps from :skia" + +This reverts commit 3f34cf7c2d940a9ed84bf131d6c33b7380e180a0. + +Reason for revert: breaking Android + +Original change's description: +> [gn] Split :pdf and :xps from :skia +> +> After https://skia-review.googlesource.com/c/skia/+/1008277/2, we end up +> with an implicit dependency cycle: +> +> :skia -> :pdf/:xps (SkClipStack_AsPath) -> //modules/pathops -> :skia +> +> To fix, remove pdf and xps deps from "core" :skia and add to leaf apps +> instead. +> +> Change-Id: Ibdd58a97672ab5f9566c71907ce9e664eb809d4a +> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1009616 +> Reviewed-by: Ben Wagner +> Commit-Queue: Florin Malita + +No-Presubmit: true +No-Tree-Checks: true +No-Try: true +Change-Id: I259449122b1b77894e841d3146487f5be8bebfba +Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1011517 +Auto-Submit: Florin Malita +Commit-Queue: Rubber Stamper +Bot-Commit: Rubber Stamper +Signed-off-by: Hin-Tak Leung +--- + BUILD.gn | 41 ++++++------------------------------- + bazel/exporter_tool/main.go | 4 ---- + gn/utils.gni | 6 ------ + 3 files changed, 6 insertions(+), 45 deletions(-) + +diff --git a/BUILD.gn b/BUILD.gn +index 0cdde0edfa..acdfb6d793 100644 +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -1257,22 +1257,12 @@ optional("graphite") { + } + } + +-skia_component("clipstack_utils") { +- deps = [ +- ":skia", +- "//modules/pathops", +- ] +- sources = skia_clipstack_utils_sources +-} +- + optional("pdf") { +- enabled = skia_use_zlib && skia_enable_pdf ++ enabled = skia_use_zlib && skia_enable_pdf && skia_use_libjpeg_turbo_decode && ++ skia_use_libjpeg_turbo_encode + public_defines = [ "SK_SUPPORT_PDF" ] + +- deps = [ +- ":clipstack_utils", +- "//third_party/zlib", +- ] ++ deps = [ "//third_party/zlib" ] + public = skia_pdf_public + sources = skia_pdf_sources + sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ] +@@ -1296,7 +1286,6 @@ optional("pdf_jpeg_helpers") { + optional("xps") { + enabled = skia_use_xps && is_win + public_defines = [ "SK_SUPPORT_XPS" ] +- deps = [ ":clipstack_utils" ] + public = skia_xps_public + sources = skia_xps_sources + } +@@ -1672,8 +1661,11 @@ skia_component("skia") { + ":gpu", + ":graphite", + ":jpeg_encode", ++ ":pdf", ++ ":pdf_jpeg_helpers", + ":png_encode_libpng", + ":webp_encode", ++ ":xps", + ] + + deps = [ +@@ -1731,10 +1723,6 @@ skia_component("skia") { + "src/sfnt/SkOTUtils.cpp", + ] + +- # TODO(fmalita): remove from skia_utils_private after clients are migrated to +- # skia_clipstack_utils_sources +- sources -= skia_clipstack_utils_sources +- + defines = [] + libs = [] + +@@ -1950,8 +1938,6 @@ if (skia_enable_tools) { + deps = [ + ":flags", + ":gpu_tool_utils", +- ":pdf", +- ":pdf_jpeg_helpers", + ":skia", + ":skia.h", + "modules/pathops", +@@ -2558,8 +2544,6 @@ if (skia_enable_tools) { + ":flags", + ":gm", + ":gpu_tool_utils", +- ":pdf", +- ":pdf_jpeg_helpers", + ":skia", + ":tool_utils", + "modules/skparagraph:bench", +@@ -2632,13 +2616,10 @@ if (skia_enable_tools) { + ":gm", + ":gpu_tool_utils", + ":hash_and_encode", +- ":pdf", +- ":pdf_jpeg_helpers", + ":skia", + ":tests", + ":tool_utils", + ":trace", +- ":xps", + "modules/pathops", + "modules/skottie", + "modules/skottie:utils", +@@ -2751,8 +2732,6 @@ if (skia_enable_tools) { + test_app("sktexttopdf") { + sources = [ "tools/using_skia_and_harfbuzz.cpp" ] + deps = [ +- ":pdf", +- ":pdf_jpeg_helpers", + ":skia", + "modules/pathops", + "modules/skshaper", +@@ -2853,8 +2832,6 @@ if (skia_enable_tools) { + deps = [ + ":flags", + ":gpu_tool_utils", +- ":pdf", +- ":pdf_jpeg_helpers", + ":skia", + "modules/jsonreader", + "modules/skottie:fuzz", +@@ -2903,8 +2880,6 @@ if (skia_enable_tools) { + ] + deps = [ + ":gm", +- ":pdf", +- ":pdf_jpeg_helpers", + ":skia", + ":tests", + ":tool_utils", +@@ -3084,8 +3059,6 @@ if (skia_enable_tools) { + ] + } + deps = [ +- ":pdf", +- ":pdf_jpeg_helpers", + ":skia", + ":skia.h", + "modules/skottie", +@@ -3306,8 +3279,6 @@ if (skia_enable_tools) { + deps += [ + ":flags", + ":gpu_tool_utils", +- ":pdf", +- ":pdf_jpeg_helpers", + ":skia", + ":tool_utils", + ] +diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go +index 77bc549ece..5201da4220 100644 +--- a/bazel/exporter_tool/main.go ++++ b/bazel/exporter_tool/main.go +@@ -449,10 +449,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ + "//src/utils:utils_skslc_hdrs", + "//src/utils:utils_skslc_srcs", + }}, +- {Var: "skia_clipstack_utils_sources", +- Rules: []string{ +- "//src/utils:clip_stack_utils", +- }}, + }, + }, + {GNI: "gn/xps.gni", Vars: []exporter.GNIFileListExportDesc{ +diff --git a/gn/utils.gni b/gn/utils.gni +index 42255ce6a3..080f89c98e 100644 +--- a/gn/utils.gni ++++ b/gn/utils.gni +@@ -120,9 +120,3 @@ skia_utils_private = [ + "$_src/utils/win/SkTScopedComPtr.h", + "$_src/utils/win/SkWGL_win.cpp", + ] +- +-# Generated by Bazel rule //src/utils:clip_stack_utils +-skia_clipstack_utils_sources = [ +- "$_src/utils/SkClipStackUtils.cpp", +- "$_src/utils/SkClipStackUtils.h", +-] +-- +2.49.0 + diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index 488aa66f..d39e104e 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -20,6 +20,7 @@ fi # Build skia cd skia && \ patch -p1 < ../patch/skia-m139-minimize-download.patch && \ + patch -p1 < ../patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ python3 tools/git-sync-deps && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index f6795c38..9b17d1ed 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -13,6 +13,7 @@ fi # Build skia cd skia && \ patch -p1 < ../patch/skia-m139-minimize-download.patch && \ + patch -p1 < ../patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ patch -p1 < ../patch/0001-gn-Remove-msvc-env-setting.patch && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index 568a4662..ecc331b6 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -23,6 +23,7 @@ function apply_patch { cd skia && \ patch -p1 < ../patch/skia-m139-minimize-download.patch && \ + patch -p1 < ../patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ bin/gn gen out/Release --args=" From e1b58ee08243c6f933d03cd15f4da5a8806a919c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Jun 2025 01:40:22 +0100 Subject: [PATCH 007/146] Revert "Backporting skia m139 fix to earlier skia for arm64 windows + freetype compatibility." This reverts commit bfccc584dce06cca033452f3b145aaa9f6a56ce1. --- patch/0001-gn-Remove-msvc-env-setting.patch | 146 -------------------- scripts/build_Windows.sh | 1 - 2 files changed, 147 deletions(-) delete mode 100644 patch/0001-gn-Remove-msvc-env-setting.patch diff --git a/patch/0001-gn-Remove-msvc-env-setting.patch b/patch/0001-gn-Remove-msvc-env-setting.patch deleted file mode 100644 index fc47345d..00000000 --- a/patch/0001-gn-Remove-msvc-env-setting.patch +++ /dev/null @@ -1,146 +0,0 @@ -From c6f2286a2795e36ff7b22b2c1030b2196d76e70e Mon Sep 17 00:00:00 2001 -From: Ben Wagner -Date: Tue, 27 May 2025 16:32:19 -0400 -Subject: [PATCH] [gn] Remove msvc env setting - -SetEnv.cmd has long been removed but kept alive by Skia packaging of -MSVC. Older MSVC compilers and Windows SDKs relied on a large number of -environment variables to be set when cross compiling, but this should no -longer be necessary. - -In addition, the MSVC ARM toolchains are now complete and no longer -require the host toolchain to be on the path. - -These improvements mean that it is no longer necessary to use `cmd.exe -/c` as a "compiler wrapper" to set up the environment. Because it is not -generally possible to properly escape such command lines this has caused -issues with any arguments which would require proper escaping such as -paths with spaces and special characters. - -This change drops support for building Skia for x86 or ARM64 with MSVC -from before VS2022, with the benefit of building for x86 or ARM64 -without extemely odd, undocumented, and limiting restrictions. - -Also add support for detecting MSVC 2022 before looking for 2019 or -2017. - -Bug: 420271794, 376381591 -Change-Id: I8591636aec31095b13db6dc1a376abfa23199ebd -Reviewed-on: https://skia-review.googlesource.com/c/skia/+/999356 -Reviewed-by: Kaylee Lubick ---- - gn/find_msvc.py | 17 ++++++++++------- - gn/toolchain/BUILD.gn | 24 ++++++++---------------- - 2 files changed, 18 insertions(+), 23 deletions(-) - -diff --git a/gn/find_msvc.py b/gn/find_msvc.py -index 108d576139..281a738900 100755 ---- a/gn/find_msvc.py -+++ b/gn/find_msvc.py -@@ -10,16 +10,19 @@ import subprocess - ''' - Look for the first match in the format - C:\\Program Files (x86)\\Microsoft Visual Studio\\${RELEASE}\\${VERSION}\\VC -+ C:\\Program Files\\Microsoft Visual Studio\\${RELEASE}\\${VERSION}\\VC -+If not found, use vswhere.exe. - ''' - def find_msvc(): - if sys.platform.startswith('win'): -- default_dir = r'C:\Program Files (x86)\Microsoft Visual Studio' -- for release in ['2019', '2017']: -- for version in ['Enterprise', 'Professional', 'Community', 'BuildTools', 'Preview']: -- path = os.path.join(default_dir, release, version, 'VC') -- if os.path.isdir(path): -- return path -- -+ default_dirs = [r'C:\Program Files\Microsoft Visual Studio', -+ r'C:\Program Files (x86)\Microsoft Visual Studio'] -+ for default_dir in default_dirs: -+ for release in ['2022', '2019', '2017']: -+ for version in ['Enterprise', 'Professional', 'Community', 'BuildTools', 'Preview']: -+ path = os.path.join(default_dir, release, version, 'VC') -+ if os.path.isdir(path): -+ return path - # Fall back to vswhere.exe to determine non-standard installation paths - # Fixed location, https://github.com/Microsoft/vswhere/wiki/Installing - vswhere = os.path.join(os.getenv('ProgramFiles(x86)'), -diff --git a/gn/toolchain/BUILD.gn b/gn/toolchain/BUILD.gn -index 4d4abc952f..85858b5a01 100644 ---- a/gn/toolchain/BUILD.gn -+++ b/gn/toolchain/BUILD.gn -@@ -87,16 +87,6 @@ template("msvc_toolchain") { - - bin = "$win_vc/Tools/MSVC/$win_toolchain_version/bin/HostX64/$toolchain_target_cpu" - -- env_setup = "" -- if (toolchain_target_cpu == "x86") { -- # Toolchain asset includes a script that configures for x86 building. -- # We don't support x86 builds with local MSVC installations. -- env_setup = "$shell $win_sdk/bin/SetEnv.cmd /x86 && " -- } else if (toolchain_target_cpu == "arm64") { -- # ARM64 compiler is incomplete - it relies on DLLs located in the host toolchain directory. -- env_setup = "$shell set \"PATH=%PATH%;$win_vc\\Tools\\MSVC\\$win_toolchain_version\\bin\\HostX64\\x64\" && " -- } -- - cl_m32_flag = "" - - if (clang_win != "") { -@@ -126,7 +116,8 @@ template("msvc_toolchain") { - if (toolchain_target_cpu == "x64") { - _ml += "64" - } -- command = "$env_setup \"$bin/$_ml.exe\" {{asmflags}} /nologo /c /Fo {{output}} {{source}}" -+ command = -+ "\"$bin/$_ml.exe\" {{asmflags}} /nologo /c /Fo {{output}} {{source}}" - outputs = [ - "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.obj", - ] -@@ -138,7 +129,7 @@ template("msvc_toolchain") { - pdbname = "{{target_out_dir}}/{{label_name}}_c.pdb" - - # Label names may have spaces so pdbname must be quoted. -- command = "$env_setup $cc_wrapper $cl /nologo /showIncludes /FC {{defines}} {{include_dirs}} {{cflags}} $cl_m32_flag {{cflags_c}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" -+ command = "$cc_wrapper $cl /nologo /showIncludes /FC {{defines}} {{include_dirs}} {{cflags}} $cl_m32_flag {{cflags_c}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" - depsformat = "msvc" - outputs = [ - "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.obj", -@@ -151,7 +142,7 @@ template("msvc_toolchain") { - pdbname = "{{target_out_dir}}/{{label_name}}_c.pdb" - - # Label names may have spaces so pdbname must be quoted. -- command = "$env_setup $cc_wrapper $cl /nologo /showIncludes /FC {{defines}} {{include_dirs}} {{cflags}} $cl_m32_flag {{cflags_cc}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" -+ command = "$cc_wrapper $cl /nologo /showIncludes /FC {{defines}} {{include_dirs}} {{cflags}} $cl_m32_flag {{cflags_cc}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" - depsformat = "msvc" - outputs = [ - "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.obj", -@@ -162,7 +153,8 @@ template("msvc_toolchain") { - tool("alink") { - rspfile = "{{output}}.rsp" - -- command = "$env_setup $lib /nologo /ignore:4221 {{arflags}} /OUT:{{output}} @$rspfile" -+ command = -+ "$lib /nologo /ignore:4221 {{arflags}} /OUT:{{output}} @$rspfile" - outputs = [ - # Ignore {{output_extension}} and always use .lib, there's no reason to - # allow targets to override this extension on Windows. -@@ -185,7 +177,7 @@ template("msvc_toolchain") { - pdbname = "${dllname}.pdb" - rspfile = "${dllname}.rsp" - -- command = "$env_setup $link /nologo /IMPLIB:$libname /DLL /OUT:$dllname /PDB:$pdbname @$rspfile" -+ command = "$link /nologo /IMPLIB:$libname /DLL /OUT:$dllname /PDB:$pdbname @$rspfile" - outputs = [ - dllname, - libname, -@@ -217,7 +209,7 @@ template("msvc_toolchain") { - pdbname = "$exename.pdb" - rspfile = "$exename.rsp" - -- command = "$env_setup $link /nologo /OUT:$exename /PDB:$pdbname @$rspfile" -+ command = "$link /nologo /OUT:$exename /PDB:$pdbname @$rspfile" - default_output_extension = ".exe" - default_output_dir = "{{root_out_dir}}" - outputs = [ exename ] --- -2.49.0 - diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 9b17d1ed..48064830 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -16,7 +16,6 @@ cd skia && \ patch -p1 < ../patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ - patch -p1 < ../patch/0001-gn-Remove-msvc-env-setting.patch && \ python tools/git-sync-deps && \ bin/gn gen out/Release --args=" is_official_build=true From 6c911d9f3e1ca9837f20217527e877414ea4b1f8 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 6 Aug 2025 21:20:38 +0100 Subject: [PATCH 008/146] Roll skia along m139 (canvaskit/0.40.0-787-g0f94c19331 to canvaskit/0.40.0-795-gcbc694239b) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index 0f94c193..cbc69423 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit 0f94c19331c51259e23bee547b2657b5ad7dff26 +Subproject commit cbc694239b06ecf694676aba22d5263dbc23ee5e From d16029049194e7d2c08ec543861b90321eec53e3 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 6 Aug 2025 21:22:03 +0100 Subject: [PATCH 009/146] upgrade skia to m140 (canvaskit/0.40.0-795-gcbc694239b to canvaskit/0.40.0-1240-gb57e04d1c7) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index cbc69423..b57e04d1 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit cbc694239b06ecf694676aba22d5263dbc23ee5e +Subproject commit b57e04d1c7344e71688dc37cb3c118cef0255065 From c9cc4d7c9d5da084bd10c729d523f90483ce3f70 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 7 Aug 2025 22:05:18 +0100 Subject: [PATCH 010/146] Bump to 140.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ef51dfeb..ea70a5bb 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ pass NAME = 'skia-python' -__version__ = '139.0' +__version__ = '140.0' SKIA_PATH = os.getenv('SKIA_PATH', 'skia') SKIA_OUT_PATH = os.getenv( From b4e4f18c1350640c00cd351f05362d226230f8b5 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 7 Aug 2025 22:22:30 +0100 Subject: [PATCH 011/146] m140: `SkFontMgr_New_FontConfig` with 1 parameter has been deprecated, and removed. It was deprecated in m139, and gone in m140. Milestone 139 ------------- * `SkFontMgr_New_FontConfig` with 1 parameter has been deprecated and will be removed in a future release. Clients will need to call the other version providing an SkFontScanner (e.g. `SkFontScanner_Make_FreeType()`) Conflicts: src/skia/Font.cpp --- src/skia/Font.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/skia/Font.cpp b/src/skia/Font.cpp index 9dd4e4b4..4c7e5b1f 100644 --- a/src/skia/Font.cpp +++ b/src/skia/Font.cpp @@ -17,6 +17,7 @@ #ifdef __linux__ #include "include/ports/SkFontMgr_fontconfig.h" +#include "include/ports/SkFontScanner_FreeType.h" #endif #ifdef _WIN32 @@ -35,7 +36,7 @@ static sk_sp fontmgr_factory() { #if defined(__APPLE__) return SkFontMgr_New_CoreText(nullptr); #elif defined(__linux__) - return SkFontMgr_New_FontConfig(nullptr); + return SkFontMgr_New_FontConfig(nullptr, SkFontScanner_Make_FreeType()); #elif defined(_WIN32) return SkFontMgr_New_DirectWrite(); #else From 4e824a4abb794ed00b333a9ededa8a911d31e063 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 7 Aug 2025 22:42:38 +0100 Subject: [PATCH 012/146] m140: `SkImage::isValid(GrRecordingContext*)` has been deprecated in favor of the `SkRecorder*` version. Milestone 140 ------------- * `SkImage::isValid(GrRecordingContext*)` has been deprecated in favor of the `SkRecorder*` version. To migrate do something like `image->isValid(ctx->asRecorder())`. `SkImage::makeSubset(GrDirectContext*, ...)` has been deprecated in favor of the `SkRecorder*` version. To migrate, do something like `image->makeSubset(ctx->asRecorder, ..., {})` `SkImage::makeColorSpace(GrDirectContext*, ...)` has been deprecated in favor of the `SkRecorder*` version. To migrate, do something like `image->makeColorSpace(ctx->asRecorder, ..., {})` `SkImage::makeColorTypeAndColorSpace(GrDirectContext*, ...)` has been deprecated in favor of the `SkRecorder*` version. To migrate, do something like `image->makeColorTypeAndColorSpace(ctx->asRecorder, ..., {})` In the case you are working with CPU-backed images, `skcpu::Recorder::TODO()` should work until a `skcpu::Context` and `skcpu::Recorder` can be used properly. --- src/skia/Image.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/skia/Image.cpp b/src/skia/Image.cpp index 59b76f21..07026441 100644 --- a/src/skia/Image.cpp +++ b/src/skia/Image.cpp @@ -150,8 +150,8 @@ sk_sp ImageConvert( at = image.alphaType(); if (at == image.alphaType()) { if (ct == image.colorType()) - return image.makeColorSpace(nullptr, CloneColorSpace(cs)); - return image.makeColorTypeAndColorSpace(nullptr, ct, CloneColorSpace(cs)); + return image.makeColorSpace(nullptr, CloneColorSpace(cs), {}); + return image.makeColorTypeAndColorSpace(nullptr, ct, CloneColorSpace(cs), {}); } auto imageInfo = SkImageInfo::Make( @@ -1398,7 +1398,10 @@ image :return: true if :py:class:`Image` is a GPU texture )docstring") - .def("isValid", py::overload_cast(&SkImage::isValid, py::const_), + .def("isValid", + [] (const SkImage& image, GrRecordingContext* ctx) { + return image.isValid(ctx->asRecorder()); + }, R"docstring( Returns true if :py:class:`Image` can be drawn on either raster surface or GPU surface. @@ -1744,7 +1747,7 @@ image )docstring") .def("makeSubset", [] (SkImage& image, const SkIRect& subset, GrDirectContext* direct) { - return image.makeSubset(direct, subset); + return image.makeSubset(direct->asRecorder(), subset, {}); }, R"docstring( Returns subset of :py:class:`Image`. @@ -1943,7 +1946,7 @@ image .def("makeColorSpace", [] (const SkImage& image, const SkColorSpace* target, GrDirectContext* direct) { - return image.makeColorSpace(direct, CloneColorSpace(target)); + return image.makeColorSpace(direct->asRecorder(), CloneColorSpace(target), {}); }, R"docstring( Creates :py:class:`Image` in target :py:class:`ColorSpace`. @@ -1965,7 +1968,7 @@ image [] (const SkImage& image, SkColorType ct, const SkColorSpace* cs, GrDirectContext* direct) { return image.makeColorTypeAndColorSpace( - direct, ct, CloneColorSpace(cs)); + direct->asRecorder(), ct, CloneColorSpace(cs), {}); }, R"docstring( Experimental. From d85f85aeca588d13822e5893c693226c4369686d Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 7 Aug 2025 23:25:31 +0100 Subject: [PATCH 013/146] m140: Prototype change for SkMatrix.setPolyToPoly(), and overload SkMatrix.inverse() m139: bool setPolyToPoly(const SkPoint src[], const SkPoint dst[], int count); m140: bool setPolyToPoly(SkSpan src, SkSpan dst); Before m140, only (deprecated): [[nodiscard]] bool invert(SkMatrix* inverse) const; Added in m140: std::optional invert() const; --- src/skia/Matrix.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index 62991092..ecf4f1ae 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1197,8 +1197,8 @@ matrix if (src.size() != dst.size()) throw std::runtime_error("src and dst must have the same size"); if (src.empty()) - return matrix.setPolyToPoly(nullptr, nullptr, 0); - return matrix.setPolyToPoly(&src[0], &dst[0], src.size()); + return matrix.setPolyToPoly({nullptr, 0}, {nullptr, 0}); + return matrix.setPolyToPoly({&src[0], src.size()}, {&dst[0], dst.size()}); }, R"docstring( Sets :py:class:`Matrix` to map src to dst. @@ -1217,7 +1217,7 @@ matrix :return: true if :py:class:`Matrix` was constructed successfully )docstring", py::arg("src"), py::arg("dst")) - .def("invert", &SkMatrix::invert, + .def("invert", py::overload_cast(&SkMatrix::invert, py::const_), R"docstring( Sets inverse to reciprocal matrix, returning true if :py:class:`Matrix` can be inverted. From ddd268f2cbb56a77be49abccc926708224d7d61c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 7 Aug 2025 23:35:05 +0100 Subject: [PATCH 014/146] m140: incomplete type 'SkPathBuilder' error; need new header. --- src/skia/PathEffect.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/skia/PathEffect.cpp b/src/skia/PathEffect.cpp index 376e1259..99c337d8 100644 --- a/src/skia/PathEffect.cpp +++ b/src/skia/PathEffect.cpp @@ -1,4 +1,5 @@ #include "common.h" +#include #include #include #include From 4835fd0fe71f08f3b6b6e2a6563adfcb19befd08 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 7 Aug 2025 23:43:01 +0100 Subject: [PATCH 015/146] m140: need overload for SkPathMeasure::getSegment Old: bool getSegment(SkScalar startD, SkScalar stopD, SkPath* dst, bool startWithMoveTo); Newly added: bool getSegment(SkScalar startD, SkScalar stopD, SkPathBuilder* dst, bool startWithMoveTo); --- src/skia/PathMeasure.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/PathMeasure.cpp b/src/skia/PathMeasure.cpp index ec4820a8..f0ed7a4e 100644 --- a/src/skia/PathMeasure.cpp +++ b/src/skia/PathMeasure.cpp @@ -83,7 +83,7 @@ path_measure :py:class:`Point` and tangent :py:class:`Vector`. )docstring", py::arg("distance")) - .def("getSegment", &SkPathMeasure::getSegment, + .def("getSegment", py::overload_cast(&SkPathMeasure::getSegment), R"docstring( Given a start and stop distance, return in dst the intervening segment(s). From 12f94bbda6b0ed9c0103ec907ba65cba95e32025 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 7 Aug 2025 23:51:48 +0100 Subject: [PATCH 016/146] m140: need overload for SkRRect::transform Old: bool transform(const SkMatrix& matrix, SkRRect* dst) const; Newly added: std::optional transform(const SkMatrix& matrix) const; --- src/skia/Rect.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Rect.cpp b/src/skia/Rect.cpp index 11b3973f..39f74402 100644 --- a/src/skia/Rect.cpp +++ b/src/skia/Rect.cpp @@ -1833,7 +1833,7 @@ rrect :return: bytes read, or 0 if length is less than kSizeInMemory )docstring", py::arg("buffer")) - .def("transform", &SkRRect::transform, + .def("transform", py::overload_cast(&SkRRect::transform, py::const_), R"docstring( Transforms by :py:class:`RRect` by matrix, storing result in dst. From fb7e64d86e74b178cde9a27e86b21fa7d9f014e9 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 8 Aug 2025 00:03:59 +0100 Subject: [PATCH 017/146] m140: Need overload for &SkRegion::getBoundaryPath Old: bool getBoundaryPath(SkPath* path) const; Newly added: SkPath getBoundaryPath() const; --- src/skia/Region.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Region.cpp b/src/skia/Region.cpp index 8c75f1f1..d76a4ac8 100644 --- a/src/skia/Region.cpp +++ b/src/skia/Region.cpp @@ -347,7 +347,7 @@ region :return: relative complexity )docstring") - .def("getBoundaryPath", &SkRegion::getBoundaryPath, + .def("getBoundaryPath", py::overload_cast(&SkRegion::getBoundaryPath, py::const_), R"docstring( Appends outline of :py:class:`Region` to path. From f7187cec95d164e3415516a1d6c305199bdbfd3f Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 8 Aug 2025 00:09:19 +0100 Subject: [PATCH 018/146] m140: libpathops no longer exists. --- setup.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index ea70a5bb..287e277d 100644 --- a/setup.py +++ b/setup.py @@ -35,8 +35,7 @@ EXTRA_OBJECTS = list( ) + [os.path.join(SKIA_OUT_PATH, 'svg.lib'), os.path.join(SKIA_OUT_PATH, 'skresources.lib'), os.path.join(SKIA_OUT_PATH, 'skia.lib'), os.path.join(SKIA_OUT_PATH, 'skparagraph.lib'), os.path.join(SKIA_OUT_PATH, 'skshaper.lib'), - os.path.join(SKIA_OUT_PATH, 'skunicode_icu.lib'), os.path.join(SKIA_OUT_PATH, 'skunicode_core.lib'), - os.path.join(SKIA_OUT_PATH, 'pathops.lib')] + os.path.join(SKIA_OUT_PATH, 'skunicode_icu.lib'), os.path.join(SKIA_OUT_PATH, 'skunicode_core.lib')] EXTRA_COMPILE_ARGS = [ '/std:c++17', # c++20 fails. '/DVERSION_INFO=%s' % __version__, @@ -70,8 +69,7 @@ EXTRA_OBJECTS = list( ) + [os.path.join(SKIA_OUT_PATH, 'libsvg.a'), os.path.join(SKIA_OUT_PATH, 'libskia.a'), os.path.join(SKIA_OUT_PATH, 'libskparagraph.a'), os.path.join(SKIA_OUT_PATH, 'libskshaper.a'), - os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a'), - os.path.join(SKIA_OUT_PATH, 'libpathops.a')] + os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a')] EXTRA_COMPILE_ARGS = [ '-std=c++17', '-stdlib=libc++', @@ -106,8 +104,7 @@ EXTRA_OBJECTS = list( ) + [os.path.join(SKIA_OUT_PATH, 'libsvg.a'), os.path.join(SKIA_OUT_PATH, 'libskresources.a'), os.path.join(SKIA_OUT_PATH, 'libskia.a'), os.path.join(SKIA_OUT_PATH, 'libskparagraph.a'), os.path.join(SKIA_OUT_PATH, 'libskshaper.a'), - os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a'), - os.path.join(SKIA_OUT_PATH, 'libpathops.a')] + os.path.join(SKIA_OUT_PATH, 'libskunicode_icu.a'), os.path.join(SKIA_OUT_PATH, 'libskunicode_core.a')] EXTRA_COMPILE_ARGS = [ '-std=c++17', '-fvisibility=hidden', From 3444eccae822f46b668a3d8d7e1b6d2729033e5f Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 8 Aug 2025 00:25:07 +0100 Subject: [PATCH 019/146] Fixes seg-fault from dereferencing null->asRecorder() --- src/skia/Image.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/skia/Image.cpp b/src/skia/Image.cpp index 07026441..a41d6704 100644 --- a/src/skia/Image.cpp +++ b/src/skia/Image.cpp @@ -1400,7 +1400,7 @@ image )docstring") .def("isValid", [] (const SkImage& image, GrRecordingContext* ctx) { - return image.isValid(ctx->asRecorder()); + return image.isValid(((ctx) ? ctx->asRecorder() : nullptr)); }, R"docstring( Returns true if :py:class:`Image` can be drawn on either raster surface @@ -1747,7 +1747,7 @@ image )docstring") .def("makeSubset", [] (SkImage& image, const SkIRect& subset, GrDirectContext* direct) { - return image.makeSubset(direct->asRecorder(), subset, {}); + return image.makeSubset(((direct) ? direct->asRecorder() : nullptr), subset, {}); }, R"docstring( Returns subset of :py:class:`Image`. @@ -1946,7 +1946,7 @@ image .def("makeColorSpace", [] (const SkImage& image, const SkColorSpace* target, GrDirectContext* direct) { - return image.makeColorSpace(direct->asRecorder(), CloneColorSpace(target), {}); + return image.makeColorSpace(((direct) ? direct->asRecorder() : nullptr), CloneColorSpace(target), {}); }, R"docstring( Creates :py:class:`Image` in target :py:class:`ColorSpace`. @@ -1968,7 +1968,7 @@ image [] (const SkImage& image, SkColorType ct, const SkColorSpace* cs, GrDirectContext* direct) { return image.makeColorTypeAndColorSpace( - direct->asRecorder(), ct, CloneColorSpace(cs), {}); + ((direct) ? direct->asRecorder() : nullptr), ct, CloneColorSpace(cs), {}); }, R"docstring( Experimental. From bcaa3aa118a02498efc1fa1e473c8bba2ea3aff5 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 8 Aug 2025 00:47:36 +0100 Subject: [PATCH 020/146] m140: SkStrokeRec::applyToPath prototype change was: bool applyToPath(SkPath* dst, const SkPath& src) const; m140: bool applyToPath(SkPathBuilder* dst, const SkPath& src) const; --- src/skia/PathEffect.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/skia/PathEffect.cpp b/src/skia/PathEffect.cpp index 99c337d8..affc3ef1 100644 --- a/src/skia/PathEffect.cpp +++ b/src/skia/PathEffect.cpp @@ -63,7 +63,11 @@ strokerec :py:meth:`applyToPath` will return true. )docstring") - .def("applyToPath", &SkStrokeRec::applyToPath, + .def("applyToPath", + [] (const SkStrokeRec& strokerec, SkPath* dst, const SkPath& src) { + auto dst2 = SkPathBuilder(*dst); + return strokerec.applyToPath(&dst2, src); + }, R"docstring( Apply these stroke parameters to the src path, returning the result in dst. From 2bf816e535b402002ccfb4385a86b47e821a87c7 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 10 Aug 2025 00:45:26 +0100 Subject: [PATCH 021/146] Revert "Upstream main (post m139) fix for pdf breakage" This reverts commit cd8af0cd352f6653a7eb2951813d7f8bbe6ee3b8. Should not be needed in m140. --- ...evert-gn-Split-pdf-and-xps-from-skia.patch | 210 ------------------ scripts/build_Linux.sh | 1 - scripts/build_Windows.sh | 1 - scripts/build_macOS.sh | 1 - 4 files changed, 213 deletions(-) delete mode 100644 patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch diff --git a/patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch b/patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch deleted file mode 100644 index 5ffce7c1..00000000 --- a/patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch +++ /dev/null @@ -1,210 +0,0 @@ -From e5b9496b71237d3e63289c6fd8a7466d8db80a29 Mon Sep 17 00:00:00 2001 -From: Florin Malita -Date: Mon, 23 Jun 2025 19:07:15 -0700 -Subject: [PATCH] Revert "[gn] Split :pdf and :xps from :skia" - -This reverts commit 3f34cf7c2d940a9ed84bf131d6c33b7380e180a0. - -Reason for revert: breaking Android - -Original change's description: -> [gn] Split :pdf and :xps from :skia -> -> After https://skia-review.googlesource.com/c/skia/+/1008277/2, we end up -> with an implicit dependency cycle: -> -> :skia -> :pdf/:xps (SkClipStack_AsPath) -> //modules/pathops -> :skia -> -> To fix, remove pdf and xps deps from "core" :skia and add to leaf apps -> instead. -> -> Change-Id: Ibdd58a97672ab5f9566c71907ce9e664eb809d4a -> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1009616 -> Reviewed-by: Ben Wagner -> Commit-Queue: Florin Malita - -No-Presubmit: true -No-Tree-Checks: true -No-Try: true -Change-Id: I259449122b1b77894e841d3146487f5be8bebfba -Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1011517 -Auto-Submit: Florin Malita -Commit-Queue: Rubber Stamper -Bot-Commit: Rubber Stamper -Signed-off-by: Hin-Tak Leung ---- - BUILD.gn | 41 ++++++------------------------------- - bazel/exporter_tool/main.go | 4 ---- - gn/utils.gni | 6 ------ - 3 files changed, 6 insertions(+), 45 deletions(-) - -diff --git a/BUILD.gn b/BUILD.gn -index 0cdde0edfa..acdfb6d793 100644 ---- a/BUILD.gn -+++ b/BUILD.gn -@@ -1257,22 +1257,12 @@ optional("graphite") { - } - } - --skia_component("clipstack_utils") { -- deps = [ -- ":skia", -- "//modules/pathops", -- ] -- sources = skia_clipstack_utils_sources --} -- - optional("pdf") { -- enabled = skia_use_zlib && skia_enable_pdf -+ enabled = skia_use_zlib && skia_enable_pdf && skia_use_libjpeg_turbo_decode && -+ skia_use_libjpeg_turbo_encode - public_defines = [ "SK_SUPPORT_PDF" ] - -- deps = [ -- ":clipstack_utils", -- "//third_party/zlib", -- ] -+ deps = [ "//third_party/zlib" ] - public = skia_pdf_public - sources = skia_pdf_sources - sources_when_disabled = [ "src/pdf/SkDocument_PDF_None.cpp" ] -@@ -1296,7 +1286,6 @@ optional("pdf_jpeg_helpers") { - optional("xps") { - enabled = skia_use_xps && is_win - public_defines = [ "SK_SUPPORT_XPS" ] -- deps = [ ":clipstack_utils" ] - public = skia_xps_public - sources = skia_xps_sources - } -@@ -1672,8 +1661,11 @@ skia_component("skia") { - ":gpu", - ":graphite", - ":jpeg_encode", -+ ":pdf", -+ ":pdf_jpeg_helpers", - ":png_encode_libpng", - ":webp_encode", -+ ":xps", - ] - - deps = [ -@@ -1731,10 +1723,6 @@ skia_component("skia") { - "src/sfnt/SkOTUtils.cpp", - ] - -- # TODO(fmalita): remove from skia_utils_private after clients are migrated to -- # skia_clipstack_utils_sources -- sources -= skia_clipstack_utils_sources -- - defines = [] - libs = [] - -@@ -1950,8 +1938,6 @@ if (skia_enable_tools) { - deps = [ - ":flags", - ":gpu_tool_utils", -- ":pdf", -- ":pdf_jpeg_helpers", - ":skia", - ":skia.h", - "modules/pathops", -@@ -2558,8 +2544,6 @@ if (skia_enable_tools) { - ":flags", - ":gm", - ":gpu_tool_utils", -- ":pdf", -- ":pdf_jpeg_helpers", - ":skia", - ":tool_utils", - "modules/skparagraph:bench", -@@ -2632,13 +2616,10 @@ if (skia_enable_tools) { - ":gm", - ":gpu_tool_utils", - ":hash_and_encode", -- ":pdf", -- ":pdf_jpeg_helpers", - ":skia", - ":tests", - ":tool_utils", - ":trace", -- ":xps", - "modules/pathops", - "modules/skottie", - "modules/skottie:utils", -@@ -2751,8 +2732,6 @@ if (skia_enable_tools) { - test_app("sktexttopdf") { - sources = [ "tools/using_skia_and_harfbuzz.cpp" ] - deps = [ -- ":pdf", -- ":pdf_jpeg_helpers", - ":skia", - "modules/pathops", - "modules/skshaper", -@@ -2853,8 +2832,6 @@ if (skia_enable_tools) { - deps = [ - ":flags", - ":gpu_tool_utils", -- ":pdf", -- ":pdf_jpeg_helpers", - ":skia", - "modules/jsonreader", - "modules/skottie:fuzz", -@@ -2903,8 +2880,6 @@ if (skia_enable_tools) { - ] - deps = [ - ":gm", -- ":pdf", -- ":pdf_jpeg_helpers", - ":skia", - ":tests", - ":tool_utils", -@@ -3084,8 +3059,6 @@ if (skia_enable_tools) { - ] - } - deps = [ -- ":pdf", -- ":pdf_jpeg_helpers", - ":skia", - ":skia.h", - "modules/skottie", -@@ -3306,8 +3279,6 @@ if (skia_enable_tools) { - deps += [ - ":flags", - ":gpu_tool_utils", -- ":pdf", -- ":pdf_jpeg_helpers", - ":skia", - ":tool_utils", - ] -diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go -index 77bc549ece..5201da4220 100644 ---- a/bazel/exporter_tool/main.go -+++ b/bazel/exporter_tool/main.go -@@ -449,10 +449,6 @@ var gniExportDescs = []exporter.GNIExportDesc{ - "//src/utils:utils_skslc_hdrs", - "//src/utils:utils_skslc_srcs", - }}, -- {Var: "skia_clipstack_utils_sources", -- Rules: []string{ -- "//src/utils:clip_stack_utils", -- }}, - }, - }, - {GNI: "gn/xps.gni", Vars: []exporter.GNIFileListExportDesc{ -diff --git a/gn/utils.gni b/gn/utils.gni -index 42255ce6a3..080f89c98e 100644 ---- a/gn/utils.gni -+++ b/gn/utils.gni -@@ -120,9 +120,3 @@ skia_utils_private = [ - "$_src/utils/win/SkTScopedComPtr.h", - "$_src/utils/win/SkWGL_win.cpp", - ] -- --# Generated by Bazel rule //src/utils:clip_stack_utils --skia_clipstack_utils_sources = [ -- "$_src/utils/SkClipStackUtils.cpp", -- "$_src/utils/SkClipStackUtils.h", --] --- -2.49.0 - diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index d39e104e..488aa66f 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -20,7 +20,6 @@ fi # Build skia cd skia && \ patch -p1 < ../patch/skia-m139-minimize-download.patch && \ - patch -p1 < ../patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ python3 tools/git-sync-deps && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 48064830..291bb10c 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -13,7 +13,6 @@ fi # Build skia cd skia && \ patch -p1 < ../patch/skia-m139-minimize-download.patch && \ - patch -p1 < ../patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ python tools/git-sync-deps && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index ecc331b6..568a4662 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -23,7 +23,6 @@ function apply_patch { cd skia && \ patch -p1 < ../patch/skia-m139-minimize-download.patch && \ - patch -p1 < ../patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ bin/gn gen out/Release --args=" From ee511506c07c31aff1cfec5e37001c3c04f15371 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 10 Aug 2025 00:50:57 +0100 Subject: [PATCH 022/146] m140 patch plus adjustments --- patch/skia-m140-minimize-download.patch | 70 +++++++++++++++++++++++++ scripts/build_Linux.sh | 2 +- scripts/build_Windows.sh | 2 +- scripts/build_macOS.sh | 2 +- 4 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 patch/skia-m140-minimize-download.patch diff --git a/patch/skia-m140-minimize-download.patch b/patch/skia-m140-minimize-download.patch new file mode 100644 index 00000000..c691a84f --- /dev/null +++ b/patch/skia-m140-minimize-download.patch @@ -0,0 +1,70 @@ +diff --git a/DEPS b/DEPS +index 93fc170..5bd8752 100644 +--- a/DEPS ++++ b/DEPS +@@ -31,53 +31,18 @@ vars = { + # ./tools/git-sync-deps + deps = { + "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", +- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@b6b2f380814eadf33f215adc2e99f208c800ae47", +- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", +- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", +- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. +- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. +- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@0b095928b31253ffc9684e460e08cc5710c2c21c", +- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", +- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", +- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@cae4b6a3990e1431caa09c7b2ed1c76d0dfeab17", +- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", + "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", +- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", +- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", + "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", + "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", +- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", + "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", +- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", +- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", +- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", +- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", +- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", + "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", +- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", + "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", + "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", +- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", +- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", +- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", +- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", +- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", + "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", +- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@681d07e76d8e03286b231766447800aab543bd27", + "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", +- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. +- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@0a496a889c4c1f56d0637afd2bddf4d89d94ebc9", +- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@97e96f9e9defeb4bba3cfbd034dec516671dd7a3", +- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@3aeaaa088d37b86cff036eee1a9bf452abad7d9d", +- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", +- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@37057b4756df4009ad85803bd2e06ec8a3bb1bca", +- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@f766b30b2de3ffe2cf6b656d943720882617ec58", +- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@b0a40d2e50310e9f84327061290a390a061125a3", +- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", +- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", + "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", + "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", + +diff --git a/bin/activate-emsdk b/bin/activate-emsdk +index b3c529f..81a1c60 100755 +--- a/bin/activate-emsdk ++++ b/bin/activate-emsdk +@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') + EMSDK_VERSION = '4.0.7' + + def main(): ++ return + if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: + # This platform cannot install emsdk at the provided version. See + # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index 488aa66f..06c37cd3 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -19,7 +19,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m139-minimize-download.patch && \ + patch -p1 < ../patch/skia-m140-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ python3 tools/git-sync-deps && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 291bb10c..97c84110 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -12,7 +12,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m139-minimize-download.patch && \ + patch -p1 < ../patch/skia-m140-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ python tools/git-sync-deps && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index 568a4662..407204a2 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -22,7 +22,7 @@ function apply_patch { } cd skia && \ - patch -p1 < ../patch/skia-m139-minimize-download.patch && \ + patch -p1 < ../patch/skia-m140-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ bin/gn gen out/Release --args=" From 443a499bf9bb46cda5f275c1bc2e20095b6ea81c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 10 Aug 2025 01:17:30 +0100 Subject: [PATCH 023/146] Skip pybind11 3.0.0 until it get fixed (waiting for 3.0.1) See https://github.com/pybind/pybind11/issues/5694 --- .github/workflows/ci.yml | 4 ++-- setup.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 89c2e7e4..09e1ecb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install pybind11 numpy + CIBW_BEFORE_BUILD: pip install 'pybind11<3.0.0' numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl @@ -92,7 +92,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install pybind11 numpy + CIBW_BEFORE_BUILD: pip install 'pybind11<3.0.0' numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl diff --git a/setup.py b/setup.py index ef51dfeb..88b4542f 100644 --- a/setup.py +++ b/setup.py @@ -182,9 +182,9 @@ def build_extensions(self): data_files=data_files, install_requires=[ 'numpy', - 'pybind11>=2.6' + 'pybind11>=2.6,<3.0.0' ], - setup_requires=['pybind11>=2.6'], + setup_requires=['pybind11>=2.6,<3.0.0'], cmdclass={'build_ext': BuildExt}, classifiers=[ 'Development Status :: 4 - Beta', From f0e1a8b4a6019da0c0b6e263a3a16f640758c52e Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 11 Aug 2025 19:18:13 +0100 Subject: [PATCH 024/146] Windows pip does not like single quotes --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 09e1ecb9..ecd9a5a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install 'pybind11<3.0.0' numpy + CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl From 8e5734355502b3bcb800eee43cf4acf29fa19d11 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 11 Aug 2025 19:26:57 +0100 Subject: [PATCH 025/146] Use x64_64 gn binary for arm64 windows --- patch/fetch-gn-windows-arm64.diff | 11 +++++++++++ scripts/build_Windows.sh | 1 + 2 files changed, 12 insertions(+) create mode 100644 patch/fetch-gn-windows-arm64.diff diff --git a/patch/fetch-gn-windows-arm64.diff b/patch/fetch-gn-windows-arm64.diff new file mode 100644 index 00000000..bee01d3c --- /dev/null +++ b/patch/fetch-gn-windows-arm64.diff @@ -0,0 +1,11 @@ +--- a/bin/fetch-gn.orig 2025-08-11 19:21:42.666070053 +0100 ++++ b/bin/fetch-gn 2025-08-11 19:23:01.381159842 +0100 +@@ -20,7 +20,7 @@ + gnzip = os.path.join(tempfile.mkdtemp(), 'gn.zip') + with open(gnzip, 'wb') as f: + OS = {'darwin': 'mac', 'linux': 'linux', 'linux2': 'linux', 'win32': 'windows'}[sys.platform] +- cpu = {'aarch64': 'arm64', 'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64'}[platform.machine().lower()] ++ cpu = {'aarch64': 'arm64', 'amd64': 'amd64', 'arm64': 'amd64', 'x86_64': 'amd64'}[platform.machine().lower()] + + rev = 'b2afae122eeb6ce09c52d63f67dc53fc517dbdc8' + url = 'https://chrome-infra-packages.appspot.com/dl/gn/gn/{}-{}/+/git_revision:{}'.format( diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 97c84110..a3442c0c 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -15,6 +15,7 @@ cd skia && \ patch -p1 < ../patch/skia-m140-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ + patch -p1 < ../patch/fetch-gn-windows-arm64.diff && \ python tools/git-sync-deps && \ bin/gn gen out/Release --args=" is_official_build=true From b1355da018f1ad3cd1c5b812fbbd7eb9d93f952c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 11 Aug 2025 21:11:28 +0100 Subject: [PATCH 026/146] Windows pip does not like single quotes - 2nd change --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecd9a5a5..7f9d46b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,7 +92,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install 'pybind11<3.0.0' numpy + CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl From ce1ba8529982219b18b2f5c5cb79322dec336c4a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 11 Aug 2025 19:18:13 +0100 Subject: [PATCH 027/146] Windows pip does not like single quotes --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 09e1ecb9..ecd9a5a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install 'pybind11<3.0.0' numpy + CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl From 9a5766671c38284bb5ff852c227425d6b0ab068a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 11 Aug 2025 21:11:28 +0100 Subject: [PATCH 028/146] Windows pip does not like single quotes - 2nd change --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecd9a5a5..7f9d46b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,7 +92,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install 'pybind11<3.0.0' numpy + CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl From f160ab1d2dbe3481daadc706018be809bec546cf Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 11 Aug 2025 19:26:57 +0100 Subject: [PATCH 029/146] Use x64_64 gn binary for arm64 windows --- patch/fetch-gn-windows-arm64.diff | 11 +++++++++++ scripts/build_Windows.sh | 1 + 2 files changed, 12 insertions(+) create mode 100644 patch/fetch-gn-windows-arm64.diff diff --git a/patch/fetch-gn-windows-arm64.diff b/patch/fetch-gn-windows-arm64.diff new file mode 100644 index 00000000..bee01d3c --- /dev/null +++ b/patch/fetch-gn-windows-arm64.diff @@ -0,0 +1,11 @@ +--- a/bin/fetch-gn.orig 2025-08-11 19:21:42.666070053 +0100 ++++ b/bin/fetch-gn 2025-08-11 19:23:01.381159842 +0100 +@@ -20,7 +20,7 @@ + gnzip = os.path.join(tempfile.mkdtemp(), 'gn.zip') + with open(gnzip, 'wb') as f: + OS = {'darwin': 'mac', 'linux': 'linux', 'linux2': 'linux', 'win32': 'windows'}[sys.platform] +- cpu = {'aarch64': 'arm64', 'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64'}[platform.machine().lower()] ++ cpu = {'aarch64': 'arm64', 'amd64': 'amd64', 'arm64': 'amd64', 'x86_64': 'amd64'}[platform.machine().lower()] + + rev = 'b2afae122eeb6ce09c52d63f67dc53fc517dbdc8' + url = 'https://chrome-infra-packages.appspot.com/dl/gn/gn/{}-{}/+/git_revision:{}'.format( diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 48064830..0ad47504 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -16,6 +16,7 @@ cd skia && \ patch -p1 < ../patch/0001-Revert-gn-Split-pdf-and-xps-from-skia.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ + patch -p1 < ../patch/fetch-gn-windows-arm64.diff && \ python tools/git-sync-deps && \ bin/gn gen out/Release --args=" is_official_build=true From 795197ab3acab0b3cf5e16c568d6ee869564ae81 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 12 Aug 2025 11:14:02 +0100 Subject: [PATCH 030/146] Can need apt-get update first before finding the correct packages --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f9d46b4..c581a710 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -127,6 +127,7 @@ jobs: - name: Build docs run: | # installing libegl1 will also install libegl-mesa0 + sudo apt-get -y update sudo apt-get -y install libegl1 python -m pip install --pre -f dist skia-python python -m pip install sphinx sphinx-rtd-theme From 3b18469a9058d3c0064beb16906e58dd07f8c4a2 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 12 Aug 2025 11:14:02 +0100 Subject: [PATCH 031/146] Can need apt-get update first before finding the correct packages --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f9d46b4..c581a710 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -127,6 +127,7 @@ jobs: - name: Build docs run: | # installing libegl1 will also install libegl-mesa0 + sudo apt-get -y update sudo apt-get -y install libegl1 python -m pip install --pre -f dist skia-python python -m pip install sphinx sphinx-rtd-theme From ac7b85a8a8fcf509f88f36dac4219412f877e9cf Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 22 Aug 2025 22:29:39 +0100 Subject: [PATCH 032/146] pybind11 3.0.1 is out; remove limitation not to use 3.0.0 --- .github/workflows/ci.yml | 4 ++-- setup.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c581a710..18bf2f07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy + CIBW_BEFORE_BUILD: pip install pybind11 numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl @@ -92,7 +92,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy + CIBW_BEFORE_BUILD: pip install pybind11 numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl diff --git a/setup.py b/setup.py index 2f53bb30..287e277d 100644 --- a/setup.py +++ b/setup.py @@ -179,9 +179,9 @@ def build_extensions(self): data_files=data_files, install_requires=[ 'numpy', - 'pybind11>=2.6,<3.0.0' + 'pybind11>=2.6' ], - setup_requires=['pybind11>=2.6,<3.0.0'], + setup_requires=['pybind11>=2.6'], cmdclass={'build_ext': BuildExt}, classifiers=[ 'Development Status :: 4 - Beta', From 50924a6f285dc4ab0311ce2cfec24adfcc2e6ca0 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 6 Sep 2025 22:55:15 +0100 Subject: [PATCH 033/146] Roll skia on m139 (canvaskit/0.40.0-795-gcbc694239b to canvaskit/0.40.0-797-g4abe0638e3) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index cbc69423..4abe0638 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit cbc694239b06ecf694676aba22d5263dbc23ee5e +Subproject commit 4abe0638e35d34b6fdb70f1f5ce0f0e1879a021e From c4de1dffd1b1544ae4ec7f961c2e3ed9a7906da9 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 6 Sep 2025 22:57:29 +0100 Subject: [PATCH 034/146] Roll skia on m140 (canvaskit/0.40.0-1240-gb57e04d1c7 to canvaskit/0.40.0-1244-g1fdbea293a) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index b57e04d1..1fdbea29 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit b57e04d1c7344e71688dc37cb3c118cef0255065 +Subproject commit 1fdbea293a53b270e3f5e74c92cc6670d68412ff From 329b85bd32f838c764793597e74055cd82406970 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 6 Sep 2025 23:01:32 +0100 Subject: [PATCH 035/146] Update skia to m141 (canvaskit/0.40.0-1244-g1fdbea293a to canvaskit/0.40.0-1579-g8843f919a1) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index 1fdbea29..8843f919 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit 1fdbea293a53b270e3f5e74c92cc6670d68412ff +Subproject commit 8843f919a1f50ea6c11fc2e35fe9c5bc099cb09e From a4c4147d8eb203d647d3a9bf1386860805ca8c81 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 6 Sep 2025 23:02:18 +0100 Subject: [PATCH 036/146] Bump version up to 141 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 287e277d..5d81c7f0 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ pass NAME = 'skia-python' -__version__ = '140.0' +__version__ = '141.0' SKIA_PATH = os.getenv('SKIA_PATH', 'skia') SKIA_OUT_PATH = os.getenv( From 5268607c9f9ba7eb749573109783b3bbab109241 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 6 Sep 2025 23:10:20 +0100 Subject: [PATCH 037/146] m141 patch plus adjustments --- patch/skia-m141-minimize-download.patch | 70 +++++++++++++++++++++++++ scripts/build_Linux.sh | 2 +- scripts/build_Windows.sh | 2 +- scripts/build_macOS.sh | 2 +- 4 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 patch/skia-m141-minimize-download.patch diff --git a/patch/skia-m141-minimize-download.patch b/patch/skia-m141-minimize-download.patch new file mode 100644 index 00000000..1fcf7e68 --- /dev/null +++ b/patch/skia-m141-minimize-download.patch @@ -0,0 +1,70 @@ +diff --git a/DEPS b/DEPS +index 01f37c2..4bb88bc 100644 +--- a/DEPS ++++ b/DEPS +@@ -31,53 +31,18 @@ vars = { + # ./tools/git-sync-deps + deps = { + "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", +- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@1e3e4eb7f98c05e92a113524eeffb5357f68f506", +- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", +- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", +- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. +- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. +- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@b03da099c360d8f021e4de2a3dd0cfb63cbc74d9", +- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", +- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", +- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@cae4b6a3990e1431caa09c7b2ed1c76d0dfeab17", +- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", + "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", +- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", +- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", + "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", + "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", +- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", + "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", +- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", +- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", +- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", +- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", +- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", + "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", +- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", + "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", + "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", +- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", +- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", +- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", +- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", +- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", + "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", +- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@0390a544a9520c11837f7d2da99a7f480622f29c", + "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", +- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. +- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f55240464c0e7ad9fa42130618a2e0532a44c3b3", +- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@3397e1e4fe0a9964e1837c2934b81835093494b8", +- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@392b4893c4955125c1873c33a97f2a8ee8363bd3", +- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", +- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@d1cd37e925510a167d4abef39340dbdea47d8989", +- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@8ce6f121d1fcbdf60f0f4264e23fbcd247b9101d", +- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@a528f95dc2f92bdd83c0c32efe2d13c806428c9d", +- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", +- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", + "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", + "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", + +diff --git a/bin/activate-emsdk b/bin/activate-emsdk +index b3c529f..81a1c60 100755 +--- a/bin/activate-emsdk ++++ b/bin/activate-emsdk +@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') + EMSDK_VERSION = '4.0.7' + + def main(): ++ return + if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: + # This platform cannot install emsdk at the provided version. See + # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index 06c37cd3..909ff9bc 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -19,7 +19,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m140-minimize-download.patch && \ + patch -p1 < ../patch/skia-m141-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ python3 tools/git-sync-deps && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index a3442c0c..71687250 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -12,7 +12,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m140-minimize-download.patch && \ + patch -p1 < ../patch/skia-m141-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ patch -p1 < ../patch/fetch-gn-windows-arm64.diff && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index 407204a2..fe666666 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -22,7 +22,7 @@ function apply_patch { } cd skia && \ - patch -p1 < ../patch/skia-m140-minimize-download.patch && \ + patch -p1 < ../patch/skia-m141-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ bin/gn gen out/Release --args=" From 9d24ab3a17627fc66a92a18e233bb940d0482651 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 7 Sep 2025 01:11:15 +0100 Subject: [PATCH 038/146] m141:SkPath::moveTo() changed prototype --- src/skia/Path.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index 8234ffc1..750342b6 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -877,7 +877,7 @@ path )docstring", py::arg("x"), py::arg("y")) .def("moveTo", - py::overload_cast(&SkPath::moveTo), + py::overload_cast(&SkPath::moveTo), R"docstring( Adds beginning of contour at :py:class:`Point` p. From c0d859d3fd3d6beb5a838952882a30d544ae38aa Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 7 Sep 2025 20:36:15 +0100 Subject: [PATCH 039/146] pybind11 3.0.1 does not work - segfault on exit from pytest in CI. Back to 2.x Cannot reproduce segfault locally. To investigate. Revert "pybind11 3.0.1 is out; remove limitation not to use 3.0.0" This reverts commit ac7b85a8a8fcf509f88f36dac4219412f877e9cf. --- .github/workflows/ci.yml | 4 ++-- setup.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18bf2f07..c581a710 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install pybind11 numpy + CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl @@ -92,7 +92,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install pybind11 numpy + CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl diff --git a/setup.py b/setup.py index 287e277d..2f53bb30 100644 --- a/setup.py +++ b/setup.py @@ -179,9 +179,9 @@ def build_extensions(self): data_files=data_files, install_requires=[ 'numpy', - 'pybind11>=2.6' + 'pybind11>=2.6,<3.0.0' ], - setup_requires=['pybind11>=2.6'], + setup_requires=['pybind11>=2.6,<3.0.0'], cmdclass={'build_ext': BuildExt}, classifiers=[ 'Development Status :: 4 - Beta', From 487835c65864342d7ecf43302c006845ad503143 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 16 Sep 2025 18:36:35 +0100 Subject: [PATCH 040/146] Revert "pybind11 3.0.1 does not work - segfault on exit from pytest in CI. Back to 2.x" This reverts commit c0d859d3fd3d6beb5a838952882a30d544ae38aa. --- .github/workflows/ci.yml | 4 ++-- setup.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c581a710..18bf2f07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy + CIBW_BEFORE_BUILD: pip install pybind11 numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl @@ -92,7 +92,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy + CIBW_BEFORE_BUILD: pip install pybind11 numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl diff --git a/setup.py b/setup.py index 2f53bb30..287e277d 100644 --- a/setup.py +++ b/setup.py @@ -179,9 +179,9 @@ def build_extensions(self): data_files=data_files, install_requires=[ 'numpy', - 'pybind11>=2.6,<3.0.0' + 'pybind11>=2.6' ], - setup_requires=['pybind11>=2.6,<3.0.0'], + setup_requires=['pybind11>=2.6'], cmdclass={'build_ext': BuildExt}, classifiers=[ 'Development Status :: 4 - Beta', From a057e3c6d32cfe535eaea918569488e75c9970da Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 16 Sep 2025 18:42:01 +0100 Subject: [PATCH 041/146] Make artefacts available even when pytest fails. This is to see why the pybind11 3.0.1 build segfaults at the end of pytest. https://stackoverflow.com/questions/58858429/how-to-run-a-github-actions-step-even-if-the-previous-step-fails-while-still-f --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18bf2f07..d6c3e436 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,6 +55,7 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 + if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl @@ -103,6 +104,7 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 + if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl From e8c16154524a7239435b34298510c309aaf6f289 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 16 Sep 2025 18:36:35 +0100 Subject: [PATCH 042/146] Revert "pybind11 3.0.1 does not work - segfault on exit from pytest in CI. Back to 2.x" This reverts commit c0d859d3fd3d6beb5a838952882a30d544ae38aa. --- .github/workflows/ci.yml | 4 ++-- setup.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c581a710..18bf2f07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy + CIBW_BEFORE_BUILD: pip install pybind11 numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl @@ -92,7 +92,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy + CIBW_BEFORE_BUILD: pip install pybind11 numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl diff --git a/setup.py b/setup.py index a1cac2e5..5d81c7f0 100644 --- a/setup.py +++ b/setup.py @@ -179,9 +179,9 @@ def build_extensions(self): data_files=data_files, install_requires=[ 'numpy', - 'pybind11>=2.6,<3.0.0' + 'pybind11>=2.6' ], - setup_requires=['pybind11>=2.6,<3.0.0'], + setup_requires=['pybind11>=2.6'], cmdclass={'build_ext': BuildExt}, classifiers=[ 'Development Status :: 4 - Beta', From a1338ebdd1f12b4be47adbca9ba1e715214f2efe Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 16 Sep 2025 18:42:01 +0100 Subject: [PATCH 043/146] Make artefacts available even when pytest fails. This is to see why the pybind11 3.0.1 build segfaults at the end of pytest. https://stackoverflow.com/questions/58858429/how-to-run-a-github-actions-step-even-if-the-previous-step-fails-while-still-f --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18bf2f07..d6c3e436 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,6 +55,7 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 + if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl @@ -103,6 +104,7 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 + if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl From 300f7305b1348563ec801fe66a000f50beadabb4 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 17 Sep 2025 00:32:42 +0100 Subject: [PATCH 044/146] Upload wheel-fedora:42 --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6c3e436..dea799b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -177,6 +177,10 @@ jobs: submodules: recursive - run: bash scripts/build_Linux.sh - run: python -m build --wheel + - uses: actions/upload-artifact@v4 + with: + name: wheel-fedora:42 + path: ./dist/*.whl - run: python -m pip install dist/*.whl - run: python -m pip install moderngl - run: python -c 'import moderngl; moderngl_context = moderngl.create_standalone_context(backend="egl"); import skia; interface = skia.GrGLInterface.MakeEGL() ; assert isinstance(skia.GrDirectContext.MakeGL(interface), skia.GrContext) ; print("Success3")' From 7333b2c26f7aab4a6e69106b1732d90670f15745 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Wed, 17 Sep 2025 10:44:02 +0100 Subject: [PATCH 045/146] : is not valid as artifact name --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dea799b1..0724a384 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -179,7 +179,7 @@ jobs: - run: python -m build --wheel - uses: actions/upload-artifact@v4 with: - name: wheel-fedora:42 + name: wheel-fedora-42 path: ./dist/*.whl - run: python -m pip install dist/*.whl - run: python -m pip install moderngl From e8fc66c81741e6023563ec66cdb408f2cac9481b Mon Sep 17 00:00:00 2001 From: MINWOO LEE Date: Mon, 6 Oct 2025 11:35:27 +0900 Subject: [PATCH 046/146] Docs: Add missing 'import sys' to Canvas Creation tutorial The example code in the Canvas Creation section of the tutorial requires the `sys` module to run correctly, but the `import sys` statement was missing. This change adds the import sys to resolve the error. --- docs/tutorial/canvas.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/tutorial/canvas.rst b/docs/tutorial/canvas.rst index ff658761..9f931544 100644 --- a/docs/tutorial/canvas.rst +++ b/docs/tutorial/canvas.rst @@ -79,6 +79,7 @@ The following example uses glfw package to create an OpenGL context. Install .. code-block:: python + import sys import skia import glfw import contextlib @@ -134,7 +135,7 @@ Here's a complete example: .. code-block:: python - import contextlib, glfw, skia + import sys, contextlib, glfw, skia from OpenGL import GL WIDTH, HEIGHT = 640, 480 From e54b1b2c4d1de0cdc15f227c8d31de5edb003cda Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 15 Nov 2025 21:25:25 +0000 Subject: [PATCH 047/146] Roll skia on m141 (canvaskit/0.40.0-1579-g8843f919a1 to canvaskit/0.40.0-1581-g5eefbe51d1) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index 8843f919..5eefbe51 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit 8843f919a1f50ea6c11fc2e35fe9c5bc099cb09e +Subproject commit 5eefbe51d17d2e379fa2d7353827e0ccb1e1f601 From 7722b122d4271759a2ea1ea9d7d94561eb79a0c2 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 15 Nov 2025 21:27:48 +0000 Subject: [PATCH 048/146] Update skia to m142 (canvaskit/0.40.0-1869-gf4ed99d244, from m141 [canvaskit/0.40.0-1581-g5eefbe51d1]) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index 5eefbe51..f4ed99d2 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit 5eefbe51d17d2e379fa2d7353827e0ccb1e1f601 +Subproject commit f4ed99d2443962782cf5f8b4dd27179f131e7cbe From 903852d7c5442d709d243a36ea7201c70910aa33 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 17 Nov 2025 19:23:21 +0000 Subject: [PATCH 049/146] Bump version up to 142.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5d81c7f0..6e15f761 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ pass NAME = 'skia-python' -__version__ = '141.0' +__version__ = '142.0' SKIA_PATH = os.getenv('SKIA_PATH', 'skia') SKIA_OUT_PATH = os.getenv( From a883b3245742b08c8b4e51b983359beea32354f3 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 17 Nov 2025 19:25:59 +0000 Subject: [PATCH 050/146] m142 patch plus adjustments --- patch/skia-m142-minimize-download.patch | 70 +++++++++++++++++++++++++ scripts/build_Linux.sh | 2 +- scripts/build_Windows.sh | 2 +- scripts/build_macOS.sh | 2 +- 4 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 patch/skia-m142-minimize-download.patch diff --git a/patch/skia-m142-minimize-download.patch b/patch/skia-m142-minimize-download.patch new file mode 100644 index 00000000..58b4e208 --- /dev/null +++ b/patch/skia-m142-minimize-download.patch @@ -0,0 +1,70 @@ +diff --git a/DEPS b/DEPS +index 4283e2a..bccadce 100644 +--- a/DEPS ++++ b/DEPS +@@ -31,53 +31,18 @@ vars = { + # ./tools/git-sync-deps + deps = { + "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", +- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@7a7681cc8f888e72663530ca2cc997d9febd08e0", +- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", +- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", +- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. +- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. +- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@d930194b79289fa4eb2c593e71f233ae64e15c4c", +- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", +- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", +- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@9d692d669253232c024b20ae19d2ff0b581ee1cd", +- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", + "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", +- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", +- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", + "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", + "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", +- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", + "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", +- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", +- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", +- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", +- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", +- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", + "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", +- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", + "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", + "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", +- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", +- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", +- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", +- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", +- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", + "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", +- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@5f1c459a11bb4899301e89609cbf7547f9f31e20", + "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", +- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. +- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@a9e2ca3b57aba86a22a2df1b84bf12f8cc98806e", +- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@01e0577914a75a2569c846778c2f93aa8e6feddd", +- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@19042c8921f35f7bec56b9e5c96c5f5691588ca8", +- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", +- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@a4f8ada9f4f97c45b8c89c57997be9cebaae65d2", +- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@d643b80d6ba8c191bc289fdda52867c3bb3c190b", +- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@4322db5906e67b57ec9c327e6afe3d98ed893df7", +- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", +- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", + "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", + "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", + +diff --git a/bin/activate-emsdk b/bin/activate-emsdk +index b3c529f..81a1c60 100755 +--- a/bin/activate-emsdk ++++ b/bin/activate-emsdk +@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') + EMSDK_VERSION = '4.0.7' + + def main(): ++ return + if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: + # This platform cannot install emsdk at the provided version. See + # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index 909ff9bc..dccead84 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -19,7 +19,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m141-minimize-download.patch && \ + patch -p1 < ../patch/skia-m142-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ python3 tools/git-sync-deps && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 71687250..4df495dc 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -12,7 +12,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m141-minimize-download.patch && \ + patch -p1 < ../patch/skia-m142-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ patch -p1 < ../patch/fetch-gn-windows-arm64.diff && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index fe666666..07c33488 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -22,7 +22,7 @@ function apply_patch { } cd skia && \ - patch -p1 < ../patch/skia-m141-minimize-download.patch && \ + patch -p1 < ../patch/skia-m142-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ bin/gn gen out/Release --args=" From 034c721205bf749a709296093b2af5e0da470534 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 14 Oct 2025 20:56:48 +0100 Subject: [PATCH 051/146] m142: needs overload for &SkPath::getLastPt There is a new one: std::optional getLastPt() const; The old one: // DEPRECATED bool getLastPt(SkPoint* lastPt) const; --- src/skia/Path.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index 750342b6..13ef9a17 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -1797,7 +1797,7 @@ path // py::overload_cast( // &SkPath::transform), // "Transforms verb array, SkPoint array, and weight by matrix.") - .def("getLastPt", &SkPath::getLastPt, + .def("getLastPt", py::overload_cast(&SkPath::getLastPt, py::const_), R"docstring( Returns last point on :py:class:`Path` in lastPt. From b4d1ab081cd25dc8cd3b21003d4f81ed88372223 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 17 Nov 2025 12:48:06 +0000 Subject: [PATCH 052/146] m142: New argument mx with default nullptr to SkPathBuilder::snapshot and SkPathBuilder::detach commit 8d12d8dc89e647ab1b7e51cd3538e75d1a97be5c Author: Michael Reed Date: Tue Sep 16 15:15:53 2025 -0400 Use pathbuilder in path::transform + perspective - closing the gap on making all paths immutable - also allows us to transform as we detach ... Change-Id: I4b6c78909452fffecd3a570399e52a9cccc79419 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1056516 Commit-Queue: Mike Reed Reviewed-by: Florin Malita Reviewed-by: Robert Phillips --- src/skia/Path.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index 13ef9a17..91cda41f 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -2227,11 +2227,13 @@ PathBuilder .def("snapshot", &SkPathBuilder::snapshot, R"docstring( the builder is unchanged after returning this path - )docstring") + )docstring", + py::arg("mx") = nullptr) .def("detach", &SkPathBuilder::detach, R"docstring( the builder is reset to empty after returning this path - )docstring") + )docstring", + py::arg("mx") = nullptr) .def("setFillType", &SkPathBuilder::setFillType, py::arg("fillType")) .def("setIsVolatile", &SkPathBuilder::setIsVolatile, py::arg("isVolatile")) .def("reset", &SkPathBuilder::reset) From f6f0030cb89144acabfe0df7f788a3dded473c01 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 17 Nov 2025 19:33:46 +0000 Subject: [PATCH 053/146] Adding Python 3.14 builds Fixes #344 --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0724a384..c63ca1fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,17 +17,17 @@ jobs: matrix: os: [ubuntu-22.04, windows-2022, macos-13] arch: [auto64] - cp: ["cp3{10,11,12,13}"] + cp: ["cp3{10,11,12,13,14}"] include: - os: macos-13 arch: arm64 - cp: "cp3{10,11,12,13}" + cp: "cp3{10,11,12,13,14}" - os: ubuntu-22.04-arm arch: aarch64 - cp: "cp3{10,11,12,13}" + cp: "cp3{10,11,12,13,14}" - os: windows-11-arm arch: ARM64 - cp: "cp3{11,12,13}" + cp: "cp3{11,12,13,14}" steps: - uses: actions/checkout@v4 From c824669dea279962a12df41f6cc0079f59830bdb Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 17 Nov 2025 22:23:59 +0000 Subject: [PATCH 054/146] m142: Adjust 0001-Disable-OpenGL-for-Windows-on-ARM64.patch to m142 commit cbb0388767d2b8a5a5c1f5484a68fb0ff201561b Author: Brian Salomon Date: Wed Sep 10 12:34:02 2025 -0400 Move Ganesh-only tool code into tools/ganesh Graphite-only tooling is separated already into tools/graphite. Many tools can be built with Ganesh but not Graphite (dm, viewer, ...) The intermixing of Ganesh and common gpu support code is a significant contributor to making Graphite but not Ganesh builds difficult. The files left in the shared code still use macros to selectively compile Graphite/Ganesh code. Cleaning that up is left as future work. Change-Id: I33d2fe29368ef3f7ba42b54f62a8d1e0063f5ae3 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1051317 Reviewed-by: Thomas Smith Commit-Queue: Brian Salomon Reviewed-by: Robert Phillips --- ...-Disable-OpenGL-for-Windows-on-ARM64.patch | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch b/patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch index 287d13b8..b6a371e4 100644 --- a/patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch +++ b/patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch @@ -33,8 +33,8 @@ index ef913e9..33f3208 100644 sources += [ "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp" ] } @@ -2185,10 +2187,10 @@ if (skia_enable_tools) { - "tools/gpu/gl/win/SkWGL.h", - "tools/gpu/gl/win/SkWGL_win.cpp", + "tools/ganesh/gl/win/SkWGL.h", + "tools/ganesh/gl/win/SkWGL_win.cpp", ] - libs += [ - "Gdi32.lib", @@ -70,10 +70,10 @@ index f33f2e1..da3cbe2 100644 +#endif // ARM64 + #endif // SK_DISABLE_LEGACY_GL_MAKE_NATIVE_INTERFACE -diff --git b/tools/gpu/gl/win/SkWGL_win.cpp a/tools/gpu/gl/win/SkWGL_win.cpp +diff --git b/tools/ganesh/gl/win/SkWGL_win.cpp a/tools/ganesh/gl/win/SkWGL_win.cpp index 4cb462b..ac2d700 100644 ---- b/tools/gpu/gl/win/SkWGL_win.cpp -+++ a/tools/gpu/gl/win/SkWGL_win.cpp +--- b/tools/ganesh/gl/win/SkWGL_win.cpp ++++ a/tools/ganesh/gl/win/SkWGL_win.cpp @@ -6,7 +6,7 @@ */ @@ -81,15 +81,15 @@ index 4cb462b..ac2d700 100644 -#if defined(SK_BUILD_FOR_WIN) && !defined(WINUWP) +#if defined(SK_BUILD_FOR_WIN) && !defined(_M_ARM64) && !defined(WINUWP) - #include "tools/gpu/gl/win/SkWGL.h" + #include "tools/ganesh/gl/win/SkWGL.h" -diff --git b/tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp a/tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp +diff --git b/tools/ganesh/gl/win/CreatePlatformGLTestContext_win.cpp a/tools/ganesh/gl/win/CreatePlatformGLTestContext_win.cpp index cb62daf..0d29da7 100644 ---- b/tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp -+++ a/tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp +--- b/tools/ganesh/gl/win/CreatePlatformGLTestContext_win.cpp ++++ a/tools/ganesh/gl/win/CreatePlatformGLTestContext_win.cpp @@ -8,6 +8,16 @@ - #include "tools/gpu/gl/GLTestContext.h" + #include "tools/ganesh/gl/GLTestContext.h" +#if defined(_M_ARM64) + @@ -103,7 +103,7 @@ index cb62daf..0d29da7 100644 + #include #include - #include "tools/gpu/gl/win/SkWGL.h" + #include "tools/ganesh/gl/win/SkWGL.h" @@ -221,3 +231,4 @@ GLTestContext* CreatePlatformGLTestContext(GrGLStandard forcedGpuAPI, } } // namespace sk_gpu_test From ecfe5b1b54ccbde50cf4d5f9ef2059c6bfc94b98 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 19:54:21 +0000 Subject: [PATCH 055/146] Bump version up to 143.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 6e15f761..fe227f24 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ pass NAME = 'skia-python' -__version__ = '142.0' +__version__ = '143.0' SKIA_PATH = os.getenv('SKIA_PATH', 'skia') SKIA_OUT_PATH = os.getenv( From e9fabf4ec4f88e9da485829f7b848291f7210162 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 19:55:49 +0000 Subject: [PATCH 056/146] Update skia to m143 (canvaskit/0.40.0-2246-gda51f0d60e) from m142 (canvaskit/0.40.0-1869-gf4ed99d244) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index f4ed99d2..da51f0d6 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit f4ed99d2443962782cf5f8b4dd27179f131e7cbe +Subproject commit da51f0d60ea2b14e845a823dc11b405dbeef42d8 From 023bdc8d946508da7b96cba2ba8568a8ef1a4b02 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 19:57:19 +0000 Subject: [PATCH 057/146] Bump version up to 144.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index fe227f24..7f018f46 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ pass NAME = 'skia-python' -__version__ = '143.0' +__version__ = '144.0' SKIA_PATH = os.getenv('SKIA_PATH', 'skia') SKIA_OUT_PATH = os.getenv( From fc32d7b4d4925ee69e59a49b781bd2c9b6bd91a2 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 19:58:21 +0000 Subject: [PATCH 058/146] Update skia to m144 (canvaskit/0.40.0-2647-gee20d565ac) from m143 (canvaskit/0.40.0-2246-gda51f0d60e) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index da51f0d6..ee20d565 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit da51f0d60ea2b14e845a823dc11b405dbeef42d8 +Subproject commit ee20d565acb08dece4a32e3f209cdd41119015ca From 4af853a04ea056a12877ef5f68a035f23fe04e01 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 20:01:04 +0000 Subject: [PATCH 059/146] Rolll skia along m139 (canvaskit/0.40.0-797-g4abe0638e3 to canvaskit/0.40.0-799-g87d8e1a22e) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index 4abe0638..87d8e1a2 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit 4abe0638e35d34b6fdb70f1f5ce0f0e1879a021e +Subproject commit 87d8e1a22e2b6d8ed039a53091abfd81691e6eb6 From d64b502eee0bfe76176dc8ee06f2d54850af2e7a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 20:02:47 +0000 Subject: [PATCH 060/146] Roll skia on m140 (canvaskit/0.40.0-1244-g1fdbea293a to canvaskit/0.40.0-1246-g5db0949ba3) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index 1fdbea29..5db0949b 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit 1fdbea293a53b270e3f5e74c92cc6670d68412ff +Subproject commit 5db0949ba318d248ebc3d33c73ad1251bf95c243 From a89bf95bcf14ef7cce2c4d8b8fc7a2269e875d56 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 22:46:33 +0000 Subject: [PATCH 061/146] m143 patch plus adjustments --- patch/skia-m143-minimize-download.patch | 70 +++++++++++++++++++++++++ scripts/build_Linux.sh | 2 +- scripts/build_Windows.sh | 2 +- scripts/build_macOS.sh | 2 +- 4 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 patch/skia-m143-minimize-download.patch diff --git a/patch/skia-m143-minimize-download.patch b/patch/skia-m143-minimize-download.patch new file mode 100644 index 00000000..d4d4051c --- /dev/null +++ b/patch/skia-m143-minimize-download.patch @@ -0,0 +1,70 @@ +diff --git a/DEPS b/DEPS +index 288a633..5e158ed 100644 +--- a/DEPS ++++ b/DEPS +@@ -31,53 +31,18 @@ vars = { + # ./tools/git-sync-deps + deps = { + "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", +- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@e9626fbced6841d804e7eaf48bb078770822032b", +- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", +- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", +- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. +- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. +- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@fb7f9cb1dd24cf2c4f49e36076f801351ef8a096", +- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", +- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", +- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@9d692d669253232c024b20ae19d2ff0b581ee1cd", +- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", + "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", +- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", +- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", + "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", + "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", +- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", + "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", +- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", +- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", +- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", +- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", +- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", + "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", +- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", + "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", + "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", +- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", +- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", +- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", +- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", +- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", + "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", +- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@3d536c0fc62b1cdea0f78c3c38d79be559855b88", + "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", +- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. +- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@dd13d781f9ac9ecd60dc849c6facfa7098492ca2", +- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@6bb105b6c4b3a246e1e6bb96366fe14c6dbfde83", +- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@d3c9bea077e2488fba40c30971b267e7dcb85e25", +- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", +- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@df274657d83f3bd8c77aef816c1cbf27352a948b", +- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@7f6326618226225269a274869ac638b870c8fe2b", +- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@ea43e2f5e51e9ad958a40fdce981f2f0abf09cb5", +- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", +- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", + "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", + "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", + +diff --git a/bin/activate-emsdk b/bin/activate-emsdk +index b3c529f..81a1c60 100755 +--- a/bin/activate-emsdk ++++ b/bin/activate-emsdk +@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') + EMSDK_VERSION = '4.0.7' + + def main(): ++ return + if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: + # This platform cannot install emsdk at the provided version. See + # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index dccead84..6de70d61 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -19,7 +19,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m142-minimize-download.patch && \ + patch -p1 < ../patch/skia-m143-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ python3 tools/git-sync-deps && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 4df495dc..dd618783 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -12,7 +12,7 @@ fi # Build skia cd skia && \ - patch -p1 < ../patch/skia-m142-minimize-download.patch && \ + patch -p1 < ../patch/skia-m143-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ patch -p1 < ../patch/fetch-gn-windows-arm64.diff && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index 07c33488..ff92751f 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -22,7 +22,7 @@ function apply_patch { } cd skia && \ - patch -p1 < ../patch/skia-m142-minimize-download.patch && \ + patch -p1 < ../patch/skia-m143-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ bin/gn gen out/Release --args=" From 67cde7edc3556ab2b2e928fc8e83b8ede9bb37c0 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 22:53:36 +0000 Subject: [PATCH 062/146] Reverse-apply Make-SkPath-immutable diff Upstream making SkPath immutable at m143 is going to break a lot of user code. Try to revert the change locally for now. Fixes #354 --- ...nd-Make-SkPath-immutable-on-GN-build.patch | 81 +++++++++++++++++++ scripts/build_Linux.sh | 1 + scripts/build_Windows.sh | 1 + scripts/build_macOS.sh | 1 + 4 files changed, 84 insertions(+) create mode 100644 patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch diff --git a/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch b/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch new file mode 100644 index 00000000..6dc0a6e8 --- /dev/null +++ b/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch @@ -0,0 +1,81 @@ +From f352da2d607fffd2629ba408d1c9fb0da8c49c60 Mon Sep 17 00:00:00 2001 +From: Kaylee Lubick +Date: Fri, 24 Oct 2025 14:25:24 -0700 +Subject: [PATCH] Reland "Make SkPath immutable on GN build" + +This reverts commit a01eb11751829966ffe9925388e47f85ce585870. + +Reason for revert: CanvasKit updated, PathKit deleted, WasmGM tests disabled + +Original change's description: +> Revert "Make SkPath immutable on GN build" +> +> This reverts commit 832f6e513d41ec0b268dc1596169312b37f7a182. +> +> Reason for revert: Breaking Ubuntu builds +> +> Original change's description: +> > Make SkPath immutable on GN build +> > +> > Our clients don't use our GN files directly, so we can set the +> > define here and it should not bleed into those builds. +> > +> > Change-Id: Ia991a3075d2f551d8b264b1629548e21f0cbe303 +> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1074076 +> > Auto-Submit: Kaylee Lubick +> > Reviewed-by: Eric Boren +> > Commit-Queue: Eric Boren +> +> No-Presubmit: true +> No-Tree-Checks: true +> No-Try: true +> Change-Id: If5b99e4b73506bc5f31a189f0a9c3462486642bb +> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1078196 +> Bot-Commit: Rubber Stamper +> Commit-Queue: Thomas Smith + +Change-Id: I6caa8371ca86eeb51d8406bad9586f341ffac1e0 +Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1084436 +Bot-Commit: Rubber Stamper +Commit-Queue: Kaylee Lubick +Signed-off-by: Hin-Tak Leung +--- + BUILD.gn | 3 +++ + gn/gn_to_bp.py | 7 ++++++- + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/BUILD.gn b/BUILD.gn +index 0fd3c5f93d..7645bf3dca 100644 +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -23,6 +23,9 @@ config("skia_public") { + defines = [ + "SK_CODEC_DECODES_BMP", + "SK_CODEC_DECODES_WBMP", ++ ++ # TODO(kjlubick,fmalita) Remove when clients updated and APIs deleted. ++ "SK_HIDE_PATH_EDIT_METHODS", + ] + cflags_objcc = [] + if (is_component_build) { +diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py +index 24195d2eea..2bbe758676 100755 +--- a/gn/gn_to_bp.py ++++ b/gn/gn_to_bp.py +@@ -771,7 +771,12 @@ here = os.path.dirname(__file__) + defs = gn_to_bp_utils.GetArchSources(os.path.join(here, 'opts.gni')) + + def get_defines(json): +- return {str(d) for d in json['targets']['//:skia']['defines']} ++ defines = {str(d) for d in json['targets']['//:skia']['defines']} ++ # TODO(kjlubick, fmalita) Add this back in to enforce Android doesn't ++ # use these methods anymore. ++ defines.remove("SK_HIDE_PATH_EDIT_METHODS") ++ return defines ++ + android_defines = get_defines(js) + linux_defines = get_defines(js_linux) + mac_defines = get_defines(js_mac) +-- +2.52.0 + diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index 6de70d61..c02cb2a2 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -19,6 +19,7 @@ fi # Build skia cd skia && \ + patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ patch -p1 < ../patch/skia-m143-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index dd618783..205a4ce2 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -12,6 +12,7 @@ fi # Build skia cd skia && \ + patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ patch -p1 < ../patch/skia-m143-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index ff92751f..ee5c370e 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -22,6 +22,7 @@ function apply_patch { } cd skia && \ + patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ patch -p1 < ../patch/skia-m143-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ From 1129e24bcaca07c2c3a0b32112c60ee67d2ae7d9 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 7 Dec 2025 22:18:57 +0000 Subject: [PATCH 063/146] m143: enum class SkApplyPerspectiveClip removed commit c501c727a00796f7b8a269680e41304155bc0b16 Author: Michael Reed Date: Sat Oct 11 12:13:47 2025 -0400 Can we remove SK_SUPPORT_LEGACY_APPLYPERSPECTIVECLIP Change-Id: I332cd3dae1584812768445388482f92df0d65324 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1072416 Reviewed-by: Florin Malita Reviewed-by: Eric Boren Reviewed-by: Kaylee Lubick Commit-Queue: Mike Reed m143: &SkPath::transform with SkApplyPerspectiveClip withdrawn with SK_SUPPORT_LEGACY_APPLYPERSPECTIVECLIP m143: &SkMatrix::mapRect with SkApplyPerspectiveClip withdrawn with SK_SUPPORT_LEGACY_APPLYPERSPECTIVECLIP In m142, SkApplyPerspectiveClip is not used by either (a not-used argument), and supported by extra SK_SUPPORT_LEGACY_APPLYPERSPECTIVECLIP. This was removed in m143. --- src/skia/Matrix.cpp | 10 +++++----- src/skia/Path.cpp | 7 ++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index ecf4f1ae..8d8203ef 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -38,12 +38,15 @@ void SetItem(SkMatrix& m, int index, SkScalar value) { } void initMatrix(py::module &m) { +/* SkApplyPerspectiveClip removed in m143 */ +/* py::enum_(m, "ApplyPerspectiveClip") .value("kNo", SkApplyPerspectiveClip::kNo, "Don't pre-clip the geometry before applying the (perspective) matrix.") .value("kYes", SkApplyPerspectiveClip::kYes, "Do pre-clip the geometry before applying the (perspective) matrix.") .export_values(); +*/ // Matrix py::class_ matrix(m, "Matrix", R"docstring( @@ -1445,18 +1448,15 @@ matrix )docstring", py::arg("dx"), py::arg("dy")) .def("mapRect", - py::overload_cast( + py::overload_cast( &SkMatrix::mapRect, py::const_), R"docstring( Returns bounds of src corners mapped by :py:class:`Matrix`. :param skia.Rect src: rectangle to map - :param skia.ApplyPerspectiveClip pc: whether to apply perspective - clipping :return: mapped bounds )docstring", - py::arg("src"), - py::arg_v("pc", SkApplyPerspectiveClip::kYes, "skia.ApplyPerspectiveClip.kYes")) + py::arg("src")) .def("mapRectToQuad", [] (const SkMatrix& matrix, const SkRect& rect) { std::vector dst(4); diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index 91cda41f..393418d3 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -1775,7 +1775,7 @@ path // py::overload_cast(&SkPath::offset), // "Offsets SkPoint array by (dx, dy).") .def("transform", - py::overload_cast( + py::overload_cast( &SkPath::transform, py::const_), R"docstring( Transforms verb array, :py:class:`Point` array, and weight by matrix. @@ -1788,11 +1788,8 @@ path :py:class:`Path` :param skia.Path dst: overwritten, transformed copy of :py:class:`Path`; may be nullptr - :param skia.ApplyPerspectiveClip pc: whether to apply perspective - clipping )docstring", - py::arg("matrix"), py::arg("dst") = nullptr, - py::arg_v("pc", SkApplyPerspectiveClip::kYes, "skia.ApplyPerspectiveClip.kYes")) + py::arg("matrix"), py::arg("dst") = nullptr) // .def("transform", // py::overload_cast( // &SkPath::transform), From e509c65b0348de5dc7ecdb7d0b0151e949ad4abb Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 00:46:21 +0000 Subject: [PATCH 064/146] m143: comment out tests involving ApplyPerspectiveClip --- tests/test_path.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_path.py b/tests/test_path.py index 26f388c1..a7e55b49 100644 --- a/tests/test_path.py +++ b/tests/test_path.py @@ -499,7 +499,7 @@ def test_Path_offset(path, args): skia.Matrix(), skia.Path(), ), - (skia.Matrix(), None, skia.ApplyPerspectiveClip.kYes), +# (skia.Matrix(), None, skia.ApplyPerspectiveClip.kYes), ] ) def test_Path_transform(path, args): From 6d60cb61c10606c50f11579270a4e0d19ebb2a28 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 7 Dec 2025 22:39:28 +0000 Subject: [PATCH 065/146] m143: &SkPath::Rect needs overload_cast<> diff between m142 and m143, include/core/SkPath.h: - static SkPath Rect(const SkRect&, SkPathDirection = SkPathDirection::kDefault, + static SkPath Rect(const SkRect&, SkPathFillType, SkPathDirection = SkPathDirection::kDefault, unsigned startIndex = 0); + static SkPath Rect(const SkRect& r, SkPathDirection direction = SkPathDirection::kDefault, + unsigned startIndex = 0) { + return Rect(r, SkPathFillType::kDefault, direction, startIndex); + } --- src/skia/Path.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index 393418d3..2d2b30d5 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -69,6 +69,8 @@ py::enum_(m, "PathDirection") "clockwise direction for adding closed contours") .value("kCCW", SkPathDirection::kCCW, "counter-clockwise direction for adding closed contours") + .value("kDefault", SkPathDirection::kDefault, + "default = clockwise direction") .export_values(); py::enum_(m, "PathSegmentMask") @@ -406,9 +408,9 @@ path )docstring", py::arg("points"), py::arg("verbs"), py::arg("conicWeights"), py::arg("fillType"), py::arg("isVolatile") = false) - .def_static("Rect", &SkPath::Rect, + .def_static("Rect", py::overload_cast(&SkPath::Rect), py::arg("rect"), - py::arg_v("pathDirection", SkPathDirection::kCW, "skia.PathDirection.kCW"), + py::arg_v("pathDirection", SkPathDirection::kDefault, "skia.PathDirection.kDefault"), py::arg("startIndex") = 0) .def_static("Oval", py::overload_cast( From 6d4fba5e79be6f634b2bdbdf40e5fe756bf97856 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 7 Dec 2025 22:47:20 +0000 Subject: [PATCH 066/146] m143: &SkPath::contains() needs py::overload_cast<> diff include/core/SkPath.h between m142 and m143: - bool contains(SkScalar x, SkScalar y) const; + bool contains(SkPoint point) const; + + // deprecated + bool contains(SkScalar x, SkScalar y) const { + return this->contains({x, y}); + } --- src/skia/Path.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index 2d2b30d5..a8a149e7 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -1847,7 +1847,7 @@ path :return: SegmentMask bits or zero )docstring") - .def("contains", &SkPath::contains, + .def("contains", py::overload_cast(&SkPath::contains, py::const_), R"docstring( Returns true if the point (x, y) is contained by :py:class:`Path`, taking into account FillType. From ba4fe4f2c5998e592a5195eef733a1babf7c94fb Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 7 Dec 2025 22:54:50 +0000 Subject: [PATCH 067/146] m143: Extra new argument to &SkPathBuilder::incReserve --- src/skia/Path.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index a8a149e7..00d6b55a 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -2462,12 +2462,12 @@ PathBuilder }, py::arg("points"), py::arg("isClosed")) .def("incReserve", - py::overload_cast(&SkPathBuilder::incReserve), + py::overload_cast(&SkPathBuilder::incReserve), R"docstring( Performance hint, to reserve extra storage for subsequent calls to lineTo, quadTo, etc. )docstring", - py::arg("extraPtCount"), py::arg("extraVerbCount")) + py::arg("extraPtCount"), py::arg("extraVerbCount"), py::arg("extraConicCount")) .def("incReserve", py::overload_cast(&SkPathBuilder::incReserve), py::arg("extraPtCount")) From 840295128f0444163bd084105b4463328c20e8d5 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 01:19:11 +0000 Subject: [PATCH 068/146] m143: PathBuilder.incReserve() now takes an extra argument. --- tests/test_path.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_path.py b/tests/test_path.py index a7e55b49..6c2215d1 100644 --- a/tests/test_path.py +++ b/tests/test_path.py @@ -835,7 +835,7 @@ def test_PathBuilder_addPolygon(path_builder): ) -@pytest.mark.parametrize('args', [(2, 2), (2, )]) +@pytest.mark.parametrize('args', [(2, 2, 2), (2, )]) def test_PathBuilder_incReserve(path_builder, args): path_builder.incReserve(*args) From 36a01d5bd61393685ee4a70663f1a27217046bc4 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 23:32:17 +0000 Subject: [PATCH 069/146] CI: Update to macos-14 See https://github.com/actions/runner-images/issues/13046 macOS 13 is fully unsupported by December 4th 2025 for GitHub. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c63ca1fd..47fac872 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,11 +15,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{10,11,12,13,14}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{10,11,12,13,14}" - os: ubuntu-22.04-arm @@ -67,11 +67,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{8,9}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{8,9}" - os: ubuntu-22.04-arm From 93d64b4c3145e1bf99d331890eda5709b004dd2e Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 23:42:46 +0000 Subject: [PATCH 070/146] m143: Adjust 0001-Disable-OpenGL-for-Windows-on-ARM64.patch Hunk #2 for "BUILD.gn" needs extra identation of 2 spaces in m143. --- ...-Disable-OpenGL-for-Windows-on-ARM64.patch | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch b/patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch index b6a371e4..c29a1648 100644 --- a/patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch +++ b/patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch @@ -33,19 +33,19 @@ index ef913e9..33f3208 100644 sources += [ "src/gpu/ganesh/gl/GrGLMakeNativeInterface_none.cpp" ] } @@ -2185,10 +2187,10 @@ if (skia_enable_tools) { - "tools/ganesh/gl/win/SkWGL.h", - "tools/ganesh/gl/win/SkWGL_win.cpp", - ] -- libs += [ -- "Gdi32.lib", -- "OpenGL32.lib", -- ] -+ libs += [ "Gdi32.lib" ] -+ if (target_cpu != "arm64") { -+ libs += [ "OpenGL32.lib" ] -+ } + "tools/ganesh/gl/win/SkWGL.h", + "tools/ganesh/gl/win/SkWGL_win.cpp", + ] +- libs += [ +- "Gdi32.lib", +- "OpenGL32.lib", +- ] ++ libs += [ "Gdi32.lib" ] ++ if (target_cpu != "arm64") { ++ libs += [ "OpenGL32.lib" ] ++ } + } } - } diff --git b/src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp a/src/gpu/ganesh/gl/win/GrGLMakeNativeInterface_win.cpp index f33f2e1..da3cbe2 100644 From c5a562ae7857e8569f4f9bcad483f7fb2e6b4b22 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 00:29:29 +0000 Subject: [PATCH 071/146] CI: use macos-15-intel to get a x64 build for auto64. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47fac872..4bb52949 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{10,11,12,13,14}"] include: @@ -67,7 +67,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{8,9}"] include: From f17b97cfc299bb1f53b84cb741bc6be013e2145b Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 00:34:54 +0000 Subject: [PATCH 072/146] m144 patch plus adjustments --- patch/skia-m144-minimize-download.patch | 74 +++++++++++++++++++++++++ scripts/build_Linux.sh | 2 +- scripts/build_Windows.sh | 2 +- scripts/build_macOS.sh | 2 +- 4 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 patch/skia-m144-minimize-download.patch diff --git a/patch/skia-m144-minimize-download.patch b/patch/skia-m144-minimize-download.patch new file mode 100644 index 00000000..fab06543 --- /dev/null +++ b/patch/skia-m144-minimize-download.patch @@ -0,0 +1,74 @@ +diff --git a/DEPS b/DEPS +index 71dec2e..feac32f 100644 +--- a/DEPS ++++ b/DEPS +@@ -31,57 +31,19 @@ vars = { + # ./tools/git-sync-deps + deps = { + "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", +- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@871a8eed7188978bf275a2956ff22f4c38578dfe", +- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", +- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", +- # Dawn requires jinja2 and markupsafe for the code generator, abseil for string formatting, +- # and a few other depencencies. +- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. +- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@6acf6ef3fe237cd4be7b825389602c93a1f16f2f", +- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@564023aa53767b5f60b3a556f0a025b7b7e8241e", +- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@c3027d884967773057bf74b957e3fea87e5df4d7", +- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@4256084ae14175d38a3ff7d739dca83ae49ccec6", +- 'third_party/externals/glslang' : 'https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang@1d47ffa8ac4374a19b302021e216a20f22a3de92', +- 'third_party/externals/webgpu-headers' : 'https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers@706853a9da45b8e89b7ea005aa267294d115f8ce', + +- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", + "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", +- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", +- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", + "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", + "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", + "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", +- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", + "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", +- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", +- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", +- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", +- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", +- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", + "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", +- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", + "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@49363adcfaf098748d7a4c8c624ad8c45a8c3a86", + "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", +- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", +- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", +- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", +- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", +- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", + "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", +- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@498a6f760dea6cdda0302406c49b8fbb09b9af92", + "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", +- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. +- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. + "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@84949a3e65981010c3aba5bb6381a945c72280c1", +- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@b824a462d4256d720bebb40e78b9eb8f78bbb305", +- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@f410b3c178740f9f5bd28d5b22a71d4bc10acd49", +- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", +- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@2fa203425eb4af9dfc6b03f97ef72b0b5bcb8350", +- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@2a3347d5e74d359e3ecb8e229917f3335bfa2dfa", +- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@c010c19e796035e92fb3b0462cb887518a41a7c1", +- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", +- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", + "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", + "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", + +diff --git a/bin/activate-emsdk b/bin/activate-emsdk +index b3c529f..81a1c60 100755 +--- a/bin/activate-emsdk ++++ b/bin/activate-emsdk +@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') + EMSDK_VERSION = '4.0.7' + + def main(): ++ return + if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: + # This platform cannot install emsdk at the provided version. See + # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index c02cb2a2..db1558ef 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -20,7 +20,7 @@ fi # Build skia cd skia && \ patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ - patch -p1 < ../patch/skia-m143-minimize-download.patch && \ + patch -p1 < ../patch/skia-m144-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ python3 tools/git-sync-deps && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 205a4ce2..60f42b29 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -13,7 +13,7 @@ fi # Build skia cd skia && \ patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ - patch -p1 < ../patch/skia-m143-minimize-download.patch && \ + patch -p1 < ../patch/skia-m144-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ patch -p1 < ../patch/fetch-gn-windows-arm64.diff && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index ee5c370e..19e5a912 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -23,7 +23,7 @@ function apply_patch { cd skia && \ patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ - patch -p1 < ../patch/skia-m143-minimize-download.patch && \ + patch -p1 < ../patch/skia-m144-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ bin/gn gen out/Release --args=" From 29d0f8c729ac0dc821e8817bfe7282aaaa7c84a3 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 01:47:32 +0000 Subject: [PATCH 073/146] m144: &SkSVGCanvas::Make() needs overload_cast<> diff between m143 and m144 of include/svg/SkSVGCanvas.h: + static std::unique_ptr Make(const SkRect& bounds, SkWStream*, Options opts); +#if !defined(SK_DISABLE_LEGACY_SVG_FACTORIES) static std::unique_ptr Make(const SkRect& bounds, SkWStream*, uint32_t flags = 0); +#endif --- src/skia/Canvas.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Canvas.cpp b/src/skia/Canvas.cpp index 8957374d..e6adf3c9 100644 --- a/src/skia/Canvas.cpp +++ b/src/skia/Canvas.cpp @@ -2546,7 +2546,7 @@ canvas m.def("MakeNullCanvas", &SkMakeNullCanvas); py::class_(m, "SVGCanvas") - .def_static("Make", &SkSVGCanvas::Make, + .def_static("Make", py::overload_cast(&SkSVGCanvas::Make), R"docstring( Returns a new canvas that will generate SVG commands from its draw calls, and send them to the provided stream. Ownership of the stream is From 133924ca7b6272cfaba4691d321ca6fe40b16ddd Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 01:57:52 +0000 Subject: [PATCH 074/146] m144: &GrBackendFormats::MakeGL() need py::overload_cast<> --- skia-m143/include/gpu/ganesh/gl/GrGLBackendSurface.h 2025-12-08 00:11:34.000000000 +0000 +++ skia-m144/include/gpu/ganesh/gl/GrGLBackendSurface.h 2025-12-08 00:15:16.000000000 +0000 @@ -20,8 +20,14 @@ namespace skgpu { enum class Mipmapped : bool; } namespace GrBackendFormats { + +// DEPRECATED: Prefer MakeGL(format) for GL_TEXTURE_2D targets and MakeGLExternal() for +// GL_TEXTURE_EXTERNAL targets. SK_API GrBackendFormat MakeGL(GrGLenum format, GrGLenum target); +SK_API GrBackendFormat MakeGL(GrGLenum format); // For GL_TEXTURE_2D textures +SK_API GrBackendFormat MakeGLExternal(); // For GL_TEXTURE_EXTERNAL textures + SK_API GrGLFormat AsGLFormat(const GrBackendFormat&); SK_API GrGLenum AsGLFormatEnum(const GrBackendFormat&); } // namespace GrBackendFormats --- src/skia/GrContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/GrContext.cpp b/src/skia/GrContext.cpp index b9d312d5..aca12364 100644 --- a/src/skia/GrContext.cpp +++ b/src/skia/GrContext.cpp @@ -301,7 +301,7 @@ py::class_(m, "GrBackendSemaphore") py::class_(m, "GrBackendFormat") .def(py::init<>()) .def(py::init()) - .def_static("MakeGL", &GrBackendFormats::MakeGL, + .def_static("MakeGL", py::overload_cast(&GrBackendFormats::MakeGL), py::arg("format"), py::arg("target")) #ifdef SK_VULKAN .def_static("MakeVk", py::overload_cast(&GrBackendFormats::MakeVk), From a428090de4618982382a11c7f8e959056e920482 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 01:04:39 +0000 Subject: [PATCH 075/146] m144: Adjust 0001-Reland-Make-SkPath-immutable-on-GN-build.patch to reverse-apply to m144 cleanly. Reversing "defines.remove('SK_DISABLE_LEGACY_NONCONST_SERIAL_PROCS')" also is likely strictly-speaking incorrect: what we want is really removing the 'defines.remove("SK_HIDE_PATH_EDIT_METHODS")' line while keeping the rest. It likely does not matter. --- patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch | 1 + 1 file changed, 1 insertion(+) diff --git a/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch b/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch index 6dc0a6e8..856f901d 100644 --- a/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch +++ b/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch @@ -71,6 +71,7 @@ index 24195d2eea..2bbe758676 100755 + # TODO(kjlubick, fmalita) Add this back in to enforce Android doesn't + # use these methods anymore. + defines.remove("SK_HIDE_PATH_EDIT_METHODS") ++ defines.remove('SK_DISABLE_LEGACY_NONCONST_SERIAL_PROCS') + return defines + android_defines = get_defines(js) From f2f3dc440ac0eda3ddc5bfe7f41807dcc79def40 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 01:14:12 +0000 Subject: [PATCH 076/146] Forgotten to adjust the line-count when modifying the patch --- patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch b/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch index 856f901d..cd62455d 100644 --- a/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch +++ b/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch @@ -62,7 +62,7 @@ diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py index 24195d2eea..2bbe758676 100755 --- a/gn/gn_to_bp.py +++ b/gn/gn_to_bp.py -@@ -771,7 +771,12 @@ here = os.path.dirname(__file__) +@@ -771,7 +771,13 @@ here = os.path.dirname(__file__) defs = gn_to_bp_utils.GetArchSources(os.path.join(here, 'opts.gni')) def get_defines(json): From def00d365dba96c7e3688656b5f359245eeeabfa Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 9 Jan 2026 00:48:00 +0000 Subject: [PATCH 077/146] Enabling some debug features, to aid debugging pybind11 3.x crashes --- setup.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/setup.py b/setup.py index 7f018f46..35764f4f 100644 --- a/setup.py +++ b/setup.py @@ -93,6 +93,8 @@ ('SK_GL', ''), ('SK_VULKAN', ''), ('SK_GANESH', '1'), + ('PYBIND11_DETAILED_ERROR_MESSAGES', '1'), + ('PYBIND11_HANDLE_REF_DEBUG', '1'), ] LIBRARIES = [ 'dl', @@ -111,11 +113,13 @@ '-Wno-attributes', '-fdata-sections', '-ffunction-sections', + '-g', ] EXTRA_LINK_ARGS = [ '-Wl,--gc-sections', '-s', '-O3', + '-g', ] From 6001040c27385d7ec79291e97a6befc67858270c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 9 Jan 2026 00:31:52 +0000 Subject: [PATCH 078/146] Simpler test for basic functionality (and crash) --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4bb52949..e3628494 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -183,6 +183,7 @@ jobs: path: ./dist/*.whl - run: python -m pip install dist/*.whl - run: python -m pip install moderngl + - run: python -c 'import skia; print(skia.__version__)' - run: python -c 'import moderngl; moderngl_context = moderngl.create_standalone_context(backend="egl"); import skia; interface = skia.GrGLInterface.MakeEGL() ; assert isinstance(skia.GrDirectContext.MakeGL(interface), skia.GrContext) ; print("Success3")' - run: eglinfo || /bin/true - run: xvfb-run -s "-screen 0 640x480x24" glxinfo From 03b4bcbef115b13debdd1ae245a1ab0a3ac881d1 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 9 Jan 2026 23:50:40 +0000 Subject: [PATCH 079/146] Tell setuptools not to strip? --- setup.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.cfg b/setup.cfg index 9c7112e2..6e16de16 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,3 +11,6 @@ deps = pytest glfw pillow + +[build] +debug=1 From 6d48e0c226d6b570d4c3de3d0236e8860931947d Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 10 Jan 2026 23:05:30 +0000 Subject: [PATCH 080/146] More difference between local and remote; to investigate crash --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 35764f4f..5a84bbc0 100644 --- a/setup.py +++ b/setup.py @@ -113,12 +113,12 @@ '-Wno-attributes', '-fdata-sections', '-ffunction-sections', + '-Wall', '-g', ] EXTRA_LINK_ARGS = [ '-Wl,--gc-sections', '-s', - '-O3', '-g', ] From cd1a64b517fa39b26dec7b01c560baeab063a84d Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 10 Jan 2026 23:42:56 +0000 Subject: [PATCH 081/146] last sync --- setup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.py b/setup.py index 5a84bbc0..c70fc09b 100644 --- a/setup.py +++ b/setup.py @@ -88,6 +88,9 @@ 'OpenGL', ] else: + os.environ["CC"] = "clang" + os.environ["CXX"] = "clang++" + os.environ["LDSHARED"] = "clang -shared" DEFINE_MACROS = [ ('VERSION_INFO', __version__), ('SK_GL', ''), From 0188f0a0b9410db4d392b2d922c24a43e7f6fe91 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 11 Jan 2026 00:41:05 +0000 Subject: [PATCH 082/146] Needs clang if we are building with clang (last change --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e3628494..fa554cf2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -165,7 +165,7 @@ jobs: container: fedora:42 permissions: write-all steps: - - run: dnf install -y dnf-utils git gcc-c++ libstdc++-devel libstdc++-static + - run: dnf install -y dnf-utils git gcc-c++ libstdc++-devel libstdc++-static clang - run: dnf install -y python3-build python3-devel python3-pytest python3-pillow python3-glfw - run: dnf install -y egl-utils glx-utils - run: dnf install -y patch From 1eba9d1f0312648a7c972fabfbb9379fd3a2e808 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:32:51 +0000 Subject: [PATCH 083/146] Filling in VkFormat and VkImageLayout values Fixes #350 See https://github.com/kyamagu/skia-python/issues/350 Segfault on pytest exit in CI against pybind11 3.0.1 This is a workaround. See upstream issues: https://github.com/pybind/pybind11/issues/5976 [BUG]: Crash due to invalid free during cleanup, if any enum is registerd, due to attempting to free a string literal https://github.com/pybind/pybind11/issues/5991 [BUG]: segfault at exit since upgrading to 3.0.x, probably due to "Make wrapped C++ functions pickleable" (https://github.com/pybind/pybind11/pull/5580) Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 349 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index 75bdaa21..d3d6fa1e 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -5,11 +5,360 @@ void initGrContext_vk(py::module &m) { py::enum_(m, "VkFormat", py::arithmetic()) + .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) + .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) + .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) + .value("B4G4R4A4_UNORM_PACK16", VkFormat::VK_FORMAT_B4G4R4A4_UNORM_PACK16) + .value("R5G6B5_UNORM_PACK16", VkFormat::VK_FORMAT_R5G6B5_UNORM_PACK16) + .value("B5G6R5_UNORM_PACK16", VkFormat::VK_FORMAT_B5G6R5_UNORM_PACK16) + .value("R5G5B5A1_UNORM_PACK16", VkFormat::VK_FORMAT_R5G5B5A1_UNORM_PACK16) + .value("B5G5R5A1_UNORM_PACK16", VkFormat::VK_FORMAT_B5G5R5A1_UNORM_PACK16) + .value("A1R5G5B5_UNORM_PACK16", VkFormat::VK_FORMAT_A1R5G5B5_UNORM_PACK16) + .value("R8_UNORM", VkFormat::VK_FORMAT_R8_UNORM) + .value("R8_SNORM", VkFormat::VK_FORMAT_R8_SNORM) + .value("R8_USCALED", VkFormat::VK_FORMAT_R8_USCALED) + .value("R8_SSCALED", VkFormat::VK_FORMAT_R8_SSCALED) + .value("R8_UINT", VkFormat::VK_FORMAT_R8_UINT) + .value("R8_SINT", VkFormat::VK_FORMAT_R8_SINT) + .value("R8_SRGB", VkFormat::VK_FORMAT_R8_SRGB) + .value("R8G8_UNORM", VkFormat::VK_FORMAT_R8G8_UNORM) + .value("R8G8_SNORM", VkFormat::VK_FORMAT_R8G8_SNORM) + .value("R8G8_USCALED", VkFormat::VK_FORMAT_R8G8_USCALED) + .value("R8G8_SSCALED", VkFormat::VK_FORMAT_R8G8_SSCALED) + .value("R8G8_UINT", VkFormat::VK_FORMAT_R8G8_UINT) + .value("R8G8_SINT", VkFormat::VK_FORMAT_R8G8_SINT) + .value("R8G8_SRGB", VkFormat::VK_FORMAT_R8G8_SRGB) + .value("R8G8B8_UNORM", VkFormat::VK_FORMAT_R8G8B8_UNORM) + .value("R8G8B8_SNORM", VkFormat::VK_FORMAT_R8G8B8_SNORM) + .value("R8G8B8_USCALED", VkFormat::VK_FORMAT_R8G8B8_USCALED) + .value("R8G8B8_SSCALED", VkFormat::VK_FORMAT_R8G8B8_SSCALED) + .value("R8G8B8_UINT", VkFormat::VK_FORMAT_R8G8B8_UINT) + .value("R8G8B8_SINT", VkFormat::VK_FORMAT_R8G8B8_SINT) + .value("R8G8B8_SRGB", VkFormat::VK_FORMAT_R8G8B8_SRGB) + .value("B8G8R8_UNORM", VkFormat::VK_FORMAT_B8G8R8_UNORM) + .value("B8G8R8_SNORM", VkFormat::VK_FORMAT_B8G8R8_SNORM) + .value("B8G8R8_USCALED", VkFormat::VK_FORMAT_B8G8R8_USCALED) + .value("B8G8R8_SSCALED", VkFormat::VK_FORMAT_B8G8R8_SSCALED) + .value("B8G8R8_UINT", VkFormat::VK_FORMAT_B8G8R8_UINT) + .value("B8G8R8_SINT", VkFormat::VK_FORMAT_B8G8R8_SINT) + .value("B8G8R8_SRGB", VkFormat::VK_FORMAT_B8G8R8_SRGB) + .value("R8G8B8A8_UNORM", VkFormat::VK_FORMAT_R8G8B8A8_UNORM) + .value("R8G8B8A8_SNORM", VkFormat::VK_FORMAT_R8G8B8A8_SNORM) + .value("R8G8B8A8_USCALED", VkFormat::VK_FORMAT_R8G8B8A8_USCALED) + .value("R8G8B8A8_SSCALED", VkFormat::VK_FORMAT_R8G8B8A8_SSCALED) + .value("R8G8B8A8_UINT", VkFormat::VK_FORMAT_R8G8B8A8_UINT) + .value("R8G8B8A8_SINT", VkFormat::VK_FORMAT_R8G8B8A8_SINT) + .value("R8G8B8A8_SRGB", VkFormat::VK_FORMAT_R8G8B8A8_SRGB) + .value("B8G8R8A8_UNORM", VkFormat::VK_FORMAT_B8G8R8A8_UNORM) + .value("B8G8R8A8_SNORM", VkFormat::VK_FORMAT_B8G8R8A8_SNORM) + .value("B8G8R8A8_USCALED", VkFormat::VK_FORMAT_B8G8R8A8_USCALED) + .value("B8G8R8A8_SSCALED", VkFormat::VK_FORMAT_B8G8R8A8_SSCALED) + .value("B8G8R8A8_UINT", VkFormat::VK_FORMAT_B8G8R8A8_UINT) + .value("B8G8R8A8_SINT", VkFormat::VK_FORMAT_B8G8R8A8_SINT) + .value("B8G8R8A8_SRGB", VkFormat::VK_FORMAT_B8G8R8A8_SRGB) + .value("A8B8G8R8_UNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UNORM_PACK32) + .value("A8B8G8R8_SNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SNORM_PACK32) + .value("A8B8G8R8_USCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_USCALED_PACK32) + .value("A8B8G8R8_SSCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SSCALED_PACK32) + .value("A8B8G8R8_UINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UINT_PACK32) + .value("A8B8G8R8_SINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SINT_PACK32) + .value("A8B8G8R8_SRGB_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SRGB_PACK32) + .value("A2R10G10B10_UNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UNORM_PACK32) + .value("A2R10G10B10_SNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SNORM_PACK32) + .value("A2R10G10B10_USCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_USCALED_PACK32) + .value("A2R10G10B10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SSCALED_PACK32) + .value("A2R10G10B10_UINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UINT_PACK32) + .value("A2R10G10B10_SINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SINT_PACK32) + .value("A2B10G10R10_UNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UNORM_PACK32) + .value("A2B10G10R10_SNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SNORM_PACK32) + .value("A2B10G10R10_USCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_USCALED_PACK32) + .value("A2B10G10R10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SSCALED_PACK32) + .value("A2B10G10R10_UINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UINT_PACK32) + .value("A2B10G10R10_SINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SINT_PACK32) + .value("R16_UNORM", VkFormat::VK_FORMAT_R16_UNORM) + .value("R16_SNORM", VkFormat::VK_FORMAT_R16_SNORM) + .value("R16_USCALED", VkFormat::VK_FORMAT_R16_USCALED) + .value("R16_SSCALED", VkFormat::VK_FORMAT_R16_SSCALED) + .value("R16_UINT", VkFormat::VK_FORMAT_R16_UINT) + .value("R16_SINT", VkFormat::VK_FORMAT_R16_SINT) + .value("R16_SFLOAT", VkFormat::VK_FORMAT_R16_SFLOAT) + .value("R16G16_UNORM", VkFormat::VK_FORMAT_R16G16_UNORM) + .value("R16G16_SNORM", VkFormat::VK_FORMAT_R16G16_SNORM) + .value("R16G16_USCALED", VkFormat::VK_FORMAT_R16G16_USCALED) + .value("R16G16_SSCALED", VkFormat::VK_FORMAT_R16G16_SSCALED) + .value("R16G16_UINT", VkFormat::VK_FORMAT_R16G16_UINT) + .value("R16G16_SINT", VkFormat::VK_FORMAT_R16G16_SINT) + .value("R16G16_SFLOAT", VkFormat::VK_FORMAT_R16G16_SFLOAT) + .value("R16G16B16_UNORM", VkFormat::VK_FORMAT_R16G16B16_UNORM) + .value("R16G16B16_SNORM", VkFormat::VK_FORMAT_R16G16B16_SNORM) + .value("R16G16B16_USCALED", VkFormat::VK_FORMAT_R16G16B16_USCALED) + .value("R16G16B16_SSCALED", VkFormat::VK_FORMAT_R16G16B16_SSCALED) + .value("R16G16B16_UINT", VkFormat::VK_FORMAT_R16G16B16_UINT) + .value("R16G16B16_SINT", VkFormat::VK_FORMAT_R16G16B16_SINT) + .value("R16G16B16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16_SFLOAT) + .value("R16G16B16A16_UNORM", VkFormat::VK_FORMAT_R16G16B16A16_UNORM) + .value("R16G16B16A16_SNORM", VkFormat::VK_FORMAT_R16G16B16A16_SNORM) + .value("R16G16B16A16_USCALED", VkFormat::VK_FORMAT_R16G16B16A16_USCALED) + .value("R16G16B16A16_SSCALED", VkFormat::VK_FORMAT_R16G16B16A16_SSCALED) + .value("R16G16B16A16_UINT", VkFormat::VK_FORMAT_R16G16B16A16_UINT) + .value("R16G16B16A16_SINT", VkFormat::VK_FORMAT_R16G16B16A16_SINT) + .value("R16G16B16A16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16A16_SFLOAT) + .value("R32_UINT", VkFormat::VK_FORMAT_R32_UINT) + .value("R32_SINT", VkFormat::VK_FORMAT_R32_SINT) + .value("R32_SFLOAT", VkFormat::VK_FORMAT_R32_SFLOAT) + .value("R32G32_UINT", VkFormat::VK_FORMAT_R32G32_UINT) + .value("R32G32_SINT", VkFormat::VK_FORMAT_R32G32_SINT) + .value("R32G32_SFLOAT", VkFormat::VK_FORMAT_R32G32_SFLOAT) + .value("R32G32B32_UINT", VkFormat::VK_FORMAT_R32G32B32_UINT) + .value("R32G32B32_SINT", VkFormat::VK_FORMAT_R32G32B32_SINT) + .value("R32G32B32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32_SFLOAT) + .value("R32G32B32A32_UINT", VkFormat::VK_FORMAT_R32G32B32A32_UINT) + .value("R32G32B32A32_SINT", VkFormat::VK_FORMAT_R32G32B32A32_SINT) + .value("R32G32B32A32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32A32_SFLOAT) + .value("R64_UINT", VkFormat::VK_FORMAT_R64_UINT) + .value("R64_SINT", VkFormat::VK_FORMAT_R64_SINT) + .value("R64_SFLOAT", VkFormat::VK_FORMAT_R64_SFLOAT) + .value("R64G64_UINT", VkFormat::VK_FORMAT_R64G64_UINT) + .value("R64G64_SINT", VkFormat::VK_FORMAT_R64G64_SINT) + .value("R64G64_SFLOAT", VkFormat::VK_FORMAT_R64G64_SFLOAT) + .value("R64G64B64_UINT", VkFormat::VK_FORMAT_R64G64B64_UINT) + .value("R64G64B64_SINT", VkFormat::VK_FORMAT_R64G64B64_SINT) + .value("R64G64B64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64_SFLOAT) + .value("R64G64B64A64_UINT", VkFormat::VK_FORMAT_R64G64B64A64_UINT) + .value("R64G64B64A64_SINT", VkFormat::VK_FORMAT_R64G64B64A64_SINT) + .value("R64G64B64A64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64A64_SFLOAT) + .value("B10G11R11_UFLOAT_PACK32", VkFormat::VK_FORMAT_B10G11R11_UFLOAT_PACK32) + .value("E5B9G9R9_UFLOAT_PACK32", VkFormat::VK_FORMAT_E5B9G9R9_UFLOAT_PACK32) + .value("D16_UNORM", VkFormat::VK_FORMAT_D16_UNORM) + .value("X8_D24_UNORM_PACK32", VkFormat::VK_FORMAT_X8_D24_UNORM_PACK32) + .value("D32_SFLOAT", VkFormat::VK_FORMAT_D32_SFLOAT) + .value("S8_UINT", VkFormat::VK_FORMAT_S8_UINT) + .value("D16_UNORM_S8_UINT", VkFormat::VK_FORMAT_D16_UNORM_S8_UINT) + .value("D24_UNORM_S8_UINT", VkFormat::VK_FORMAT_D24_UNORM_S8_UINT) + .value("D32_SFLOAT_S8_UINT", VkFormat::VK_FORMAT_D32_SFLOAT_S8_UINT) + .value("BC1_RGB_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_UNORM_BLOCK) + .value("BC1_RGB_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_SRGB_BLOCK) + .value("BC1_RGBA_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_UNORM_BLOCK) + .value("BC1_RGBA_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_SRGB_BLOCK) + .value("BC2_UNORM_BLOCK", VkFormat::VK_FORMAT_BC2_UNORM_BLOCK) + .value("BC2_SRGB_BLOCK", VkFormat::VK_FORMAT_BC2_SRGB_BLOCK) + .value("BC3_UNORM_BLOCK", VkFormat::VK_FORMAT_BC3_UNORM_BLOCK) + .value("BC3_SRGB_BLOCK", VkFormat::VK_FORMAT_BC3_SRGB_BLOCK) + .value("BC4_UNORM_BLOCK", VkFormat::VK_FORMAT_BC4_UNORM_BLOCK) + .value("BC4_SNORM_BLOCK", VkFormat::VK_FORMAT_BC4_SNORM_BLOCK) + .value("BC5_UNORM_BLOCK", VkFormat::VK_FORMAT_BC5_UNORM_BLOCK) + .value("BC5_SNORM_BLOCK", VkFormat::VK_FORMAT_BC5_SNORM_BLOCK) + .value("BC6H_UFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_UFLOAT_BLOCK) + .value("BC6H_SFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_SFLOAT_BLOCK) + .value("BC7_UNORM_BLOCK", VkFormat::VK_FORMAT_BC7_UNORM_BLOCK) + .value("BC7_SRGB_BLOCK", VkFormat::VK_FORMAT_BC7_SRGB_BLOCK) + .value("ETC2_R8G8B8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK) + .value("ETC2_R8G8B8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK) + .value("ETC2_R8G8B8A1_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK) + .value("ETC2_R8G8B8A1_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK) + .value("ETC2_R8G8B8A8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK) + .value("ETC2_R8G8B8A8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK) + .value("EAC_R11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_UNORM_BLOCK) + .value("EAC_R11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_SNORM_BLOCK) + .value("EAC_R11G11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_UNORM_BLOCK) + .value("EAC_R11G11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_SNORM_BLOCK) + .value("ASTC_4x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_UNORM_BLOCK) + .value("ASTC_4x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SRGB_BLOCK) + .value("ASTC_5x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_UNORM_BLOCK) + .value("ASTC_5x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SRGB_BLOCK) + .value("ASTC_5x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_UNORM_BLOCK) + .value("ASTC_5x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SRGB_BLOCK) + .value("ASTC_6x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_UNORM_BLOCK) + .value("ASTC_6x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SRGB_BLOCK) + .value("ASTC_6x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_UNORM_BLOCK) + .value("ASTC_6x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SRGB_BLOCK) + .value("ASTC_8x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_UNORM_BLOCK) + .value("ASTC_8x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SRGB_BLOCK) + .value("ASTC_8x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_UNORM_BLOCK) + .value("ASTC_8x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SRGB_BLOCK) + .value("ASTC_8x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_UNORM_BLOCK) + .value("ASTC_8x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SRGB_BLOCK) + .value("ASTC_10x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_UNORM_BLOCK) + .value("ASTC_10x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SRGB_BLOCK) + .value("ASTC_10x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_UNORM_BLOCK) + .value("ASTC_10x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SRGB_BLOCK) + .value("ASTC_10x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_UNORM_BLOCK) + .value("ASTC_10x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SRGB_BLOCK) + .value("ASTC_10x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_UNORM_BLOCK) + .value("ASTC_10x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SRGB_BLOCK) + .value("ASTC_12x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_UNORM_BLOCK) + .value("ASTC_12x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SRGB_BLOCK) + .value("ASTC_12x12_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_UNORM_BLOCK) + .value("ASTC_12x12_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SRGB_BLOCK) + .value("G8B8G8R8_422_UNORM", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM) + .value("B8G8R8G8_422_UNORM", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM) + .value("G8_B8_R8_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM) + .value("G8_B8R8_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM) + .value("G8_B8_R8_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM) + .value("G8_B8R8_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM) + .value("G8_B8_R8_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM) + .value("R10X6_UNORM_PACK16", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16) + .value("R10X6G10X6_UNORM_2PACK16", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16) + .value("R12X4_UNORM_PACK16", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16) + .value("R12X4G12X4_UNORM_2PACK16", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16) + .value("G16B16G16R16_422_UNORM", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM) + .value("B16G16R16G16_422_UNORM", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM) + .value("G16_B16_R16_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM) + .value("G16_B16R16_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM) + .value("G16_B16_R16_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM) + .value("G16_B16R16_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM) + .value("G16_B16_R16_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM) + .value("G8_B8R8_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16) + .value("G16_B16R16_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM) + .value("A4R4G4B4_UNORM_PACK16", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16) + .value("A4B4G4R4_UNORM_PACK16", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16) + .value("ASTC_4x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK) + .value("ASTC_5x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK) + .value("ASTC_5x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK) + .value("ASTC_6x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK) + .value("ASTC_6x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK) + .value("ASTC_8x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK) + .value("ASTC_8x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK) + .value("ASTC_8x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK) + .value("ASTC_10x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK) + .value("ASTC_10x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK) + .value("ASTC_10x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK) + .value("ASTC_10x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK) + .value("ASTC_12x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK) + .value("ASTC_12x12_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK) + .value("A1B5G5R5_UNORM_PACK16", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16) + .value("A8_UNORM", VkFormat::VK_FORMAT_A8_UNORM) + .value("PVRTC1_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC1_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG) + .value("R16G16_SFIXED5_NV", VkFormat::VK_FORMAT_R16G16_SFIXED5_NV) + .value("ASTC_4x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT) + .value("ASTC_8x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT) + .value("ASTC_10x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT) + .value("ASTC_10x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x12_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT) + .value("G8B8G8R8_422_UNORM_KHR", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM_KHR) + .value("B8G8R8G8_422_UNORM_KHR", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR) + .value("G8_B8R8_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR) + .value("G8_B8_R8_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR) + .value("G8_B8R8_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR) + .value("R10X6_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16_KHR) + .value("R10X6G10X6_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR) + .value("R12X4_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16_KHR) + .value("R12X4G12X4_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR) + .value("G16B16G16R16_422_UNORM_KHR", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM_KHR) + .value("B16G16R16G16_422_UNORM_KHR", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR) + .value("G16_B16R16_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR) + .value("G16_B16_R16_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR) + .value("G16_B16R16_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR) + .value("G8_B8R8_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT) + .value("G16_B16R16_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT) + .value("A4R4G4B4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT) + .value("A4B4G4R4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT) + .value("R16G16_S10_5_NV", VkFormat::VK_FORMAT_R16G16_S10_5_NV) + .value("A1B5G5R5_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR) + .value("A8_UNORM_KHR", VkFormat::VK_FORMAT_A8_UNORM_KHR) + .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); py::implicitly_convertible(); py::enum_(m, "VkImageLayout", py::arithmetic()) + .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) + .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) + .value("COLOR_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL) + .value("SHADER_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + .value("TRANSFER_SRC_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) + .value("TRANSFER_DST_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) + .value("PREINITIALIZED", VkImageLayout::VK_IMAGE_LAYOUT_PREINITIALIZED) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL) + .value("DEPTH_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL) + .value("DEPTH_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL) + .value("STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL) + .value("STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL) + .value("READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL) + .value("ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL) + .value("RENDERING_LOCAL_READ", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ) + .value("PRESENT_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) + .value("VIDEO_DECODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR) + .value("VIDEO_DECODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR) + .value("VIDEO_DECODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR) + .value("SHARED_PRESENT_KHR", VkImageLayout::VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR) + .value("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT) + .value("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR) + .value("VIDEO_ENCODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR) + .value("VIDEO_ENCODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR) + .value("VIDEO_ENCODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR) + .value("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) + .value("VIDEO_ENCODE_QUANTIZATION_MAP_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("SHADING_RATE_OPTIMAL_NV", VkImageLayout::VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV) + .value("RENDERING_LOCAL_READ_KHR", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR) + .value("DEPTH_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR) + .value("STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR) + .value("ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR) + .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); py::implicitly_convertible(); From 130d65d0ef88bbc19a2a79e22775bc0e2375d83a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:34:04 +0000 Subject: [PATCH 084/146] No need to have py::arithmetic() or py::implicitly_convertible for VkFormat and VkImageLayout Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index d3d6fa1e..da0b25cc 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -4,7 +4,7 @@ void initGrContext_vk(py::module &m) { -py::enum_(m, "VkFormat", py::arithmetic()) +py::enum_(m, "VkFormat") .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) @@ -315,8 +315,6 @@ py::enum_(m, "VkFormat", py::arithmetic()) .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::enum_(m, "VkImageLayout", py::arithmetic()) .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) @@ -361,8 +359,6 @@ py::enum_(m, "VkImageLayout", py::arithmetic()) .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::class_(m, "GrVkAlloc") .def(py::init<>()) // TODO: Implement me! From 3b5d0bbe92a40ebb6d2d5306a602bac34c25e502 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 23:25:55 +0000 Subject: [PATCH 085/146] Adjusting Vulkan tests to use symbolic enums Signed-off-by: Hin-Tak Leung --- tests/test_grcontext.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_grcontext.py b/tests/test_grcontext.py index 8784a6b9..88215a4d 100644 --- a/tests/test_grcontext.py +++ b/tests/test_grcontext.py @@ -62,7 +62,7 @@ def test_GrBackendFormat_MakeVk_1(): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance( - skia.GrBackendFormat.MakeVk(0), (type(None), skia.GrBackendFormat)) + skia.GrBackendFormat.MakeVk(skia.VkFormat.UNDEFINED), (type(None), skia.GrBackendFormat)) def test_GrBackendFormat_MakeVk_2(): @@ -98,7 +98,7 @@ def test_GrBackendFormat_channelMask(backend_format): def test_GrBackendFormat_asVkFormat(backend_format): - fmt = 1 + fmt = skia.VkFormat.UNDEFINED if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance(backend_format.asVkFormat(fmt), bool) @@ -266,7 +266,7 @@ def test_GrBackendRenderTarget_getVkImageInfo(backend_render_target): def test_GrBackendRenderTarget_setVkImageLayout(backend_render_target): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") - backend_render_target.setVkImageLayout(0) + backend_render_target.setVkImageLayout(skia.VkImageLayout.UNDEFINED) def test_GrBackendRenderTarget_getBackendFormat(backend_render_target): From 4198c353ade3b76f1402bbb0837b8d801a4f6dbd Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 17 Feb 2026 14:36:28 +0000 Subject: [PATCH 086/146] Fix build error against pybind11 3.0.2. src/skia/Matrix.cpp:1562:13: error: return type 'Tuple' must match previous return type 'Tuple' when lambda expression has unspecified explicit return type 1562 | return py::make_tuple(-1, -1); | ^ 1 error generated. Signed-off-by: Hin-Tak Leung --- src/skia/Matrix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index 8d8203ef..5ee18616 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1555,7 +1555,7 @@ matrix :return: maximum scale factor )docstring") .def("getMinMaxScales", - [] (const SkMatrix& matrix) { + [] (const SkMatrix& matrix) -> py::object { std::vector factors(2); if (matrix.getMinMaxScales(&factors[0])) return py::make_tuple(factors[0], factors[1]); From f8ee1aeaedeae766bf80178ce9b5db962aefb1bd Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:32:51 +0000 Subject: [PATCH 087/146] Filling in VkFormat and VkImageLayout values Fixes #350 See https://github.com/kyamagu/skia-python/issues/350 Segfault on pytest exit in CI against pybind11 3.0.1 This is a workaround. See upstream issues: https://github.com/pybind/pybind11/issues/5976 [BUG]: Crash due to invalid free during cleanup, if any enum is registerd, due to attempting to free a string literal https://github.com/pybind/pybind11/issues/5991 [BUG]: segfault at exit since upgrading to 3.0.x, probably due to "Make wrapped C++ functions pickleable" (https://github.com/pybind/pybind11/pull/5580) Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 349 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index 75bdaa21..d3d6fa1e 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -5,11 +5,360 @@ void initGrContext_vk(py::module &m) { py::enum_(m, "VkFormat", py::arithmetic()) + .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) + .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) + .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) + .value("B4G4R4A4_UNORM_PACK16", VkFormat::VK_FORMAT_B4G4R4A4_UNORM_PACK16) + .value("R5G6B5_UNORM_PACK16", VkFormat::VK_FORMAT_R5G6B5_UNORM_PACK16) + .value("B5G6R5_UNORM_PACK16", VkFormat::VK_FORMAT_B5G6R5_UNORM_PACK16) + .value("R5G5B5A1_UNORM_PACK16", VkFormat::VK_FORMAT_R5G5B5A1_UNORM_PACK16) + .value("B5G5R5A1_UNORM_PACK16", VkFormat::VK_FORMAT_B5G5R5A1_UNORM_PACK16) + .value("A1R5G5B5_UNORM_PACK16", VkFormat::VK_FORMAT_A1R5G5B5_UNORM_PACK16) + .value("R8_UNORM", VkFormat::VK_FORMAT_R8_UNORM) + .value("R8_SNORM", VkFormat::VK_FORMAT_R8_SNORM) + .value("R8_USCALED", VkFormat::VK_FORMAT_R8_USCALED) + .value("R8_SSCALED", VkFormat::VK_FORMAT_R8_SSCALED) + .value("R8_UINT", VkFormat::VK_FORMAT_R8_UINT) + .value("R8_SINT", VkFormat::VK_FORMAT_R8_SINT) + .value("R8_SRGB", VkFormat::VK_FORMAT_R8_SRGB) + .value("R8G8_UNORM", VkFormat::VK_FORMAT_R8G8_UNORM) + .value("R8G8_SNORM", VkFormat::VK_FORMAT_R8G8_SNORM) + .value("R8G8_USCALED", VkFormat::VK_FORMAT_R8G8_USCALED) + .value("R8G8_SSCALED", VkFormat::VK_FORMAT_R8G8_SSCALED) + .value("R8G8_UINT", VkFormat::VK_FORMAT_R8G8_UINT) + .value("R8G8_SINT", VkFormat::VK_FORMAT_R8G8_SINT) + .value("R8G8_SRGB", VkFormat::VK_FORMAT_R8G8_SRGB) + .value("R8G8B8_UNORM", VkFormat::VK_FORMAT_R8G8B8_UNORM) + .value("R8G8B8_SNORM", VkFormat::VK_FORMAT_R8G8B8_SNORM) + .value("R8G8B8_USCALED", VkFormat::VK_FORMAT_R8G8B8_USCALED) + .value("R8G8B8_SSCALED", VkFormat::VK_FORMAT_R8G8B8_SSCALED) + .value("R8G8B8_UINT", VkFormat::VK_FORMAT_R8G8B8_UINT) + .value("R8G8B8_SINT", VkFormat::VK_FORMAT_R8G8B8_SINT) + .value("R8G8B8_SRGB", VkFormat::VK_FORMAT_R8G8B8_SRGB) + .value("B8G8R8_UNORM", VkFormat::VK_FORMAT_B8G8R8_UNORM) + .value("B8G8R8_SNORM", VkFormat::VK_FORMAT_B8G8R8_SNORM) + .value("B8G8R8_USCALED", VkFormat::VK_FORMAT_B8G8R8_USCALED) + .value("B8G8R8_SSCALED", VkFormat::VK_FORMAT_B8G8R8_SSCALED) + .value("B8G8R8_UINT", VkFormat::VK_FORMAT_B8G8R8_UINT) + .value("B8G8R8_SINT", VkFormat::VK_FORMAT_B8G8R8_SINT) + .value("B8G8R8_SRGB", VkFormat::VK_FORMAT_B8G8R8_SRGB) + .value("R8G8B8A8_UNORM", VkFormat::VK_FORMAT_R8G8B8A8_UNORM) + .value("R8G8B8A8_SNORM", VkFormat::VK_FORMAT_R8G8B8A8_SNORM) + .value("R8G8B8A8_USCALED", VkFormat::VK_FORMAT_R8G8B8A8_USCALED) + .value("R8G8B8A8_SSCALED", VkFormat::VK_FORMAT_R8G8B8A8_SSCALED) + .value("R8G8B8A8_UINT", VkFormat::VK_FORMAT_R8G8B8A8_UINT) + .value("R8G8B8A8_SINT", VkFormat::VK_FORMAT_R8G8B8A8_SINT) + .value("R8G8B8A8_SRGB", VkFormat::VK_FORMAT_R8G8B8A8_SRGB) + .value("B8G8R8A8_UNORM", VkFormat::VK_FORMAT_B8G8R8A8_UNORM) + .value("B8G8R8A8_SNORM", VkFormat::VK_FORMAT_B8G8R8A8_SNORM) + .value("B8G8R8A8_USCALED", VkFormat::VK_FORMAT_B8G8R8A8_USCALED) + .value("B8G8R8A8_SSCALED", VkFormat::VK_FORMAT_B8G8R8A8_SSCALED) + .value("B8G8R8A8_UINT", VkFormat::VK_FORMAT_B8G8R8A8_UINT) + .value("B8G8R8A8_SINT", VkFormat::VK_FORMAT_B8G8R8A8_SINT) + .value("B8G8R8A8_SRGB", VkFormat::VK_FORMAT_B8G8R8A8_SRGB) + .value("A8B8G8R8_UNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UNORM_PACK32) + .value("A8B8G8R8_SNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SNORM_PACK32) + .value("A8B8G8R8_USCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_USCALED_PACK32) + .value("A8B8G8R8_SSCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SSCALED_PACK32) + .value("A8B8G8R8_UINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UINT_PACK32) + .value("A8B8G8R8_SINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SINT_PACK32) + .value("A8B8G8R8_SRGB_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SRGB_PACK32) + .value("A2R10G10B10_UNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UNORM_PACK32) + .value("A2R10G10B10_SNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SNORM_PACK32) + .value("A2R10G10B10_USCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_USCALED_PACK32) + .value("A2R10G10B10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SSCALED_PACK32) + .value("A2R10G10B10_UINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UINT_PACK32) + .value("A2R10G10B10_SINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SINT_PACK32) + .value("A2B10G10R10_UNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UNORM_PACK32) + .value("A2B10G10R10_SNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SNORM_PACK32) + .value("A2B10G10R10_USCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_USCALED_PACK32) + .value("A2B10G10R10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SSCALED_PACK32) + .value("A2B10G10R10_UINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UINT_PACK32) + .value("A2B10G10R10_SINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SINT_PACK32) + .value("R16_UNORM", VkFormat::VK_FORMAT_R16_UNORM) + .value("R16_SNORM", VkFormat::VK_FORMAT_R16_SNORM) + .value("R16_USCALED", VkFormat::VK_FORMAT_R16_USCALED) + .value("R16_SSCALED", VkFormat::VK_FORMAT_R16_SSCALED) + .value("R16_UINT", VkFormat::VK_FORMAT_R16_UINT) + .value("R16_SINT", VkFormat::VK_FORMAT_R16_SINT) + .value("R16_SFLOAT", VkFormat::VK_FORMAT_R16_SFLOAT) + .value("R16G16_UNORM", VkFormat::VK_FORMAT_R16G16_UNORM) + .value("R16G16_SNORM", VkFormat::VK_FORMAT_R16G16_SNORM) + .value("R16G16_USCALED", VkFormat::VK_FORMAT_R16G16_USCALED) + .value("R16G16_SSCALED", VkFormat::VK_FORMAT_R16G16_SSCALED) + .value("R16G16_UINT", VkFormat::VK_FORMAT_R16G16_UINT) + .value("R16G16_SINT", VkFormat::VK_FORMAT_R16G16_SINT) + .value("R16G16_SFLOAT", VkFormat::VK_FORMAT_R16G16_SFLOAT) + .value("R16G16B16_UNORM", VkFormat::VK_FORMAT_R16G16B16_UNORM) + .value("R16G16B16_SNORM", VkFormat::VK_FORMAT_R16G16B16_SNORM) + .value("R16G16B16_USCALED", VkFormat::VK_FORMAT_R16G16B16_USCALED) + .value("R16G16B16_SSCALED", VkFormat::VK_FORMAT_R16G16B16_SSCALED) + .value("R16G16B16_UINT", VkFormat::VK_FORMAT_R16G16B16_UINT) + .value("R16G16B16_SINT", VkFormat::VK_FORMAT_R16G16B16_SINT) + .value("R16G16B16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16_SFLOAT) + .value("R16G16B16A16_UNORM", VkFormat::VK_FORMAT_R16G16B16A16_UNORM) + .value("R16G16B16A16_SNORM", VkFormat::VK_FORMAT_R16G16B16A16_SNORM) + .value("R16G16B16A16_USCALED", VkFormat::VK_FORMAT_R16G16B16A16_USCALED) + .value("R16G16B16A16_SSCALED", VkFormat::VK_FORMAT_R16G16B16A16_SSCALED) + .value("R16G16B16A16_UINT", VkFormat::VK_FORMAT_R16G16B16A16_UINT) + .value("R16G16B16A16_SINT", VkFormat::VK_FORMAT_R16G16B16A16_SINT) + .value("R16G16B16A16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16A16_SFLOAT) + .value("R32_UINT", VkFormat::VK_FORMAT_R32_UINT) + .value("R32_SINT", VkFormat::VK_FORMAT_R32_SINT) + .value("R32_SFLOAT", VkFormat::VK_FORMAT_R32_SFLOAT) + .value("R32G32_UINT", VkFormat::VK_FORMAT_R32G32_UINT) + .value("R32G32_SINT", VkFormat::VK_FORMAT_R32G32_SINT) + .value("R32G32_SFLOAT", VkFormat::VK_FORMAT_R32G32_SFLOAT) + .value("R32G32B32_UINT", VkFormat::VK_FORMAT_R32G32B32_UINT) + .value("R32G32B32_SINT", VkFormat::VK_FORMAT_R32G32B32_SINT) + .value("R32G32B32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32_SFLOAT) + .value("R32G32B32A32_UINT", VkFormat::VK_FORMAT_R32G32B32A32_UINT) + .value("R32G32B32A32_SINT", VkFormat::VK_FORMAT_R32G32B32A32_SINT) + .value("R32G32B32A32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32A32_SFLOAT) + .value("R64_UINT", VkFormat::VK_FORMAT_R64_UINT) + .value("R64_SINT", VkFormat::VK_FORMAT_R64_SINT) + .value("R64_SFLOAT", VkFormat::VK_FORMAT_R64_SFLOAT) + .value("R64G64_UINT", VkFormat::VK_FORMAT_R64G64_UINT) + .value("R64G64_SINT", VkFormat::VK_FORMAT_R64G64_SINT) + .value("R64G64_SFLOAT", VkFormat::VK_FORMAT_R64G64_SFLOAT) + .value("R64G64B64_UINT", VkFormat::VK_FORMAT_R64G64B64_UINT) + .value("R64G64B64_SINT", VkFormat::VK_FORMAT_R64G64B64_SINT) + .value("R64G64B64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64_SFLOAT) + .value("R64G64B64A64_UINT", VkFormat::VK_FORMAT_R64G64B64A64_UINT) + .value("R64G64B64A64_SINT", VkFormat::VK_FORMAT_R64G64B64A64_SINT) + .value("R64G64B64A64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64A64_SFLOAT) + .value("B10G11R11_UFLOAT_PACK32", VkFormat::VK_FORMAT_B10G11R11_UFLOAT_PACK32) + .value("E5B9G9R9_UFLOAT_PACK32", VkFormat::VK_FORMAT_E5B9G9R9_UFLOAT_PACK32) + .value("D16_UNORM", VkFormat::VK_FORMAT_D16_UNORM) + .value("X8_D24_UNORM_PACK32", VkFormat::VK_FORMAT_X8_D24_UNORM_PACK32) + .value("D32_SFLOAT", VkFormat::VK_FORMAT_D32_SFLOAT) + .value("S8_UINT", VkFormat::VK_FORMAT_S8_UINT) + .value("D16_UNORM_S8_UINT", VkFormat::VK_FORMAT_D16_UNORM_S8_UINT) + .value("D24_UNORM_S8_UINT", VkFormat::VK_FORMAT_D24_UNORM_S8_UINT) + .value("D32_SFLOAT_S8_UINT", VkFormat::VK_FORMAT_D32_SFLOAT_S8_UINT) + .value("BC1_RGB_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_UNORM_BLOCK) + .value("BC1_RGB_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_SRGB_BLOCK) + .value("BC1_RGBA_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_UNORM_BLOCK) + .value("BC1_RGBA_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_SRGB_BLOCK) + .value("BC2_UNORM_BLOCK", VkFormat::VK_FORMAT_BC2_UNORM_BLOCK) + .value("BC2_SRGB_BLOCK", VkFormat::VK_FORMAT_BC2_SRGB_BLOCK) + .value("BC3_UNORM_BLOCK", VkFormat::VK_FORMAT_BC3_UNORM_BLOCK) + .value("BC3_SRGB_BLOCK", VkFormat::VK_FORMAT_BC3_SRGB_BLOCK) + .value("BC4_UNORM_BLOCK", VkFormat::VK_FORMAT_BC4_UNORM_BLOCK) + .value("BC4_SNORM_BLOCK", VkFormat::VK_FORMAT_BC4_SNORM_BLOCK) + .value("BC5_UNORM_BLOCK", VkFormat::VK_FORMAT_BC5_UNORM_BLOCK) + .value("BC5_SNORM_BLOCK", VkFormat::VK_FORMAT_BC5_SNORM_BLOCK) + .value("BC6H_UFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_UFLOAT_BLOCK) + .value("BC6H_SFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_SFLOAT_BLOCK) + .value("BC7_UNORM_BLOCK", VkFormat::VK_FORMAT_BC7_UNORM_BLOCK) + .value("BC7_SRGB_BLOCK", VkFormat::VK_FORMAT_BC7_SRGB_BLOCK) + .value("ETC2_R8G8B8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK) + .value("ETC2_R8G8B8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK) + .value("ETC2_R8G8B8A1_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK) + .value("ETC2_R8G8B8A1_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK) + .value("ETC2_R8G8B8A8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK) + .value("ETC2_R8G8B8A8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK) + .value("EAC_R11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_UNORM_BLOCK) + .value("EAC_R11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_SNORM_BLOCK) + .value("EAC_R11G11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_UNORM_BLOCK) + .value("EAC_R11G11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_SNORM_BLOCK) + .value("ASTC_4x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_UNORM_BLOCK) + .value("ASTC_4x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SRGB_BLOCK) + .value("ASTC_5x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_UNORM_BLOCK) + .value("ASTC_5x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SRGB_BLOCK) + .value("ASTC_5x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_UNORM_BLOCK) + .value("ASTC_5x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SRGB_BLOCK) + .value("ASTC_6x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_UNORM_BLOCK) + .value("ASTC_6x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SRGB_BLOCK) + .value("ASTC_6x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_UNORM_BLOCK) + .value("ASTC_6x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SRGB_BLOCK) + .value("ASTC_8x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_UNORM_BLOCK) + .value("ASTC_8x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SRGB_BLOCK) + .value("ASTC_8x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_UNORM_BLOCK) + .value("ASTC_8x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SRGB_BLOCK) + .value("ASTC_8x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_UNORM_BLOCK) + .value("ASTC_8x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SRGB_BLOCK) + .value("ASTC_10x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_UNORM_BLOCK) + .value("ASTC_10x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SRGB_BLOCK) + .value("ASTC_10x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_UNORM_BLOCK) + .value("ASTC_10x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SRGB_BLOCK) + .value("ASTC_10x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_UNORM_BLOCK) + .value("ASTC_10x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SRGB_BLOCK) + .value("ASTC_10x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_UNORM_BLOCK) + .value("ASTC_10x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SRGB_BLOCK) + .value("ASTC_12x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_UNORM_BLOCK) + .value("ASTC_12x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SRGB_BLOCK) + .value("ASTC_12x12_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_UNORM_BLOCK) + .value("ASTC_12x12_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SRGB_BLOCK) + .value("G8B8G8R8_422_UNORM", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM) + .value("B8G8R8G8_422_UNORM", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM) + .value("G8_B8_R8_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM) + .value("G8_B8R8_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM) + .value("G8_B8_R8_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM) + .value("G8_B8R8_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM) + .value("G8_B8_R8_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM) + .value("R10X6_UNORM_PACK16", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16) + .value("R10X6G10X6_UNORM_2PACK16", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16) + .value("R12X4_UNORM_PACK16", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16) + .value("R12X4G12X4_UNORM_2PACK16", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16) + .value("G16B16G16R16_422_UNORM", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM) + .value("B16G16R16G16_422_UNORM", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM) + .value("G16_B16_R16_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM) + .value("G16_B16R16_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM) + .value("G16_B16_R16_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM) + .value("G16_B16R16_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM) + .value("G16_B16_R16_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM) + .value("G8_B8R8_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16) + .value("G16_B16R16_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM) + .value("A4R4G4B4_UNORM_PACK16", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16) + .value("A4B4G4R4_UNORM_PACK16", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16) + .value("ASTC_4x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK) + .value("ASTC_5x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK) + .value("ASTC_5x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK) + .value("ASTC_6x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK) + .value("ASTC_6x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK) + .value("ASTC_8x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK) + .value("ASTC_8x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK) + .value("ASTC_8x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK) + .value("ASTC_10x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK) + .value("ASTC_10x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK) + .value("ASTC_10x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK) + .value("ASTC_10x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK) + .value("ASTC_12x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK) + .value("ASTC_12x12_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK) + .value("A1B5G5R5_UNORM_PACK16", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16) + .value("A8_UNORM", VkFormat::VK_FORMAT_A8_UNORM) + .value("PVRTC1_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC1_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG) + .value("R16G16_SFIXED5_NV", VkFormat::VK_FORMAT_R16G16_SFIXED5_NV) + .value("ASTC_4x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT) + .value("ASTC_8x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT) + .value("ASTC_10x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT) + .value("ASTC_10x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x12_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT) + .value("G8B8G8R8_422_UNORM_KHR", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM_KHR) + .value("B8G8R8G8_422_UNORM_KHR", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR) + .value("G8_B8R8_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR) + .value("G8_B8_R8_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR) + .value("G8_B8R8_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR) + .value("R10X6_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16_KHR) + .value("R10X6G10X6_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR) + .value("R12X4_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16_KHR) + .value("R12X4G12X4_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR) + .value("G16B16G16R16_422_UNORM_KHR", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM_KHR) + .value("B16G16R16G16_422_UNORM_KHR", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR) + .value("G16_B16R16_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR) + .value("G16_B16_R16_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR) + .value("G16_B16R16_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR) + .value("G8_B8R8_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT) + .value("G16_B16R16_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT) + .value("A4R4G4B4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT) + .value("A4B4G4R4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT) + .value("R16G16_S10_5_NV", VkFormat::VK_FORMAT_R16G16_S10_5_NV) + .value("A1B5G5R5_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR) + .value("A8_UNORM_KHR", VkFormat::VK_FORMAT_A8_UNORM_KHR) + .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); py::implicitly_convertible(); py::enum_(m, "VkImageLayout", py::arithmetic()) + .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) + .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) + .value("COLOR_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL) + .value("SHADER_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + .value("TRANSFER_SRC_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) + .value("TRANSFER_DST_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) + .value("PREINITIALIZED", VkImageLayout::VK_IMAGE_LAYOUT_PREINITIALIZED) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL) + .value("DEPTH_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL) + .value("DEPTH_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL) + .value("STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL) + .value("STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL) + .value("READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL) + .value("ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL) + .value("RENDERING_LOCAL_READ", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ) + .value("PRESENT_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) + .value("VIDEO_DECODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR) + .value("VIDEO_DECODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR) + .value("VIDEO_DECODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR) + .value("SHARED_PRESENT_KHR", VkImageLayout::VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR) + .value("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT) + .value("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR) + .value("VIDEO_ENCODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR) + .value("VIDEO_ENCODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR) + .value("VIDEO_ENCODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR) + .value("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) + .value("VIDEO_ENCODE_QUANTIZATION_MAP_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("SHADING_RATE_OPTIMAL_NV", VkImageLayout::VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV) + .value("RENDERING_LOCAL_READ_KHR", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR) + .value("DEPTH_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR) + .value("STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR) + .value("ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR) + .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); py::implicitly_convertible(); From a0d7a834e4fd003fae89b606e921643735fac3b7 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:34:04 +0000 Subject: [PATCH 088/146] No need to have py::arithmetic() or py::implicitly_convertible for VkFormat and VkImageLayout Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index d3d6fa1e..da0b25cc 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -4,7 +4,7 @@ void initGrContext_vk(py::module &m) { -py::enum_(m, "VkFormat", py::arithmetic()) +py::enum_(m, "VkFormat") .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) @@ -315,8 +315,6 @@ py::enum_(m, "VkFormat", py::arithmetic()) .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::enum_(m, "VkImageLayout", py::arithmetic()) .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) @@ -361,8 +359,6 @@ py::enum_(m, "VkImageLayout", py::arithmetic()) .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::class_(m, "GrVkAlloc") .def(py::init<>()) // TODO: Implement me! From c25e729d90c6c7650b22f5304ea6cc3981108b3a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 23:25:55 +0000 Subject: [PATCH 089/146] Adjusting Vulkan tests to use symbolic enums Signed-off-by: Hin-Tak Leung --- tests/test_grcontext.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_grcontext.py b/tests/test_grcontext.py index 8784a6b9..88215a4d 100644 --- a/tests/test_grcontext.py +++ b/tests/test_grcontext.py @@ -62,7 +62,7 @@ def test_GrBackendFormat_MakeVk_1(): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance( - skia.GrBackendFormat.MakeVk(0), (type(None), skia.GrBackendFormat)) + skia.GrBackendFormat.MakeVk(skia.VkFormat.UNDEFINED), (type(None), skia.GrBackendFormat)) def test_GrBackendFormat_MakeVk_2(): @@ -98,7 +98,7 @@ def test_GrBackendFormat_channelMask(backend_format): def test_GrBackendFormat_asVkFormat(backend_format): - fmt = 1 + fmt = skia.VkFormat.UNDEFINED if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance(backend_format.asVkFormat(fmt), bool) @@ -266,7 +266,7 @@ def test_GrBackendRenderTarget_getVkImageInfo(backend_render_target): def test_GrBackendRenderTarget_setVkImageLayout(backend_render_target): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") - backend_render_target.setVkImageLayout(0) + backend_render_target.setVkImageLayout(skia.VkImageLayout.UNDEFINED) def test_GrBackendRenderTarget_getBackendFormat(backend_render_target): From 6277017795b6c2146b08dd0a756e2b36785b3f1b Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 17 Feb 2026 14:36:28 +0000 Subject: [PATCH 090/146] Fix build error against pybind11 3.0.2. src/skia/Matrix.cpp:1562:13: error: return type 'Tuple' must match previous return type 'Tuple' when lambda expression has unspecified explicit return type 1562 | return py::make_tuple(-1, -1); | ^ 1 error generated. Signed-off-by: Hin-Tak Leung --- src/skia/Matrix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index 62991092..fcea333d 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1555,7 +1555,7 @@ matrix :return: maximum scale factor )docstring") .def("getMinMaxScales", - [] (const SkMatrix& matrix) { + [] (const SkMatrix& matrix) -> py::object { std::vector factors(2); if (matrix.getMinMaxScales(&factors[0])) return py::make_tuple(factors[0], factors[1]); From 982a5a9c685380899ed879d68a0e9d789fd9ab30 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:32:51 +0000 Subject: [PATCH 091/146] Filling in VkFormat and VkImageLayout values Fixes #350 See https://github.com/kyamagu/skia-python/issues/350 Segfault on pytest exit in CI against pybind11 3.0.1 This is a workaround. See upstream issues: https://github.com/pybind/pybind11/issues/5976 [BUG]: Crash due to invalid free during cleanup, if any enum is registerd, due to attempting to free a string literal https://github.com/pybind/pybind11/issues/5991 [BUG]: segfault at exit since upgrading to 3.0.x, probably due to "Make wrapped C++ functions pickleable" (https://github.com/pybind/pybind11/pull/5580) Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 349 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index 75bdaa21..d3d6fa1e 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -5,11 +5,360 @@ void initGrContext_vk(py::module &m) { py::enum_(m, "VkFormat", py::arithmetic()) + .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) + .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) + .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) + .value("B4G4R4A4_UNORM_PACK16", VkFormat::VK_FORMAT_B4G4R4A4_UNORM_PACK16) + .value("R5G6B5_UNORM_PACK16", VkFormat::VK_FORMAT_R5G6B5_UNORM_PACK16) + .value("B5G6R5_UNORM_PACK16", VkFormat::VK_FORMAT_B5G6R5_UNORM_PACK16) + .value("R5G5B5A1_UNORM_PACK16", VkFormat::VK_FORMAT_R5G5B5A1_UNORM_PACK16) + .value("B5G5R5A1_UNORM_PACK16", VkFormat::VK_FORMAT_B5G5R5A1_UNORM_PACK16) + .value("A1R5G5B5_UNORM_PACK16", VkFormat::VK_FORMAT_A1R5G5B5_UNORM_PACK16) + .value("R8_UNORM", VkFormat::VK_FORMAT_R8_UNORM) + .value("R8_SNORM", VkFormat::VK_FORMAT_R8_SNORM) + .value("R8_USCALED", VkFormat::VK_FORMAT_R8_USCALED) + .value("R8_SSCALED", VkFormat::VK_FORMAT_R8_SSCALED) + .value("R8_UINT", VkFormat::VK_FORMAT_R8_UINT) + .value("R8_SINT", VkFormat::VK_FORMAT_R8_SINT) + .value("R8_SRGB", VkFormat::VK_FORMAT_R8_SRGB) + .value("R8G8_UNORM", VkFormat::VK_FORMAT_R8G8_UNORM) + .value("R8G8_SNORM", VkFormat::VK_FORMAT_R8G8_SNORM) + .value("R8G8_USCALED", VkFormat::VK_FORMAT_R8G8_USCALED) + .value("R8G8_SSCALED", VkFormat::VK_FORMAT_R8G8_SSCALED) + .value("R8G8_UINT", VkFormat::VK_FORMAT_R8G8_UINT) + .value("R8G8_SINT", VkFormat::VK_FORMAT_R8G8_SINT) + .value("R8G8_SRGB", VkFormat::VK_FORMAT_R8G8_SRGB) + .value("R8G8B8_UNORM", VkFormat::VK_FORMAT_R8G8B8_UNORM) + .value("R8G8B8_SNORM", VkFormat::VK_FORMAT_R8G8B8_SNORM) + .value("R8G8B8_USCALED", VkFormat::VK_FORMAT_R8G8B8_USCALED) + .value("R8G8B8_SSCALED", VkFormat::VK_FORMAT_R8G8B8_SSCALED) + .value("R8G8B8_UINT", VkFormat::VK_FORMAT_R8G8B8_UINT) + .value("R8G8B8_SINT", VkFormat::VK_FORMAT_R8G8B8_SINT) + .value("R8G8B8_SRGB", VkFormat::VK_FORMAT_R8G8B8_SRGB) + .value("B8G8R8_UNORM", VkFormat::VK_FORMAT_B8G8R8_UNORM) + .value("B8G8R8_SNORM", VkFormat::VK_FORMAT_B8G8R8_SNORM) + .value("B8G8R8_USCALED", VkFormat::VK_FORMAT_B8G8R8_USCALED) + .value("B8G8R8_SSCALED", VkFormat::VK_FORMAT_B8G8R8_SSCALED) + .value("B8G8R8_UINT", VkFormat::VK_FORMAT_B8G8R8_UINT) + .value("B8G8R8_SINT", VkFormat::VK_FORMAT_B8G8R8_SINT) + .value("B8G8R8_SRGB", VkFormat::VK_FORMAT_B8G8R8_SRGB) + .value("R8G8B8A8_UNORM", VkFormat::VK_FORMAT_R8G8B8A8_UNORM) + .value("R8G8B8A8_SNORM", VkFormat::VK_FORMAT_R8G8B8A8_SNORM) + .value("R8G8B8A8_USCALED", VkFormat::VK_FORMAT_R8G8B8A8_USCALED) + .value("R8G8B8A8_SSCALED", VkFormat::VK_FORMAT_R8G8B8A8_SSCALED) + .value("R8G8B8A8_UINT", VkFormat::VK_FORMAT_R8G8B8A8_UINT) + .value("R8G8B8A8_SINT", VkFormat::VK_FORMAT_R8G8B8A8_SINT) + .value("R8G8B8A8_SRGB", VkFormat::VK_FORMAT_R8G8B8A8_SRGB) + .value("B8G8R8A8_UNORM", VkFormat::VK_FORMAT_B8G8R8A8_UNORM) + .value("B8G8R8A8_SNORM", VkFormat::VK_FORMAT_B8G8R8A8_SNORM) + .value("B8G8R8A8_USCALED", VkFormat::VK_FORMAT_B8G8R8A8_USCALED) + .value("B8G8R8A8_SSCALED", VkFormat::VK_FORMAT_B8G8R8A8_SSCALED) + .value("B8G8R8A8_UINT", VkFormat::VK_FORMAT_B8G8R8A8_UINT) + .value("B8G8R8A8_SINT", VkFormat::VK_FORMAT_B8G8R8A8_SINT) + .value("B8G8R8A8_SRGB", VkFormat::VK_FORMAT_B8G8R8A8_SRGB) + .value("A8B8G8R8_UNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UNORM_PACK32) + .value("A8B8G8R8_SNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SNORM_PACK32) + .value("A8B8G8R8_USCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_USCALED_PACK32) + .value("A8B8G8R8_SSCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SSCALED_PACK32) + .value("A8B8G8R8_UINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UINT_PACK32) + .value("A8B8G8R8_SINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SINT_PACK32) + .value("A8B8G8R8_SRGB_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SRGB_PACK32) + .value("A2R10G10B10_UNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UNORM_PACK32) + .value("A2R10G10B10_SNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SNORM_PACK32) + .value("A2R10G10B10_USCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_USCALED_PACK32) + .value("A2R10G10B10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SSCALED_PACK32) + .value("A2R10G10B10_UINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UINT_PACK32) + .value("A2R10G10B10_SINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SINT_PACK32) + .value("A2B10G10R10_UNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UNORM_PACK32) + .value("A2B10G10R10_SNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SNORM_PACK32) + .value("A2B10G10R10_USCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_USCALED_PACK32) + .value("A2B10G10R10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SSCALED_PACK32) + .value("A2B10G10R10_UINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UINT_PACK32) + .value("A2B10G10R10_SINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SINT_PACK32) + .value("R16_UNORM", VkFormat::VK_FORMAT_R16_UNORM) + .value("R16_SNORM", VkFormat::VK_FORMAT_R16_SNORM) + .value("R16_USCALED", VkFormat::VK_FORMAT_R16_USCALED) + .value("R16_SSCALED", VkFormat::VK_FORMAT_R16_SSCALED) + .value("R16_UINT", VkFormat::VK_FORMAT_R16_UINT) + .value("R16_SINT", VkFormat::VK_FORMAT_R16_SINT) + .value("R16_SFLOAT", VkFormat::VK_FORMAT_R16_SFLOAT) + .value("R16G16_UNORM", VkFormat::VK_FORMAT_R16G16_UNORM) + .value("R16G16_SNORM", VkFormat::VK_FORMAT_R16G16_SNORM) + .value("R16G16_USCALED", VkFormat::VK_FORMAT_R16G16_USCALED) + .value("R16G16_SSCALED", VkFormat::VK_FORMAT_R16G16_SSCALED) + .value("R16G16_UINT", VkFormat::VK_FORMAT_R16G16_UINT) + .value("R16G16_SINT", VkFormat::VK_FORMAT_R16G16_SINT) + .value("R16G16_SFLOAT", VkFormat::VK_FORMAT_R16G16_SFLOAT) + .value("R16G16B16_UNORM", VkFormat::VK_FORMAT_R16G16B16_UNORM) + .value("R16G16B16_SNORM", VkFormat::VK_FORMAT_R16G16B16_SNORM) + .value("R16G16B16_USCALED", VkFormat::VK_FORMAT_R16G16B16_USCALED) + .value("R16G16B16_SSCALED", VkFormat::VK_FORMAT_R16G16B16_SSCALED) + .value("R16G16B16_UINT", VkFormat::VK_FORMAT_R16G16B16_UINT) + .value("R16G16B16_SINT", VkFormat::VK_FORMAT_R16G16B16_SINT) + .value("R16G16B16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16_SFLOAT) + .value("R16G16B16A16_UNORM", VkFormat::VK_FORMAT_R16G16B16A16_UNORM) + .value("R16G16B16A16_SNORM", VkFormat::VK_FORMAT_R16G16B16A16_SNORM) + .value("R16G16B16A16_USCALED", VkFormat::VK_FORMAT_R16G16B16A16_USCALED) + .value("R16G16B16A16_SSCALED", VkFormat::VK_FORMAT_R16G16B16A16_SSCALED) + .value("R16G16B16A16_UINT", VkFormat::VK_FORMAT_R16G16B16A16_UINT) + .value("R16G16B16A16_SINT", VkFormat::VK_FORMAT_R16G16B16A16_SINT) + .value("R16G16B16A16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16A16_SFLOAT) + .value("R32_UINT", VkFormat::VK_FORMAT_R32_UINT) + .value("R32_SINT", VkFormat::VK_FORMAT_R32_SINT) + .value("R32_SFLOAT", VkFormat::VK_FORMAT_R32_SFLOAT) + .value("R32G32_UINT", VkFormat::VK_FORMAT_R32G32_UINT) + .value("R32G32_SINT", VkFormat::VK_FORMAT_R32G32_SINT) + .value("R32G32_SFLOAT", VkFormat::VK_FORMAT_R32G32_SFLOAT) + .value("R32G32B32_UINT", VkFormat::VK_FORMAT_R32G32B32_UINT) + .value("R32G32B32_SINT", VkFormat::VK_FORMAT_R32G32B32_SINT) + .value("R32G32B32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32_SFLOAT) + .value("R32G32B32A32_UINT", VkFormat::VK_FORMAT_R32G32B32A32_UINT) + .value("R32G32B32A32_SINT", VkFormat::VK_FORMAT_R32G32B32A32_SINT) + .value("R32G32B32A32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32A32_SFLOAT) + .value("R64_UINT", VkFormat::VK_FORMAT_R64_UINT) + .value("R64_SINT", VkFormat::VK_FORMAT_R64_SINT) + .value("R64_SFLOAT", VkFormat::VK_FORMAT_R64_SFLOAT) + .value("R64G64_UINT", VkFormat::VK_FORMAT_R64G64_UINT) + .value("R64G64_SINT", VkFormat::VK_FORMAT_R64G64_SINT) + .value("R64G64_SFLOAT", VkFormat::VK_FORMAT_R64G64_SFLOAT) + .value("R64G64B64_UINT", VkFormat::VK_FORMAT_R64G64B64_UINT) + .value("R64G64B64_SINT", VkFormat::VK_FORMAT_R64G64B64_SINT) + .value("R64G64B64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64_SFLOAT) + .value("R64G64B64A64_UINT", VkFormat::VK_FORMAT_R64G64B64A64_UINT) + .value("R64G64B64A64_SINT", VkFormat::VK_FORMAT_R64G64B64A64_SINT) + .value("R64G64B64A64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64A64_SFLOAT) + .value("B10G11R11_UFLOAT_PACK32", VkFormat::VK_FORMAT_B10G11R11_UFLOAT_PACK32) + .value("E5B9G9R9_UFLOAT_PACK32", VkFormat::VK_FORMAT_E5B9G9R9_UFLOAT_PACK32) + .value("D16_UNORM", VkFormat::VK_FORMAT_D16_UNORM) + .value("X8_D24_UNORM_PACK32", VkFormat::VK_FORMAT_X8_D24_UNORM_PACK32) + .value("D32_SFLOAT", VkFormat::VK_FORMAT_D32_SFLOAT) + .value("S8_UINT", VkFormat::VK_FORMAT_S8_UINT) + .value("D16_UNORM_S8_UINT", VkFormat::VK_FORMAT_D16_UNORM_S8_UINT) + .value("D24_UNORM_S8_UINT", VkFormat::VK_FORMAT_D24_UNORM_S8_UINT) + .value("D32_SFLOAT_S8_UINT", VkFormat::VK_FORMAT_D32_SFLOAT_S8_UINT) + .value("BC1_RGB_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_UNORM_BLOCK) + .value("BC1_RGB_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_SRGB_BLOCK) + .value("BC1_RGBA_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_UNORM_BLOCK) + .value("BC1_RGBA_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_SRGB_BLOCK) + .value("BC2_UNORM_BLOCK", VkFormat::VK_FORMAT_BC2_UNORM_BLOCK) + .value("BC2_SRGB_BLOCK", VkFormat::VK_FORMAT_BC2_SRGB_BLOCK) + .value("BC3_UNORM_BLOCK", VkFormat::VK_FORMAT_BC3_UNORM_BLOCK) + .value("BC3_SRGB_BLOCK", VkFormat::VK_FORMAT_BC3_SRGB_BLOCK) + .value("BC4_UNORM_BLOCK", VkFormat::VK_FORMAT_BC4_UNORM_BLOCK) + .value("BC4_SNORM_BLOCK", VkFormat::VK_FORMAT_BC4_SNORM_BLOCK) + .value("BC5_UNORM_BLOCK", VkFormat::VK_FORMAT_BC5_UNORM_BLOCK) + .value("BC5_SNORM_BLOCK", VkFormat::VK_FORMAT_BC5_SNORM_BLOCK) + .value("BC6H_UFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_UFLOAT_BLOCK) + .value("BC6H_SFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_SFLOAT_BLOCK) + .value("BC7_UNORM_BLOCK", VkFormat::VK_FORMAT_BC7_UNORM_BLOCK) + .value("BC7_SRGB_BLOCK", VkFormat::VK_FORMAT_BC7_SRGB_BLOCK) + .value("ETC2_R8G8B8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK) + .value("ETC2_R8G8B8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK) + .value("ETC2_R8G8B8A1_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK) + .value("ETC2_R8G8B8A1_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK) + .value("ETC2_R8G8B8A8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK) + .value("ETC2_R8G8B8A8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK) + .value("EAC_R11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_UNORM_BLOCK) + .value("EAC_R11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_SNORM_BLOCK) + .value("EAC_R11G11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_UNORM_BLOCK) + .value("EAC_R11G11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_SNORM_BLOCK) + .value("ASTC_4x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_UNORM_BLOCK) + .value("ASTC_4x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SRGB_BLOCK) + .value("ASTC_5x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_UNORM_BLOCK) + .value("ASTC_5x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SRGB_BLOCK) + .value("ASTC_5x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_UNORM_BLOCK) + .value("ASTC_5x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SRGB_BLOCK) + .value("ASTC_6x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_UNORM_BLOCK) + .value("ASTC_6x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SRGB_BLOCK) + .value("ASTC_6x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_UNORM_BLOCK) + .value("ASTC_6x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SRGB_BLOCK) + .value("ASTC_8x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_UNORM_BLOCK) + .value("ASTC_8x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SRGB_BLOCK) + .value("ASTC_8x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_UNORM_BLOCK) + .value("ASTC_8x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SRGB_BLOCK) + .value("ASTC_8x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_UNORM_BLOCK) + .value("ASTC_8x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SRGB_BLOCK) + .value("ASTC_10x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_UNORM_BLOCK) + .value("ASTC_10x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SRGB_BLOCK) + .value("ASTC_10x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_UNORM_BLOCK) + .value("ASTC_10x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SRGB_BLOCK) + .value("ASTC_10x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_UNORM_BLOCK) + .value("ASTC_10x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SRGB_BLOCK) + .value("ASTC_10x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_UNORM_BLOCK) + .value("ASTC_10x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SRGB_BLOCK) + .value("ASTC_12x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_UNORM_BLOCK) + .value("ASTC_12x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SRGB_BLOCK) + .value("ASTC_12x12_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_UNORM_BLOCK) + .value("ASTC_12x12_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SRGB_BLOCK) + .value("G8B8G8R8_422_UNORM", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM) + .value("B8G8R8G8_422_UNORM", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM) + .value("G8_B8_R8_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM) + .value("G8_B8R8_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM) + .value("G8_B8_R8_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM) + .value("G8_B8R8_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM) + .value("G8_B8_R8_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM) + .value("R10X6_UNORM_PACK16", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16) + .value("R10X6G10X6_UNORM_2PACK16", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16) + .value("R12X4_UNORM_PACK16", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16) + .value("R12X4G12X4_UNORM_2PACK16", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16) + .value("G16B16G16R16_422_UNORM", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM) + .value("B16G16R16G16_422_UNORM", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM) + .value("G16_B16_R16_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM) + .value("G16_B16R16_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM) + .value("G16_B16_R16_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM) + .value("G16_B16R16_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM) + .value("G16_B16_R16_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM) + .value("G8_B8R8_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16) + .value("G16_B16R16_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM) + .value("A4R4G4B4_UNORM_PACK16", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16) + .value("A4B4G4R4_UNORM_PACK16", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16) + .value("ASTC_4x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK) + .value("ASTC_5x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK) + .value("ASTC_5x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK) + .value("ASTC_6x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK) + .value("ASTC_6x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK) + .value("ASTC_8x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK) + .value("ASTC_8x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK) + .value("ASTC_8x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK) + .value("ASTC_10x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK) + .value("ASTC_10x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK) + .value("ASTC_10x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK) + .value("ASTC_10x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK) + .value("ASTC_12x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK) + .value("ASTC_12x12_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK) + .value("A1B5G5R5_UNORM_PACK16", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16) + .value("A8_UNORM", VkFormat::VK_FORMAT_A8_UNORM) + .value("PVRTC1_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC1_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG) + .value("R16G16_SFIXED5_NV", VkFormat::VK_FORMAT_R16G16_SFIXED5_NV) + .value("ASTC_4x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT) + .value("ASTC_8x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT) + .value("ASTC_10x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT) + .value("ASTC_10x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x12_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT) + .value("G8B8G8R8_422_UNORM_KHR", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM_KHR) + .value("B8G8R8G8_422_UNORM_KHR", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR) + .value("G8_B8R8_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR) + .value("G8_B8_R8_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR) + .value("G8_B8R8_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR) + .value("R10X6_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16_KHR) + .value("R10X6G10X6_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR) + .value("R12X4_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16_KHR) + .value("R12X4G12X4_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR) + .value("G16B16G16R16_422_UNORM_KHR", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM_KHR) + .value("B16G16R16G16_422_UNORM_KHR", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR) + .value("G16_B16R16_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR) + .value("G16_B16_R16_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR) + .value("G16_B16R16_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR) + .value("G8_B8R8_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT) + .value("G16_B16R16_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT) + .value("A4R4G4B4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT) + .value("A4B4G4R4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT) + .value("R16G16_S10_5_NV", VkFormat::VK_FORMAT_R16G16_S10_5_NV) + .value("A1B5G5R5_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR) + .value("A8_UNORM_KHR", VkFormat::VK_FORMAT_A8_UNORM_KHR) + .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); py::implicitly_convertible(); py::enum_(m, "VkImageLayout", py::arithmetic()) + .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) + .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) + .value("COLOR_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL) + .value("SHADER_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + .value("TRANSFER_SRC_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) + .value("TRANSFER_DST_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) + .value("PREINITIALIZED", VkImageLayout::VK_IMAGE_LAYOUT_PREINITIALIZED) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL) + .value("DEPTH_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL) + .value("DEPTH_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL) + .value("STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL) + .value("STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL) + .value("READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL) + .value("ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL) + .value("RENDERING_LOCAL_READ", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ) + .value("PRESENT_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) + .value("VIDEO_DECODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR) + .value("VIDEO_DECODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR) + .value("VIDEO_DECODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR) + .value("SHARED_PRESENT_KHR", VkImageLayout::VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR) + .value("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT) + .value("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR) + .value("VIDEO_ENCODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR) + .value("VIDEO_ENCODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR) + .value("VIDEO_ENCODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR) + .value("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) + .value("VIDEO_ENCODE_QUANTIZATION_MAP_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("SHADING_RATE_OPTIMAL_NV", VkImageLayout::VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV) + .value("RENDERING_LOCAL_READ_KHR", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR) + .value("DEPTH_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR) + .value("STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR) + .value("ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR) + .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); py::implicitly_convertible(); From 6f7dfb0303944b1059a2a6a33694b9936494992c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:34:04 +0000 Subject: [PATCH 092/146] No need to have py::arithmetic() or py::implicitly_convertible for VkFormat and VkImageLayout Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index d3d6fa1e..da0b25cc 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -4,7 +4,7 @@ void initGrContext_vk(py::module &m) { -py::enum_(m, "VkFormat", py::arithmetic()) +py::enum_(m, "VkFormat") .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) @@ -315,8 +315,6 @@ py::enum_(m, "VkFormat", py::arithmetic()) .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::enum_(m, "VkImageLayout", py::arithmetic()) .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) @@ -361,8 +359,6 @@ py::enum_(m, "VkImageLayout", py::arithmetic()) .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::class_(m, "GrVkAlloc") .def(py::init<>()) // TODO: Implement me! From 502d2e7784a5ad8cd79b5351f5093ec1c91874f5 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 23:25:55 +0000 Subject: [PATCH 093/146] Adjusting Vulkan tests to use symbolic enums Signed-off-by: Hin-Tak Leung --- tests/test_grcontext.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_grcontext.py b/tests/test_grcontext.py index 8784a6b9..88215a4d 100644 --- a/tests/test_grcontext.py +++ b/tests/test_grcontext.py @@ -62,7 +62,7 @@ def test_GrBackendFormat_MakeVk_1(): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance( - skia.GrBackendFormat.MakeVk(0), (type(None), skia.GrBackendFormat)) + skia.GrBackendFormat.MakeVk(skia.VkFormat.UNDEFINED), (type(None), skia.GrBackendFormat)) def test_GrBackendFormat_MakeVk_2(): @@ -98,7 +98,7 @@ def test_GrBackendFormat_channelMask(backend_format): def test_GrBackendFormat_asVkFormat(backend_format): - fmt = 1 + fmt = skia.VkFormat.UNDEFINED if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance(backend_format.asVkFormat(fmt), bool) @@ -266,7 +266,7 @@ def test_GrBackendRenderTarget_getVkImageInfo(backend_render_target): def test_GrBackendRenderTarget_setVkImageLayout(backend_render_target): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") - backend_render_target.setVkImageLayout(0) + backend_render_target.setVkImageLayout(skia.VkImageLayout.UNDEFINED) def test_GrBackendRenderTarget_getBackendFormat(backend_render_target): From be2a3f1c4c50738c1351314d19ed19d2037a473e Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 17 Feb 2026 14:36:28 +0000 Subject: [PATCH 094/146] Fix build error against pybind11 3.0.2. src/skia/Matrix.cpp:1562:13: error: return type 'Tuple' must match previous return type 'Tuple' when lambda expression has unspecified explicit return type 1562 | return py::make_tuple(-1, -1); | ^ 1 error generated. Signed-off-by: Hin-Tak Leung --- src/skia/Matrix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index ecf4f1ae..f642f130 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1555,7 +1555,7 @@ matrix :return: maximum scale factor )docstring") .def("getMinMaxScales", - [] (const SkMatrix& matrix) { + [] (const SkMatrix& matrix) -> py::object { std::vector factors(2); if (matrix.getMinMaxScales(&factors[0])) return py::make_tuple(factors[0], factors[1]); From 8b36da643d768ccd2e4b0f1015297bd07de5e440 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:32:51 +0000 Subject: [PATCH 095/146] Filling in VkFormat and VkImageLayout values Fixes #350 See https://github.com/kyamagu/skia-python/issues/350 Segfault on pytest exit in CI against pybind11 3.0.1 This is a workaround. See upstream issues: https://github.com/pybind/pybind11/issues/5976 [BUG]: Crash due to invalid free during cleanup, if any enum is registerd, due to attempting to free a string literal https://github.com/pybind/pybind11/issues/5991 [BUG]: segfault at exit since upgrading to 3.0.x, probably due to "Make wrapped C++ functions pickleable" (https://github.com/pybind/pybind11/pull/5580) Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 349 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index 75bdaa21..d3d6fa1e 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -5,11 +5,360 @@ void initGrContext_vk(py::module &m) { py::enum_(m, "VkFormat", py::arithmetic()) + .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) + .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) + .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) + .value("B4G4R4A4_UNORM_PACK16", VkFormat::VK_FORMAT_B4G4R4A4_UNORM_PACK16) + .value("R5G6B5_UNORM_PACK16", VkFormat::VK_FORMAT_R5G6B5_UNORM_PACK16) + .value("B5G6R5_UNORM_PACK16", VkFormat::VK_FORMAT_B5G6R5_UNORM_PACK16) + .value("R5G5B5A1_UNORM_PACK16", VkFormat::VK_FORMAT_R5G5B5A1_UNORM_PACK16) + .value("B5G5R5A1_UNORM_PACK16", VkFormat::VK_FORMAT_B5G5R5A1_UNORM_PACK16) + .value("A1R5G5B5_UNORM_PACK16", VkFormat::VK_FORMAT_A1R5G5B5_UNORM_PACK16) + .value("R8_UNORM", VkFormat::VK_FORMAT_R8_UNORM) + .value("R8_SNORM", VkFormat::VK_FORMAT_R8_SNORM) + .value("R8_USCALED", VkFormat::VK_FORMAT_R8_USCALED) + .value("R8_SSCALED", VkFormat::VK_FORMAT_R8_SSCALED) + .value("R8_UINT", VkFormat::VK_FORMAT_R8_UINT) + .value("R8_SINT", VkFormat::VK_FORMAT_R8_SINT) + .value("R8_SRGB", VkFormat::VK_FORMAT_R8_SRGB) + .value("R8G8_UNORM", VkFormat::VK_FORMAT_R8G8_UNORM) + .value("R8G8_SNORM", VkFormat::VK_FORMAT_R8G8_SNORM) + .value("R8G8_USCALED", VkFormat::VK_FORMAT_R8G8_USCALED) + .value("R8G8_SSCALED", VkFormat::VK_FORMAT_R8G8_SSCALED) + .value("R8G8_UINT", VkFormat::VK_FORMAT_R8G8_UINT) + .value("R8G8_SINT", VkFormat::VK_FORMAT_R8G8_SINT) + .value("R8G8_SRGB", VkFormat::VK_FORMAT_R8G8_SRGB) + .value("R8G8B8_UNORM", VkFormat::VK_FORMAT_R8G8B8_UNORM) + .value("R8G8B8_SNORM", VkFormat::VK_FORMAT_R8G8B8_SNORM) + .value("R8G8B8_USCALED", VkFormat::VK_FORMAT_R8G8B8_USCALED) + .value("R8G8B8_SSCALED", VkFormat::VK_FORMAT_R8G8B8_SSCALED) + .value("R8G8B8_UINT", VkFormat::VK_FORMAT_R8G8B8_UINT) + .value("R8G8B8_SINT", VkFormat::VK_FORMAT_R8G8B8_SINT) + .value("R8G8B8_SRGB", VkFormat::VK_FORMAT_R8G8B8_SRGB) + .value("B8G8R8_UNORM", VkFormat::VK_FORMAT_B8G8R8_UNORM) + .value("B8G8R8_SNORM", VkFormat::VK_FORMAT_B8G8R8_SNORM) + .value("B8G8R8_USCALED", VkFormat::VK_FORMAT_B8G8R8_USCALED) + .value("B8G8R8_SSCALED", VkFormat::VK_FORMAT_B8G8R8_SSCALED) + .value("B8G8R8_UINT", VkFormat::VK_FORMAT_B8G8R8_UINT) + .value("B8G8R8_SINT", VkFormat::VK_FORMAT_B8G8R8_SINT) + .value("B8G8R8_SRGB", VkFormat::VK_FORMAT_B8G8R8_SRGB) + .value("R8G8B8A8_UNORM", VkFormat::VK_FORMAT_R8G8B8A8_UNORM) + .value("R8G8B8A8_SNORM", VkFormat::VK_FORMAT_R8G8B8A8_SNORM) + .value("R8G8B8A8_USCALED", VkFormat::VK_FORMAT_R8G8B8A8_USCALED) + .value("R8G8B8A8_SSCALED", VkFormat::VK_FORMAT_R8G8B8A8_SSCALED) + .value("R8G8B8A8_UINT", VkFormat::VK_FORMAT_R8G8B8A8_UINT) + .value("R8G8B8A8_SINT", VkFormat::VK_FORMAT_R8G8B8A8_SINT) + .value("R8G8B8A8_SRGB", VkFormat::VK_FORMAT_R8G8B8A8_SRGB) + .value("B8G8R8A8_UNORM", VkFormat::VK_FORMAT_B8G8R8A8_UNORM) + .value("B8G8R8A8_SNORM", VkFormat::VK_FORMAT_B8G8R8A8_SNORM) + .value("B8G8R8A8_USCALED", VkFormat::VK_FORMAT_B8G8R8A8_USCALED) + .value("B8G8R8A8_SSCALED", VkFormat::VK_FORMAT_B8G8R8A8_SSCALED) + .value("B8G8R8A8_UINT", VkFormat::VK_FORMAT_B8G8R8A8_UINT) + .value("B8G8R8A8_SINT", VkFormat::VK_FORMAT_B8G8R8A8_SINT) + .value("B8G8R8A8_SRGB", VkFormat::VK_FORMAT_B8G8R8A8_SRGB) + .value("A8B8G8R8_UNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UNORM_PACK32) + .value("A8B8G8R8_SNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SNORM_PACK32) + .value("A8B8G8R8_USCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_USCALED_PACK32) + .value("A8B8G8R8_SSCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SSCALED_PACK32) + .value("A8B8G8R8_UINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UINT_PACK32) + .value("A8B8G8R8_SINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SINT_PACK32) + .value("A8B8G8R8_SRGB_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SRGB_PACK32) + .value("A2R10G10B10_UNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UNORM_PACK32) + .value("A2R10G10B10_SNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SNORM_PACK32) + .value("A2R10G10B10_USCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_USCALED_PACK32) + .value("A2R10G10B10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SSCALED_PACK32) + .value("A2R10G10B10_UINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UINT_PACK32) + .value("A2R10G10B10_SINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SINT_PACK32) + .value("A2B10G10R10_UNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UNORM_PACK32) + .value("A2B10G10R10_SNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SNORM_PACK32) + .value("A2B10G10R10_USCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_USCALED_PACK32) + .value("A2B10G10R10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SSCALED_PACK32) + .value("A2B10G10R10_UINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UINT_PACK32) + .value("A2B10G10R10_SINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SINT_PACK32) + .value("R16_UNORM", VkFormat::VK_FORMAT_R16_UNORM) + .value("R16_SNORM", VkFormat::VK_FORMAT_R16_SNORM) + .value("R16_USCALED", VkFormat::VK_FORMAT_R16_USCALED) + .value("R16_SSCALED", VkFormat::VK_FORMAT_R16_SSCALED) + .value("R16_UINT", VkFormat::VK_FORMAT_R16_UINT) + .value("R16_SINT", VkFormat::VK_FORMAT_R16_SINT) + .value("R16_SFLOAT", VkFormat::VK_FORMAT_R16_SFLOAT) + .value("R16G16_UNORM", VkFormat::VK_FORMAT_R16G16_UNORM) + .value("R16G16_SNORM", VkFormat::VK_FORMAT_R16G16_SNORM) + .value("R16G16_USCALED", VkFormat::VK_FORMAT_R16G16_USCALED) + .value("R16G16_SSCALED", VkFormat::VK_FORMAT_R16G16_SSCALED) + .value("R16G16_UINT", VkFormat::VK_FORMAT_R16G16_UINT) + .value("R16G16_SINT", VkFormat::VK_FORMAT_R16G16_SINT) + .value("R16G16_SFLOAT", VkFormat::VK_FORMAT_R16G16_SFLOAT) + .value("R16G16B16_UNORM", VkFormat::VK_FORMAT_R16G16B16_UNORM) + .value("R16G16B16_SNORM", VkFormat::VK_FORMAT_R16G16B16_SNORM) + .value("R16G16B16_USCALED", VkFormat::VK_FORMAT_R16G16B16_USCALED) + .value("R16G16B16_SSCALED", VkFormat::VK_FORMAT_R16G16B16_SSCALED) + .value("R16G16B16_UINT", VkFormat::VK_FORMAT_R16G16B16_UINT) + .value("R16G16B16_SINT", VkFormat::VK_FORMAT_R16G16B16_SINT) + .value("R16G16B16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16_SFLOAT) + .value("R16G16B16A16_UNORM", VkFormat::VK_FORMAT_R16G16B16A16_UNORM) + .value("R16G16B16A16_SNORM", VkFormat::VK_FORMAT_R16G16B16A16_SNORM) + .value("R16G16B16A16_USCALED", VkFormat::VK_FORMAT_R16G16B16A16_USCALED) + .value("R16G16B16A16_SSCALED", VkFormat::VK_FORMAT_R16G16B16A16_SSCALED) + .value("R16G16B16A16_UINT", VkFormat::VK_FORMAT_R16G16B16A16_UINT) + .value("R16G16B16A16_SINT", VkFormat::VK_FORMAT_R16G16B16A16_SINT) + .value("R16G16B16A16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16A16_SFLOAT) + .value("R32_UINT", VkFormat::VK_FORMAT_R32_UINT) + .value("R32_SINT", VkFormat::VK_FORMAT_R32_SINT) + .value("R32_SFLOAT", VkFormat::VK_FORMAT_R32_SFLOAT) + .value("R32G32_UINT", VkFormat::VK_FORMAT_R32G32_UINT) + .value("R32G32_SINT", VkFormat::VK_FORMAT_R32G32_SINT) + .value("R32G32_SFLOAT", VkFormat::VK_FORMAT_R32G32_SFLOAT) + .value("R32G32B32_UINT", VkFormat::VK_FORMAT_R32G32B32_UINT) + .value("R32G32B32_SINT", VkFormat::VK_FORMAT_R32G32B32_SINT) + .value("R32G32B32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32_SFLOAT) + .value("R32G32B32A32_UINT", VkFormat::VK_FORMAT_R32G32B32A32_UINT) + .value("R32G32B32A32_SINT", VkFormat::VK_FORMAT_R32G32B32A32_SINT) + .value("R32G32B32A32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32A32_SFLOAT) + .value("R64_UINT", VkFormat::VK_FORMAT_R64_UINT) + .value("R64_SINT", VkFormat::VK_FORMAT_R64_SINT) + .value("R64_SFLOAT", VkFormat::VK_FORMAT_R64_SFLOAT) + .value("R64G64_UINT", VkFormat::VK_FORMAT_R64G64_UINT) + .value("R64G64_SINT", VkFormat::VK_FORMAT_R64G64_SINT) + .value("R64G64_SFLOAT", VkFormat::VK_FORMAT_R64G64_SFLOAT) + .value("R64G64B64_UINT", VkFormat::VK_FORMAT_R64G64B64_UINT) + .value("R64G64B64_SINT", VkFormat::VK_FORMAT_R64G64B64_SINT) + .value("R64G64B64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64_SFLOAT) + .value("R64G64B64A64_UINT", VkFormat::VK_FORMAT_R64G64B64A64_UINT) + .value("R64G64B64A64_SINT", VkFormat::VK_FORMAT_R64G64B64A64_SINT) + .value("R64G64B64A64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64A64_SFLOAT) + .value("B10G11R11_UFLOAT_PACK32", VkFormat::VK_FORMAT_B10G11R11_UFLOAT_PACK32) + .value("E5B9G9R9_UFLOAT_PACK32", VkFormat::VK_FORMAT_E5B9G9R9_UFLOAT_PACK32) + .value("D16_UNORM", VkFormat::VK_FORMAT_D16_UNORM) + .value("X8_D24_UNORM_PACK32", VkFormat::VK_FORMAT_X8_D24_UNORM_PACK32) + .value("D32_SFLOAT", VkFormat::VK_FORMAT_D32_SFLOAT) + .value("S8_UINT", VkFormat::VK_FORMAT_S8_UINT) + .value("D16_UNORM_S8_UINT", VkFormat::VK_FORMAT_D16_UNORM_S8_UINT) + .value("D24_UNORM_S8_UINT", VkFormat::VK_FORMAT_D24_UNORM_S8_UINT) + .value("D32_SFLOAT_S8_UINT", VkFormat::VK_FORMAT_D32_SFLOAT_S8_UINT) + .value("BC1_RGB_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_UNORM_BLOCK) + .value("BC1_RGB_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_SRGB_BLOCK) + .value("BC1_RGBA_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_UNORM_BLOCK) + .value("BC1_RGBA_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_SRGB_BLOCK) + .value("BC2_UNORM_BLOCK", VkFormat::VK_FORMAT_BC2_UNORM_BLOCK) + .value("BC2_SRGB_BLOCK", VkFormat::VK_FORMAT_BC2_SRGB_BLOCK) + .value("BC3_UNORM_BLOCK", VkFormat::VK_FORMAT_BC3_UNORM_BLOCK) + .value("BC3_SRGB_BLOCK", VkFormat::VK_FORMAT_BC3_SRGB_BLOCK) + .value("BC4_UNORM_BLOCK", VkFormat::VK_FORMAT_BC4_UNORM_BLOCK) + .value("BC4_SNORM_BLOCK", VkFormat::VK_FORMAT_BC4_SNORM_BLOCK) + .value("BC5_UNORM_BLOCK", VkFormat::VK_FORMAT_BC5_UNORM_BLOCK) + .value("BC5_SNORM_BLOCK", VkFormat::VK_FORMAT_BC5_SNORM_BLOCK) + .value("BC6H_UFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_UFLOAT_BLOCK) + .value("BC6H_SFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_SFLOAT_BLOCK) + .value("BC7_UNORM_BLOCK", VkFormat::VK_FORMAT_BC7_UNORM_BLOCK) + .value("BC7_SRGB_BLOCK", VkFormat::VK_FORMAT_BC7_SRGB_BLOCK) + .value("ETC2_R8G8B8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK) + .value("ETC2_R8G8B8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK) + .value("ETC2_R8G8B8A1_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK) + .value("ETC2_R8G8B8A1_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK) + .value("ETC2_R8G8B8A8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK) + .value("ETC2_R8G8B8A8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK) + .value("EAC_R11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_UNORM_BLOCK) + .value("EAC_R11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_SNORM_BLOCK) + .value("EAC_R11G11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_UNORM_BLOCK) + .value("EAC_R11G11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_SNORM_BLOCK) + .value("ASTC_4x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_UNORM_BLOCK) + .value("ASTC_4x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SRGB_BLOCK) + .value("ASTC_5x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_UNORM_BLOCK) + .value("ASTC_5x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SRGB_BLOCK) + .value("ASTC_5x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_UNORM_BLOCK) + .value("ASTC_5x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SRGB_BLOCK) + .value("ASTC_6x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_UNORM_BLOCK) + .value("ASTC_6x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SRGB_BLOCK) + .value("ASTC_6x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_UNORM_BLOCK) + .value("ASTC_6x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SRGB_BLOCK) + .value("ASTC_8x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_UNORM_BLOCK) + .value("ASTC_8x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SRGB_BLOCK) + .value("ASTC_8x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_UNORM_BLOCK) + .value("ASTC_8x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SRGB_BLOCK) + .value("ASTC_8x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_UNORM_BLOCK) + .value("ASTC_8x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SRGB_BLOCK) + .value("ASTC_10x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_UNORM_BLOCK) + .value("ASTC_10x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SRGB_BLOCK) + .value("ASTC_10x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_UNORM_BLOCK) + .value("ASTC_10x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SRGB_BLOCK) + .value("ASTC_10x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_UNORM_BLOCK) + .value("ASTC_10x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SRGB_BLOCK) + .value("ASTC_10x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_UNORM_BLOCK) + .value("ASTC_10x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SRGB_BLOCK) + .value("ASTC_12x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_UNORM_BLOCK) + .value("ASTC_12x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SRGB_BLOCK) + .value("ASTC_12x12_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_UNORM_BLOCK) + .value("ASTC_12x12_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SRGB_BLOCK) + .value("G8B8G8R8_422_UNORM", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM) + .value("B8G8R8G8_422_UNORM", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM) + .value("G8_B8_R8_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM) + .value("G8_B8R8_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM) + .value("G8_B8_R8_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM) + .value("G8_B8R8_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM) + .value("G8_B8_R8_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM) + .value("R10X6_UNORM_PACK16", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16) + .value("R10X6G10X6_UNORM_2PACK16", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16) + .value("R12X4_UNORM_PACK16", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16) + .value("R12X4G12X4_UNORM_2PACK16", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16) + .value("G16B16G16R16_422_UNORM", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM) + .value("B16G16R16G16_422_UNORM", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM) + .value("G16_B16_R16_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM) + .value("G16_B16R16_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM) + .value("G16_B16_R16_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM) + .value("G16_B16R16_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM) + .value("G16_B16_R16_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM) + .value("G8_B8R8_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16) + .value("G16_B16R16_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM) + .value("A4R4G4B4_UNORM_PACK16", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16) + .value("A4B4G4R4_UNORM_PACK16", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16) + .value("ASTC_4x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK) + .value("ASTC_5x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK) + .value("ASTC_5x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK) + .value("ASTC_6x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK) + .value("ASTC_6x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK) + .value("ASTC_8x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK) + .value("ASTC_8x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK) + .value("ASTC_8x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK) + .value("ASTC_10x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK) + .value("ASTC_10x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK) + .value("ASTC_10x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK) + .value("ASTC_10x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK) + .value("ASTC_12x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK) + .value("ASTC_12x12_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK) + .value("A1B5G5R5_UNORM_PACK16", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16) + .value("A8_UNORM", VkFormat::VK_FORMAT_A8_UNORM) + .value("PVRTC1_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC1_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG) + .value("R16G16_SFIXED5_NV", VkFormat::VK_FORMAT_R16G16_SFIXED5_NV) + .value("ASTC_4x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT) + .value("ASTC_8x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT) + .value("ASTC_10x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT) + .value("ASTC_10x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x12_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT) + .value("G8B8G8R8_422_UNORM_KHR", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM_KHR) + .value("B8G8R8G8_422_UNORM_KHR", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR) + .value("G8_B8R8_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR) + .value("G8_B8_R8_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR) + .value("G8_B8R8_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR) + .value("R10X6_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16_KHR) + .value("R10X6G10X6_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR) + .value("R12X4_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16_KHR) + .value("R12X4G12X4_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR) + .value("G16B16G16R16_422_UNORM_KHR", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM_KHR) + .value("B16G16R16G16_422_UNORM_KHR", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR) + .value("G16_B16R16_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR) + .value("G16_B16_R16_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR) + .value("G16_B16R16_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR) + .value("G8_B8R8_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT) + .value("G16_B16R16_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT) + .value("A4R4G4B4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT) + .value("A4B4G4R4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT) + .value("R16G16_S10_5_NV", VkFormat::VK_FORMAT_R16G16_S10_5_NV) + .value("A1B5G5R5_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR) + .value("A8_UNORM_KHR", VkFormat::VK_FORMAT_A8_UNORM_KHR) + .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); py::implicitly_convertible(); py::enum_(m, "VkImageLayout", py::arithmetic()) + .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) + .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) + .value("COLOR_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL) + .value("SHADER_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + .value("TRANSFER_SRC_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) + .value("TRANSFER_DST_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) + .value("PREINITIALIZED", VkImageLayout::VK_IMAGE_LAYOUT_PREINITIALIZED) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL) + .value("DEPTH_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL) + .value("DEPTH_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL) + .value("STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL) + .value("STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL) + .value("READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL) + .value("ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL) + .value("RENDERING_LOCAL_READ", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ) + .value("PRESENT_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) + .value("VIDEO_DECODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR) + .value("VIDEO_DECODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR) + .value("VIDEO_DECODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR) + .value("SHARED_PRESENT_KHR", VkImageLayout::VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR) + .value("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT) + .value("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR) + .value("VIDEO_ENCODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR) + .value("VIDEO_ENCODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR) + .value("VIDEO_ENCODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR) + .value("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) + .value("VIDEO_ENCODE_QUANTIZATION_MAP_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("SHADING_RATE_OPTIMAL_NV", VkImageLayout::VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV) + .value("RENDERING_LOCAL_READ_KHR", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR) + .value("DEPTH_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR) + .value("STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR) + .value("ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR) + .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); py::implicitly_convertible(); From 08c8ccc2b6ec2b4feb5df0870916704218629c22 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:34:04 +0000 Subject: [PATCH 096/146] No need to have py::arithmetic() or py::implicitly_convertible for VkFormat and VkImageLayout Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index d3d6fa1e..da0b25cc 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -4,7 +4,7 @@ void initGrContext_vk(py::module &m) { -py::enum_(m, "VkFormat", py::arithmetic()) +py::enum_(m, "VkFormat") .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) @@ -315,8 +315,6 @@ py::enum_(m, "VkFormat", py::arithmetic()) .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::enum_(m, "VkImageLayout", py::arithmetic()) .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) @@ -361,8 +359,6 @@ py::enum_(m, "VkImageLayout", py::arithmetic()) .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::class_(m, "GrVkAlloc") .def(py::init<>()) // TODO: Implement me! From d8527a235f0621f5e94a1cc5ab4ea45ad5d43589 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 23:25:55 +0000 Subject: [PATCH 097/146] Adjusting Vulkan tests to use symbolic enums Signed-off-by: Hin-Tak Leung --- tests/test_grcontext.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_grcontext.py b/tests/test_grcontext.py index 8784a6b9..88215a4d 100644 --- a/tests/test_grcontext.py +++ b/tests/test_grcontext.py @@ -62,7 +62,7 @@ def test_GrBackendFormat_MakeVk_1(): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance( - skia.GrBackendFormat.MakeVk(0), (type(None), skia.GrBackendFormat)) + skia.GrBackendFormat.MakeVk(skia.VkFormat.UNDEFINED), (type(None), skia.GrBackendFormat)) def test_GrBackendFormat_MakeVk_2(): @@ -98,7 +98,7 @@ def test_GrBackendFormat_channelMask(backend_format): def test_GrBackendFormat_asVkFormat(backend_format): - fmt = 1 + fmt = skia.VkFormat.UNDEFINED if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance(backend_format.asVkFormat(fmt), bool) @@ -266,7 +266,7 @@ def test_GrBackendRenderTarget_getVkImageInfo(backend_render_target): def test_GrBackendRenderTarget_setVkImageLayout(backend_render_target): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") - backend_render_target.setVkImageLayout(0) + backend_render_target.setVkImageLayout(skia.VkImageLayout.UNDEFINED) def test_GrBackendRenderTarget_getBackendFormat(backend_render_target): From 2dbf0faa078c637b800326c8adeea805fbaec389 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 17 Feb 2026 14:36:28 +0000 Subject: [PATCH 098/146] Fix build error against pybind11 3.0.2. src/skia/Matrix.cpp:1562:13: error: return type 'Tuple' must match previous return type 'Tuple' when lambda expression has unspecified explicit return type 1562 | return py::make_tuple(-1, -1); | ^ 1 error generated. Signed-off-by: Hin-Tak Leung --- src/skia/Matrix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index ecf4f1ae..f642f130 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1555,7 +1555,7 @@ matrix :return: maximum scale factor )docstring") .def("getMinMaxScales", - [] (const SkMatrix& matrix) { + [] (const SkMatrix& matrix) -> py::object { std::vector factors(2); if (matrix.getMinMaxScales(&factors[0])) return py::make_tuple(factors[0], factors[1]); From 32a9b49c070edd5f435361739d601949714b6df9 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:32:51 +0000 Subject: [PATCH 099/146] Filling in VkFormat and VkImageLayout values Fixes #350 See https://github.com/kyamagu/skia-python/issues/350 Segfault on pytest exit in CI against pybind11 3.0.1 This is a workaround. See upstream issues: https://github.com/pybind/pybind11/issues/5976 [BUG]: Crash due to invalid free during cleanup, if any enum is registerd, due to attempting to free a string literal https://github.com/pybind/pybind11/issues/5991 [BUG]: segfault at exit since upgrading to 3.0.x, probably due to "Make wrapped C++ functions pickleable" (https://github.com/pybind/pybind11/pull/5580) Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 349 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index 75bdaa21..d3d6fa1e 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -5,11 +5,360 @@ void initGrContext_vk(py::module &m) { py::enum_(m, "VkFormat", py::arithmetic()) + .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) + .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) + .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) + .value("B4G4R4A4_UNORM_PACK16", VkFormat::VK_FORMAT_B4G4R4A4_UNORM_PACK16) + .value("R5G6B5_UNORM_PACK16", VkFormat::VK_FORMAT_R5G6B5_UNORM_PACK16) + .value("B5G6R5_UNORM_PACK16", VkFormat::VK_FORMAT_B5G6R5_UNORM_PACK16) + .value("R5G5B5A1_UNORM_PACK16", VkFormat::VK_FORMAT_R5G5B5A1_UNORM_PACK16) + .value("B5G5R5A1_UNORM_PACK16", VkFormat::VK_FORMAT_B5G5R5A1_UNORM_PACK16) + .value("A1R5G5B5_UNORM_PACK16", VkFormat::VK_FORMAT_A1R5G5B5_UNORM_PACK16) + .value("R8_UNORM", VkFormat::VK_FORMAT_R8_UNORM) + .value("R8_SNORM", VkFormat::VK_FORMAT_R8_SNORM) + .value("R8_USCALED", VkFormat::VK_FORMAT_R8_USCALED) + .value("R8_SSCALED", VkFormat::VK_FORMAT_R8_SSCALED) + .value("R8_UINT", VkFormat::VK_FORMAT_R8_UINT) + .value("R8_SINT", VkFormat::VK_FORMAT_R8_SINT) + .value("R8_SRGB", VkFormat::VK_FORMAT_R8_SRGB) + .value("R8G8_UNORM", VkFormat::VK_FORMAT_R8G8_UNORM) + .value("R8G8_SNORM", VkFormat::VK_FORMAT_R8G8_SNORM) + .value("R8G8_USCALED", VkFormat::VK_FORMAT_R8G8_USCALED) + .value("R8G8_SSCALED", VkFormat::VK_FORMAT_R8G8_SSCALED) + .value("R8G8_UINT", VkFormat::VK_FORMAT_R8G8_UINT) + .value("R8G8_SINT", VkFormat::VK_FORMAT_R8G8_SINT) + .value("R8G8_SRGB", VkFormat::VK_FORMAT_R8G8_SRGB) + .value("R8G8B8_UNORM", VkFormat::VK_FORMAT_R8G8B8_UNORM) + .value("R8G8B8_SNORM", VkFormat::VK_FORMAT_R8G8B8_SNORM) + .value("R8G8B8_USCALED", VkFormat::VK_FORMAT_R8G8B8_USCALED) + .value("R8G8B8_SSCALED", VkFormat::VK_FORMAT_R8G8B8_SSCALED) + .value("R8G8B8_UINT", VkFormat::VK_FORMAT_R8G8B8_UINT) + .value("R8G8B8_SINT", VkFormat::VK_FORMAT_R8G8B8_SINT) + .value("R8G8B8_SRGB", VkFormat::VK_FORMAT_R8G8B8_SRGB) + .value("B8G8R8_UNORM", VkFormat::VK_FORMAT_B8G8R8_UNORM) + .value("B8G8R8_SNORM", VkFormat::VK_FORMAT_B8G8R8_SNORM) + .value("B8G8R8_USCALED", VkFormat::VK_FORMAT_B8G8R8_USCALED) + .value("B8G8R8_SSCALED", VkFormat::VK_FORMAT_B8G8R8_SSCALED) + .value("B8G8R8_UINT", VkFormat::VK_FORMAT_B8G8R8_UINT) + .value("B8G8R8_SINT", VkFormat::VK_FORMAT_B8G8R8_SINT) + .value("B8G8R8_SRGB", VkFormat::VK_FORMAT_B8G8R8_SRGB) + .value("R8G8B8A8_UNORM", VkFormat::VK_FORMAT_R8G8B8A8_UNORM) + .value("R8G8B8A8_SNORM", VkFormat::VK_FORMAT_R8G8B8A8_SNORM) + .value("R8G8B8A8_USCALED", VkFormat::VK_FORMAT_R8G8B8A8_USCALED) + .value("R8G8B8A8_SSCALED", VkFormat::VK_FORMAT_R8G8B8A8_SSCALED) + .value("R8G8B8A8_UINT", VkFormat::VK_FORMAT_R8G8B8A8_UINT) + .value("R8G8B8A8_SINT", VkFormat::VK_FORMAT_R8G8B8A8_SINT) + .value("R8G8B8A8_SRGB", VkFormat::VK_FORMAT_R8G8B8A8_SRGB) + .value("B8G8R8A8_UNORM", VkFormat::VK_FORMAT_B8G8R8A8_UNORM) + .value("B8G8R8A8_SNORM", VkFormat::VK_FORMAT_B8G8R8A8_SNORM) + .value("B8G8R8A8_USCALED", VkFormat::VK_FORMAT_B8G8R8A8_USCALED) + .value("B8G8R8A8_SSCALED", VkFormat::VK_FORMAT_B8G8R8A8_SSCALED) + .value("B8G8R8A8_UINT", VkFormat::VK_FORMAT_B8G8R8A8_UINT) + .value("B8G8R8A8_SINT", VkFormat::VK_FORMAT_B8G8R8A8_SINT) + .value("B8G8R8A8_SRGB", VkFormat::VK_FORMAT_B8G8R8A8_SRGB) + .value("A8B8G8R8_UNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UNORM_PACK32) + .value("A8B8G8R8_SNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SNORM_PACK32) + .value("A8B8G8R8_USCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_USCALED_PACK32) + .value("A8B8G8R8_SSCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SSCALED_PACK32) + .value("A8B8G8R8_UINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UINT_PACK32) + .value("A8B8G8R8_SINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SINT_PACK32) + .value("A8B8G8R8_SRGB_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SRGB_PACK32) + .value("A2R10G10B10_UNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UNORM_PACK32) + .value("A2R10G10B10_SNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SNORM_PACK32) + .value("A2R10G10B10_USCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_USCALED_PACK32) + .value("A2R10G10B10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SSCALED_PACK32) + .value("A2R10G10B10_UINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UINT_PACK32) + .value("A2R10G10B10_SINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SINT_PACK32) + .value("A2B10G10R10_UNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UNORM_PACK32) + .value("A2B10G10R10_SNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SNORM_PACK32) + .value("A2B10G10R10_USCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_USCALED_PACK32) + .value("A2B10G10R10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SSCALED_PACK32) + .value("A2B10G10R10_UINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UINT_PACK32) + .value("A2B10G10R10_SINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SINT_PACK32) + .value("R16_UNORM", VkFormat::VK_FORMAT_R16_UNORM) + .value("R16_SNORM", VkFormat::VK_FORMAT_R16_SNORM) + .value("R16_USCALED", VkFormat::VK_FORMAT_R16_USCALED) + .value("R16_SSCALED", VkFormat::VK_FORMAT_R16_SSCALED) + .value("R16_UINT", VkFormat::VK_FORMAT_R16_UINT) + .value("R16_SINT", VkFormat::VK_FORMAT_R16_SINT) + .value("R16_SFLOAT", VkFormat::VK_FORMAT_R16_SFLOAT) + .value("R16G16_UNORM", VkFormat::VK_FORMAT_R16G16_UNORM) + .value("R16G16_SNORM", VkFormat::VK_FORMAT_R16G16_SNORM) + .value("R16G16_USCALED", VkFormat::VK_FORMAT_R16G16_USCALED) + .value("R16G16_SSCALED", VkFormat::VK_FORMAT_R16G16_SSCALED) + .value("R16G16_UINT", VkFormat::VK_FORMAT_R16G16_UINT) + .value("R16G16_SINT", VkFormat::VK_FORMAT_R16G16_SINT) + .value("R16G16_SFLOAT", VkFormat::VK_FORMAT_R16G16_SFLOAT) + .value("R16G16B16_UNORM", VkFormat::VK_FORMAT_R16G16B16_UNORM) + .value("R16G16B16_SNORM", VkFormat::VK_FORMAT_R16G16B16_SNORM) + .value("R16G16B16_USCALED", VkFormat::VK_FORMAT_R16G16B16_USCALED) + .value("R16G16B16_SSCALED", VkFormat::VK_FORMAT_R16G16B16_SSCALED) + .value("R16G16B16_UINT", VkFormat::VK_FORMAT_R16G16B16_UINT) + .value("R16G16B16_SINT", VkFormat::VK_FORMAT_R16G16B16_SINT) + .value("R16G16B16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16_SFLOAT) + .value("R16G16B16A16_UNORM", VkFormat::VK_FORMAT_R16G16B16A16_UNORM) + .value("R16G16B16A16_SNORM", VkFormat::VK_FORMAT_R16G16B16A16_SNORM) + .value("R16G16B16A16_USCALED", VkFormat::VK_FORMAT_R16G16B16A16_USCALED) + .value("R16G16B16A16_SSCALED", VkFormat::VK_FORMAT_R16G16B16A16_SSCALED) + .value("R16G16B16A16_UINT", VkFormat::VK_FORMAT_R16G16B16A16_UINT) + .value("R16G16B16A16_SINT", VkFormat::VK_FORMAT_R16G16B16A16_SINT) + .value("R16G16B16A16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16A16_SFLOAT) + .value("R32_UINT", VkFormat::VK_FORMAT_R32_UINT) + .value("R32_SINT", VkFormat::VK_FORMAT_R32_SINT) + .value("R32_SFLOAT", VkFormat::VK_FORMAT_R32_SFLOAT) + .value("R32G32_UINT", VkFormat::VK_FORMAT_R32G32_UINT) + .value("R32G32_SINT", VkFormat::VK_FORMAT_R32G32_SINT) + .value("R32G32_SFLOAT", VkFormat::VK_FORMAT_R32G32_SFLOAT) + .value("R32G32B32_UINT", VkFormat::VK_FORMAT_R32G32B32_UINT) + .value("R32G32B32_SINT", VkFormat::VK_FORMAT_R32G32B32_SINT) + .value("R32G32B32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32_SFLOAT) + .value("R32G32B32A32_UINT", VkFormat::VK_FORMAT_R32G32B32A32_UINT) + .value("R32G32B32A32_SINT", VkFormat::VK_FORMAT_R32G32B32A32_SINT) + .value("R32G32B32A32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32A32_SFLOAT) + .value("R64_UINT", VkFormat::VK_FORMAT_R64_UINT) + .value("R64_SINT", VkFormat::VK_FORMAT_R64_SINT) + .value("R64_SFLOAT", VkFormat::VK_FORMAT_R64_SFLOAT) + .value("R64G64_UINT", VkFormat::VK_FORMAT_R64G64_UINT) + .value("R64G64_SINT", VkFormat::VK_FORMAT_R64G64_SINT) + .value("R64G64_SFLOAT", VkFormat::VK_FORMAT_R64G64_SFLOAT) + .value("R64G64B64_UINT", VkFormat::VK_FORMAT_R64G64B64_UINT) + .value("R64G64B64_SINT", VkFormat::VK_FORMAT_R64G64B64_SINT) + .value("R64G64B64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64_SFLOAT) + .value("R64G64B64A64_UINT", VkFormat::VK_FORMAT_R64G64B64A64_UINT) + .value("R64G64B64A64_SINT", VkFormat::VK_FORMAT_R64G64B64A64_SINT) + .value("R64G64B64A64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64A64_SFLOAT) + .value("B10G11R11_UFLOAT_PACK32", VkFormat::VK_FORMAT_B10G11R11_UFLOAT_PACK32) + .value("E5B9G9R9_UFLOAT_PACK32", VkFormat::VK_FORMAT_E5B9G9R9_UFLOAT_PACK32) + .value("D16_UNORM", VkFormat::VK_FORMAT_D16_UNORM) + .value("X8_D24_UNORM_PACK32", VkFormat::VK_FORMAT_X8_D24_UNORM_PACK32) + .value("D32_SFLOAT", VkFormat::VK_FORMAT_D32_SFLOAT) + .value("S8_UINT", VkFormat::VK_FORMAT_S8_UINT) + .value("D16_UNORM_S8_UINT", VkFormat::VK_FORMAT_D16_UNORM_S8_UINT) + .value("D24_UNORM_S8_UINT", VkFormat::VK_FORMAT_D24_UNORM_S8_UINT) + .value("D32_SFLOAT_S8_UINT", VkFormat::VK_FORMAT_D32_SFLOAT_S8_UINT) + .value("BC1_RGB_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_UNORM_BLOCK) + .value("BC1_RGB_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_SRGB_BLOCK) + .value("BC1_RGBA_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_UNORM_BLOCK) + .value("BC1_RGBA_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_SRGB_BLOCK) + .value("BC2_UNORM_BLOCK", VkFormat::VK_FORMAT_BC2_UNORM_BLOCK) + .value("BC2_SRGB_BLOCK", VkFormat::VK_FORMAT_BC2_SRGB_BLOCK) + .value("BC3_UNORM_BLOCK", VkFormat::VK_FORMAT_BC3_UNORM_BLOCK) + .value("BC3_SRGB_BLOCK", VkFormat::VK_FORMAT_BC3_SRGB_BLOCK) + .value("BC4_UNORM_BLOCK", VkFormat::VK_FORMAT_BC4_UNORM_BLOCK) + .value("BC4_SNORM_BLOCK", VkFormat::VK_FORMAT_BC4_SNORM_BLOCK) + .value("BC5_UNORM_BLOCK", VkFormat::VK_FORMAT_BC5_UNORM_BLOCK) + .value("BC5_SNORM_BLOCK", VkFormat::VK_FORMAT_BC5_SNORM_BLOCK) + .value("BC6H_UFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_UFLOAT_BLOCK) + .value("BC6H_SFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_SFLOAT_BLOCK) + .value("BC7_UNORM_BLOCK", VkFormat::VK_FORMAT_BC7_UNORM_BLOCK) + .value("BC7_SRGB_BLOCK", VkFormat::VK_FORMAT_BC7_SRGB_BLOCK) + .value("ETC2_R8G8B8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK) + .value("ETC2_R8G8B8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK) + .value("ETC2_R8G8B8A1_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK) + .value("ETC2_R8G8B8A1_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK) + .value("ETC2_R8G8B8A8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK) + .value("ETC2_R8G8B8A8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK) + .value("EAC_R11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_UNORM_BLOCK) + .value("EAC_R11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_SNORM_BLOCK) + .value("EAC_R11G11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_UNORM_BLOCK) + .value("EAC_R11G11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_SNORM_BLOCK) + .value("ASTC_4x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_UNORM_BLOCK) + .value("ASTC_4x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SRGB_BLOCK) + .value("ASTC_5x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_UNORM_BLOCK) + .value("ASTC_5x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SRGB_BLOCK) + .value("ASTC_5x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_UNORM_BLOCK) + .value("ASTC_5x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SRGB_BLOCK) + .value("ASTC_6x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_UNORM_BLOCK) + .value("ASTC_6x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SRGB_BLOCK) + .value("ASTC_6x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_UNORM_BLOCK) + .value("ASTC_6x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SRGB_BLOCK) + .value("ASTC_8x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_UNORM_BLOCK) + .value("ASTC_8x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SRGB_BLOCK) + .value("ASTC_8x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_UNORM_BLOCK) + .value("ASTC_8x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SRGB_BLOCK) + .value("ASTC_8x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_UNORM_BLOCK) + .value("ASTC_8x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SRGB_BLOCK) + .value("ASTC_10x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_UNORM_BLOCK) + .value("ASTC_10x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SRGB_BLOCK) + .value("ASTC_10x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_UNORM_BLOCK) + .value("ASTC_10x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SRGB_BLOCK) + .value("ASTC_10x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_UNORM_BLOCK) + .value("ASTC_10x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SRGB_BLOCK) + .value("ASTC_10x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_UNORM_BLOCK) + .value("ASTC_10x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SRGB_BLOCK) + .value("ASTC_12x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_UNORM_BLOCK) + .value("ASTC_12x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SRGB_BLOCK) + .value("ASTC_12x12_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_UNORM_BLOCK) + .value("ASTC_12x12_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SRGB_BLOCK) + .value("G8B8G8R8_422_UNORM", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM) + .value("B8G8R8G8_422_UNORM", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM) + .value("G8_B8_R8_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM) + .value("G8_B8R8_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM) + .value("G8_B8_R8_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM) + .value("G8_B8R8_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM) + .value("G8_B8_R8_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM) + .value("R10X6_UNORM_PACK16", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16) + .value("R10X6G10X6_UNORM_2PACK16", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16) + .value("R12X4_UNORM_PACK16", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16) + .value("R12X4G12X4_UNORM_2PACK16", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16) + .value("G16B16G16R16_422_UNORM", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM) + .value("B16G16R16G16_422_UNORM", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM) + .value("G16_B16_R16_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM) + .value("G16_B16R16_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM) + .value("G16_B16_R16_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM) + .value("G16_B16R16_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM) + .value("G16_B16_R16_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM) + .value("G8_B8R8_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16) + .value("G16_B16R16_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM) + .value("A4R4G4B4_UNORM_PACK16", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16) + .value("A4B4G4R4_UNORM_PACK16", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16) + .value("ASTC_4x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK) + .value("ASTC_5x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK) + .value("ASTC_5x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK) + .value("ASTC_6x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK) + .value("ASTC_6x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK) + .value("ASTC_8x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK) + .value("ASTC_8x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK) + .value("ASTC_8x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK) + .value("ASTC_10x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK) + .value("ASTC_10x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK) + .value("ASTC_10x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK) + .value("ASTC_10x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK) + .value("ASTC_12x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK) + .value("ASTC_12x12_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK) + .value("A1B5G5R5_UNORM_PACK16", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16) + .value("A8_UNORM", VkFormat::VK_FORMAT_A8_UNORM) + .value("PVRTC1_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC1_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG) + .value("R16G16_SFIXED5_NV", VkFormat::VK_FORMAT_R16G16_SFIXED5_NV) + .value("ASTC_4x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT) + .value("ASTC_8x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT) + .value("ASTC_10x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT) + .value("ASTC_10x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x12_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT) + .value("G8B8G8R8_422_UNORM_KHR", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM_KHR) + .value("B8G8R8G8_422_UNORM_KHR", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR) + .value("G8_B8R8_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR) + .value("G8_B8_R8_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR) + .value("G8_B8R8_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR) + .value("R10X6_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16_KHR) + .value("R10X6G10X6_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR) + .value("R12X4_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16_KHR) + .value("R12X4G12X4_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR) + .value("G16B16G16R16_422_UNORM_KHR", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM_KHR) + .value("B16G16R16G16_422_UNORM_KHR", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR) + .value("G16_B16R16_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR) + .value("G16_B16_R16_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR) + .value("G16_B16R16_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR) + .value("G8_B8R8_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT) + .value("G16_B16R16_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT) + .value("A4R4G4B4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT) + .value("A4B4G4R4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT) + .value("R16G16_S10_5_NV", VkFormat::VK_FORMAT_R16G16_S10_5_NV) + .value("A1B5G5R5_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR) + .value("A8_UNORM_KHR", VkFormat::VK_FORMAT_A8_UNORM_KHR) + .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); py::implicitly_convertible(); py::enum_(m, "VkImageLayout", py::arithmetic()) + .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) + .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) + .value("COLOR_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL) + .value("SHADER_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + .value("TRANSFER_SRC_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) + .value("TRANSFER_DST_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) + .value("PREINITIALIZED", VkImageLayout::VK_IMAGE_LAYOUT_PREINITIALIZED) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL) + .value("DEPTH_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL) + .value("DEPTH_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL) + .value("STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL) + .value("STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL) + .value("READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL) + .value("ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL) + .value("RENDERING_LOCAL_READ", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ) + .value("PRESENT_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) + .value("VIDEO_DECODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR) + .value("VIDEO_DECODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR) + .value("VIDEO_DECODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR) + .value("SHARED_PRESENT_KHR", VkImageLayout::VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR) + .value("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT) + .value("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR) + .value("VIDEO_ENCODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR) + .value("VIDEO_ENCODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR) + .value("VIDEO_ENCODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR) + .value("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) + .value("VIDEO_ENCODE_QUANTIZATION_MAP_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("SHADING_RATE_OPTIMAL_NV", VkImageLayout::VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV) + .value("RENDERING_LOCAL_READ_KHR", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR) + .value("DEPTH_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR) + .value("STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR) + .value("ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR) + .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); py::implicitly_convertible(); From 7fc28260a76a1712f7dfb778c88eed521125ce0d Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:34:04 +0000 Subject: [PATCH 100/146] No need to have py::arithmetic() or py::implicitly_convertible for VkFormat and VkImageLayout Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index d3d6fa1e..da0b25cc 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -4,7 +4,7 @@ void initGrContext_vk(py::module &m) { -py::enum_(m, "VkFormat", py::arithmetic()) +py::enum_(m, "VkFormat") .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) @@ -315,8 +315,6 @@ py::enum_(m, "VkFormat", py::arithmetic()) .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::enum_(m, "VkImageLayout", py::arithmetic()) .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) @@ -361,8 +359,6 @@ py::enum_(m, "VkImageLayout", py::arithmetic()) .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::class_(m, "GrVkAlloc") .def(py::init<>()) // TODO: Implement me! From c588bb1eff4041e32c7f09c0479cabfa6854f184 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 23:25:55 +0000 Subject: [PATCH 101/146] Adjusting Vulkan tests to use symbolic enums Signed-off-by: Hin-Tak Leung --- tests/test_grcontext.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_grcontext.py b/tests/test_grcontext.py index 8784a6b9..88215a4d 100644 --- a/tests/test_grcontext.py +++ b/tests/test_grcontext.py @@ -62,7 +62,7 @@ def test_GrBackendFormat_MakeVk_1(): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance( - skia.GrBackendFormat.MakeVk(0), (type(None), skia.GrBackendFormat)) + skia.GrBackendFormat.MakeVk(skia.VkFormat.UNDEFINED), (type(None), skia.GrBackendFormat)) def test_GrBackendFormat_MakeVk_2(): @@ -98,7 +98,7 @@ def test_GrBackendFormat_channelMask(backend_format): def test_GrBackendFormat_asVkFormat(backend_format): - fmt = 1 + fmt = skia.VkFormat.UNDEFINED if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance(backend_format.asVkFormat(fmt), bool) @@ -266,7 +266,7 @@ def test_GrBackendRenderTarget_getVkImageInfo(backend_render_target): def test_GrBackendRenderTarget_setVkImageLayout(backend_render_target): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") - backend_render_target.setVkImageLayout(0) + backend_render_target.setVkImageLayout(skia.VkImageLayout.UNDEFINED) def test_GrBackendRenderTarget_getBackendFormat(backend_render_target): From ce75f7f025a18203c060aa836384658b4def6459 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 17 Feb 2026 14:36:28 +0000 Subject: [PATCH 102/146] Fix build error against pybind11 3.0.2. src/skia/Matrix.cpp:1562:13: error: return type 'Tuple' must match previous return type 'Tuple' when lambda expression has unspecified explicit return type 1562 | return py::make_tuple(-1, -1); | ^ 1 error generated. Signed-off-by: Hin-Tak Leung --- src/skia/Matrix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index ecf4f1ae..f642f130 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1555,7 +1555,7 @@ matrix :return: maximum scale factor )docstring") .def("getMinMaxScales", - [] (const SkMatrix& matrix) { + [] (const SkMatrix& matrix) -> py::object { std::vector factors(2); if (matrix.getMinMaxScales(&factors[0])) return py::make_tuple(factors[0], factors[1]); From 1e24d35abe29db4d93d450378e1c714de8931c22 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:32:51 +0000 Subject: [PATCH 103/146] Filling in VkFormat and VkImageLayout values Fixes #350 See https://github.com/kyamagu/skia-python/issues/350 Segfault on pytest exit in CI against pybind11 3.0.1 This is a workaround. See upstream issues: https://github.com/pybind/pybind11/issues/5976 [BUG]: Crash due to invalid free during cleanup, if any enum is registerd, due to attempting to free a string literal https://github.com/pybind/pybind11/issues/5991 [BUG]: segfault at exit since upgrading to 3.0.x, probably due to "Make wrapped C++ functions pickleable" (https://github.com/pybind/pybind11/pull/5580) Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 349 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index 75bdaa21..d3d6fa1e 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -5,11 +5,360 @@ void initGrContext_vk(py::module &m) { py::enum_(m, "VkFormat", py::arithmetic()) + .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) + .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) + .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) + .value("B4G4R4A4_UNORM_PACK16", VkFormat::VK_FORMAT_B4G4R4A4_UNORM_PACK16) + .value("R5G6B5_UNORM_PACK16", VkFormat::VK_FORMAT_R5G6B5_UNORM_PACK16) + .value("B5G6R5_UNORM_PACK16", VkFormat::VK_FORMAT_B5G6R5_UNORM_PACK16) + .value("R5G5B5A1_UNORM_PACK16", VkFormat::VK_FORMAT_R5G5B5A1_UNORM_PACK16) + .value("B5G5R5A1_UNORM_PACK16", VkFormat::VK_FORMAT_B5G5R5A1_UNORM_PACK16) + .value("A1R5G5B5_UNORM_PACK16", VkFormat::VK_FORMAT_A1R5G5B5_UNORM_PACK16) + .value("R8_UNORM", VkFormat::VK_FORMAT_R8_UNORM) + .value("R8_SNORM", VkFormat::VK_FORMAT_R8_SNORM) + .value("R8_USCALED", VkFormat::VK_FORMAT_R8_USCALED) + .value("R8_SSCALED", VkFormat::VK_FORMAT_R8_SSCALED) + .value("R8_UINT", VkFormat::VK_FORMAT_R8_UINT) + .value("R8_SINT", VkFormat::VK_FORMAT_R8_SINT) + .value("R8_SRGB", VkFormat::VK_FORMAT_R8_SRGB) + .value("R8G8_UNORM", VkFormat::VK_FORMAT_R8G8_UNORM) + .value("R8G8_SNORM", VkFormat::VK_FORMAT_R8G8_SNORM) + .value("R8G8_USCALED", VkFormat::VK_FORMAT_R8G8_USCALED) + .value("R8G8_SSCALED", VkFormat::VK_FORMAT_R8G8_SSCALED) + .value("R8G8_UINT", VkFormat::VK_FORMAT_R8G8_UINT) + .value("R8G8_SINT", VkFormat::VK_FORMAT_R8G8_SINT) + .value("R8G8_SRGB", VkFormat::VK_FORMAT_R8G8_SRGB) + .value("R8G8B8_UNORM", VkFormat::VK_FORMAT_R8G8B8_UNORM) + .value("R8G8B8_SNORM", VkFormat::VK_FORMAT_R8G8B8_SNORM) + .value("R8G8B8_USCALED", VkFormat::VK_FORMAT_R8G8B8_USCALED) + .value("R8G8B8_SSCALED", VkFormat::VK_FORMAT_R8G8B8_SSCALED) + .value("R8G8B8_UINT", VkFormat::VK_FORMAT_R8G8B8_UINT) + .value("R8G8B8_SINT", VkFormat::VK_FORMAT_R8G8B8_SINT) + .value("R8G8B8_SRGB", VkFormat::VK_FORMAT_R8G8B8_SRGB) + .value("B8G8R8_UNORM", VkFormat::VK_FORMAT_B8G8R8_UNORM) + .value("B8G8R8_SNORM", VkFormat::VK_FORMAT_B8G8R8_SNORM) + .value("B8G8R8_USCALED", VkFormat::VK_FORMAT_B8G8R8_USCALED) + .value("B8G8R8_SSCALED", VkFormat::VK_FORMAT_B8G8R8_SSCALED) + .value("B8G8R8_UINT", VkFormat::VK_FORMAT_B8G8R8_UINT) + .value("B8G8R8_SINT", VkFormat::VK_FORMAT_B8G8R8_SINT) + .value("B8G8R8_SRGB", VkFormat::VK_FORMAT_B8G8R8_SRGB) + .value("R8G8B8A8_UNORM", VkFormat::VK_FORMAT_R8G8B8A8_UNORM) + .value("R8G8B8A8_SNORM", VkFormat::VK_FORMAT_R8G8B8A8_SNORM) + .value("R8G8B8A8_USCALED", VkFormat::VK_FORMAT_R8G8B8A8_USCALED) + .value("R8G8B8A8_SSCALED", VkFormat::VK_FORMAT_R8G8B8A8_SSCALED) + .value("R8G8B8A8_UINT", VkFormat::VK_FORMAT_R8G8B8A8_UINT) + .value("R8G8B8A8_SINT", VkFormat::VK_FORMAT_R8G8B8A8_SINT) + .value("R8G8B8A8_SRGB", VkFormat::VK_FORMAT_R8G8B8A8_SRGB) + .value("B8G8R8A8_UNORM", VkFormat::VK_FORMAT_B8G8R8A8_UNORM) + .value("B8G8R8A8_SNORM", VkFormat::VK_FORMAT_B8G8R8A8_SNORM) + .value("B8G8R8A8_USCALED", VkFormat::VK_FORMAT_B8G8R8A8_USCALED) + .value("B8G8R8A8_SSCALED", VkFormat::VK_FORMAT_B8G8R8A8_SSCALED) + .value("B8G8R8A8_UINT", VkFormat::VK_FORMAT_B8G8R8A8_UINT) + .value("B8G8R8A8_SINT", VkFormat::VK_FORMAT_B8G8R8A8_SINT) + .value("B8G8R8A8_SRGB", VkFormat::VK_FORMAT_B8G8R8A8_SRGB) + .value("A8B8G8R8_UNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UNORM_PACK32) + .value("A8B8G8R8_SNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SNORM_PACK32) + .value("A8B8G8R8_USCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_USCALED_PACK32) + .value("A8B8G8R8_SSCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SSCALED_PACK32) + .value("A8B8G8R8_UINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UINT_PACK32) + .value("A8B8G8R8_SINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SINT_PACK32) + .value("A8B8G8R8_SRGB_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SRGB_PACK32) + .value("A2R10G10B10_UNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UNORM_PACK32) + .value("A2R10G10B10_SNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SNORM_PACK32) + .value("A2R10G10B10_USCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_USCALED_PACK32) + .value("A2R10G10B10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SSCALED_PACK32) + .value("A2R10G10B10_UINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UINT_PACK32) + .value("A2R10G10B10_SINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SINT_PACK32) + .value("A2B10G10R10_UNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UNORM_PACK32) + .value("A2B10G10R10_SNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SNORM_PACK32) + .value("A2B10G10R10_USCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_USCALED_PACK32) + .value("A2B10G10R10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SSCALED_PACK32) + .value("A2B10G10R10_UINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UINT_PACK32) + .value("A2B10G10R10_SINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SINT_PACK32) + .value("R16_UNORM", VkFormat::VK_FORMAT_R16_UNORM) + .value("R16_SNORM", VkFormat::VK_FORMAT_R16_SNORM) + .value("R16_USCALED", VkFormat::VK_FORMAT_R16_USCALED) + .value("R16_SSCALED", VkFormat::VK_FORMAT_R16_SSCALED) + .value("R16_UINT", VkFormat::VK_FORMAT_R16_UINT) + .value("R16_SINT", VkFormat::VK_FORMAT_R16_SINT) + .value("R16_SFLOAT", VkFormat::VK_FORMAT_R16_SFLOAT) + .value("R16G16_UNORM", VkFormat::VK_FORMAT_R16G16_UNORM) + .value("R16G16_SNORM", VkFormat::VK_FORMAT_R16G16_SNORM) + .value("R16G16_USCALED", VkFormat::VK_FORMAT_R16G16_USCALED) + .value("R16G16_SSCALED", VkFormat::VK_FORMAT_R16G16_SSCALED) + .value("R16G16_UINT", VkFormat::VK_FORMAT_R16G16_UINT) + .value("R16G16_SINT", VkFormat::VK_FORMAT_R16G16_SINT) + .value("R16G16_SFLOAT", VkFormat::VK_FORMAT_R16G16_SFLOAT) + .value("R16G16B16_UNORM", VkFormat::VK_FORMAT_R16G16B16_UNORM) + .value("R16G16B16_SNORM", VkFormat::VK_FORMAT_R16G16B16_SNORM) + .value("R16G16B16_USCALED", VkFormat::VK_FORMAT_R16G16B16_USCALED) + .value("R16G16B16_SSCALED", VkFormat::VK_FORMAT_R16G16B16_SSCALED) + .value("R16G16B16_UINT", VkFormat::VK_FORMAT_R16G16B16_UINT) + .value("R16G16B16_SINT", VkFormat::VK_FORMAT_R16G16B16_SINT) + .value("R16G16B16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16_SFLOAT) + .value("R16G16B16A16_UNORM", VkFormat::VK_FORMAT_R16G16B16A16_UNORM) + .value("R16G16B16A16_SNORM", VkFormat::VK_FORMAT_R16G16B16A16_SNORM) + .value("R16G16B16A16_USCALED", VkFormat::VK_FORMAT_R16G16B16A16_USCALED) + .value("R16G16B16A16_SSCALED", VkFormat::VK_FORMAT_R16G16B16A16_SSCALED) + .value("R16G16B16A16_UINT", VkFormat::VK_FORMAT_R16G16B16A16_UINT) + .value("R16G16B16A16_SINT", VkFormat::VK_FORMAT_R16G16B16A16_SINT) + .value("R16G16B16A16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16A16_SFLOAT) + .value("R32_UINT", VkFormat::VK_FORMAT_R32_UINT) + .value("R32_SINT", VkFormat::VK_FORMAT_R32_SINT) + .value("R32_SFLOAT", VkFormat::VK_FORMAT_R32_SFLOAT) + .value("R32G32_UINT", VkFormat::VK_FORMAT_R32G32_UINT) + .value("R32G32_SINT", VkFormat::VK_FORMAT_R32G32_SINT) + .value("R32G32_SFLOAT", VkFormat::VK_FORMAT_R32G32_SFLOAT) + .value("R32G32B32_UINT", VkFormat::VK_FORMAT_R32G32B32_UINT) + .value("R32G32B32_SINT", VkFormat::VK_FORMAT_R32G32B32_SINT) + .value("R32G32B32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32_SFLOAT) + .value("R32G32B32A32_UINT", VkFormat::VK_FORMAT_R32G32B32A32_UINT) + .value("R32G32B32A32_SINT", VkFormat::VK_FORMAT_R32G32B32A32_SINT) + .value("R32G32B32A32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32A32_SFLOAT) + .value("R64_UINT", VkFormat::VK_FORMAT_R64_UINT) + .value("R64_SINT", VkFormat::VK_FORMAT_R64_SINT) + .value("R64_SFLOAT", VkFormat::VK_FORMAT_R64_SFLOAT) + .value("R64G64_UINT", VkFormat::VK_FORMAT_R64G64_UINT) + .value("R64G64_SINT", VkFormat::VK_FORMAT_R64G64_SINT) + .value("R64G64_SFLOAT", VkFormat::VK_FORMAT_R64G64_SFLOAT) + .value("R64G64B64_UINT", VkFormat::VK_FORMAT_R64G64B64_UINT) + .value("R64G64B64_SINT", VkFormat::VK_FORMAT_R64G64B64_SINT) + .value("R64G64B64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64_SFLOAT) + .value("R64G64B64A64_UINT", VkFormat::VK_FORMAT_R64G64B64A64_UINT) + .value("R64G64B64A64_SINT", VkFormat::VK_FORMAT_R64G64B64A64_SINT) + .value("R64G64B64A64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64A64_SFLOAT) + .value("B10G11R11_UFLOAT_PACK32", VkFormat::VK_FORMAT_B10G11R11_UFLOAT_PACK32) + .value("E5B9G9R9_UFLOAT_PACK32", VkFormat::VK_FORMAT_E5B9G9R9_UFLOAT_PACK32) + .value("D16_UNORM", VkFormat::VK_FORMAT_D16_UNORM) + .value("X8_D24_UNORM_PACK32", VkFormat::VK_FORMAT_X8_D24_UNORM_PACK32) + .value("D32_SFLOAT", VkFormat::VK_FORMAT_D32_SFLOAT) + .value("S8_UINT", VkFormat::VK_FORMAT_S8_UINT) + .value("D16_UNORM_S8_UINT", VkFormat::VK_FORMAT_D16_UNORM_S8_UINT) + .value("D24_UNORM_S8_UINT", VkFormat::VK_FORMAT_D24_UNORM_S8_UINT) + .value("D32_SFLOAT_S8_UINT", VkFormat::VK_FORMAT_D32_SFLOAT_S8_UINT) + .value("BC1_RGB_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_UNORM_BLOCK) + .value("BC1_RGB_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_SRGB_BLOCK) + .value("BC1_RGBA_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_UNORM_BLOCK) + .value("BC1_RGBA_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_SRGB_BLOCK) + .value("BC2_UNORM_BLOCK", VkFormat::VK_FORMAT_BC2_UNORM_BLOCK) + .value("BC2_SRGB_BLOCK", VkFormat::VK_FORMAT_BC2_SRGB_BLOCK) + .value("BC3_UNORM_BLOCK", VkFormat::VK_FORMAT_BC3_UNORM_BLOCK) + .value("BC3_SRGB_BLOCK", VkFormat::VK_FORMAT_BC3_SRGB_BLOCK) + .value("BC4_UNORM_BLOCK", VkFormat::VK_FORMAT_BC4_UNORM_BLOCK) + .value("BC4_SNORM_BLOCK", VkFormat::VK_FORMAT_BC4_SNORM_BLOCK) + .value("BC5_UNORM_BLOCK", VkFormat::VK_FORMAT_BC5_UNORM_BLOCK) + .value("BC5_SNORM_BLOCK", VkFormat::VK_FORMAT_BC5_SNORM_BLOCK) + .value("BC6H_UFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_UFLOAT_BLOCK) + .value("BC6H_SFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_SFLOAT_BLOCK) + .value("BC7_UNORM_BLOCK", VkFormat::VK_FORMAT_BC7_UNORM_BLOCK) + .value("BC7_SRGB_BLOCK", VkFormat::VK_FORMAT_BC7_SRGB_BLOCK) + .value("ETC2_R8G8B8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK) + .value("ETC2_R8G8B8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK) + .value("ETC2_R8G8B8A1_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK) + .value("ETC2_R8G8B8A1_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK) + .value("ETC2_R8G8B8A8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK) + .value("ETC2_R8G8B8A8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK) + .value("EAC_R11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_UNORM_BLOCK) + .value("EAC_R11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_SNORM_BLOCK) + .value("EAC_R11G11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_UNORM_BLOCK) + .value("EAC_R11G11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_SNORM_BLOCK) + .value("ASTC_4x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_UNORM_BLOCK) + .value("ASTC_4x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SRGB_BLOCK) + .value("ASTC_5x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_UNORM_BLOCK) + .value("ASTC_5x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SRGB_BLOCK) + .value("ASTC_5x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_UNORM_BLOCK) + .value("ASTC_5x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SRGB_BLOCK) + .value("ASTC_6x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_UNORM_BLOCK) + .value("ASTC_6x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SRGB_BLOCK) + .value("ASTC_6x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_UNORM_BLOCK) + .value("ASTC_6x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SRGB_BLOCK) + .value("ASTC_8x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_UNORM_BLOCK) + .value("ASTC_8x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SRGB_BLOCK) + .value("ASTC_8x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_UNORM_BLOCK) + .value("ASTC_8x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SRGB_BLOCK) + .value("ASTC_8x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_UNORM_BLOCK) + .value("ASTC_8x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SRGB_BLOCK) + .value("ASTC_10x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_UNORM_BLOCK) + .value("ASTC_10x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SRGB_BLOCK) + .value("ASTC_10x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_UNORM_BLOCK) + .value("ASTC_10x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SRGB_BLOCK) + .value("ASTC_10x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_UNORM_BLOCK) + .value("ASTC_10x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SRGB_BLOCK) + .value("ASTC_10x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_UNORM_BLOCK) + .value("ASTC_10x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SRGB_BLOCK) + .value("ASTC_12x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_UNORM_BLOCK) + .value("ASTC_12x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SRGB_BLOCK) + .value("ASTC_12x12_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_UNORM_BLOCK) + .value("ASTC_12x12_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SRGB_BLOCK) + .value("G8B8G8R8_422_UNORM", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM) + .value("B8G8R8G8_422_UNORM", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM) + .value("G8_B8_R8_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM) + .value("G8_B8R8_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM) + .value("G8_B8_R8_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM) + .value("G8_B8R8_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM) + .value("G8_B8_R8_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM) + .value("R10X6_UNORM_PACK16", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16) + .value("R10X6G10X6_UNORM_2PACK16", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16) + .value("R12X4_UNORM_PACK16", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16) + .value("R12X4G12X4_UNORM_2PACK16", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16) + .value("G16B16G16R16_422_UNORM", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM) + .value("B16G16R16G16_422_UNORM", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM) + .value("G16_B16_R16_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM) + .value("G16_B16R16_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM) + .value("G16_B16_R16_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM) + .value("G16_B16R16_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM) + .value("G16_B16_R16_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM) + .value("G8_B8R8_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16) + .value("G16_B16R16_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM) + .value("A4R4G4B4_UNORM_PACK16", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16) + .value("A4B4G4R4_UNORM_PACK16", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16) + .value("ASTC_4x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK) + .value("ASTC_5x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK) + .value("ASTC_5x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK) + .value("ASTC_6x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK) + .value("ASTC_6x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK) + .value("ASTC_8x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK) + .value("ASTC_8x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK) + .value("ASTC_8x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK) + .value("ASTC_10x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK) + .value("ASTC_10x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK) + .value("ASTC_10x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK) + .value("ASTC_10x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK) + .value("ASTC_12x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK) + .value("ASTC_12x12_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK) + .value("A1B5G5R5_UNORM_PACK16", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16) + .value("A8_UNORM", VkFormat::VK_FORMAT_A8_UNORM) + .value("PVRTC1_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC1_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG) + .value("R16G16_SFIXED5_NV", VkFormat::VK_FORMAT_R16G16_SFIXED5_NV) + .value("ASTC_4x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT) + .value("ASTC_8x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT) + .value("ASTC_10x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT) + .value("ASTC_10x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x12_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT) + .value("G8B8G8R8_422_UNORM_KHR", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM_KHR) + .value("B8G8R8G8_422_UNORM_KHR", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR) + .value("G8_B8R8_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR) + .value("G8_B8_R8_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR) + .value("G8_B8R8_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR) + .value("R10X6_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16_KHR) + .value("R10X6G10X6_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR) + .value("R12X4_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16_KHR) + .value("R12X4G12X4_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR) + .value("G16B16G16R16_422_UNORM_KHR", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM_KHR) + .value("B16G16R16G16_422_UNORM_KHR", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR) + .value("G16_B16R16_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR) + .value("G16_B16_R16_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR) + .value("G16_B16R16_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR) + .value("G8_B8R8_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT) + .value("G16_B16R16_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT) + .value("A4R4G4B4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT) + .value("A4B4G4R4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT) + .value("R16G16_S10_5_NV", VkFormat::VK_FORMAT_R16G16_S10_5_NV) + .value("A1B5G5R5_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR) + .value("A8_UNORM_KHR", VkFormat::VK_FORMAT_A8_UNORM_KHR) + .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); py::implicitly_convertible(); py::enum_(m, "VkImageLayout", py::arithmetic()) + .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) + .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) + .value("COLOR_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL) + .value("SHADER_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + .value("TRANSFER_SRC_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) + .value("TRANSFER_DST_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) + .value("PREINITIALIZED", VkImageLayout::VK_IMAGE_LAYOUT_PREINITIALIZED) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL) + .value("DEPTH_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL) + .value("DEPTH_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL) + .value("STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL) + .value("STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL) + .value("READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL) + .value("ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL) + .value("RENDERING_LOCAL_READ", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ) + .value("PRESENT_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) + .value("VIDEO_DECODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR) + .value("VIDEO_DECODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR) + .value("VIDEO_DECODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR) + .value("SHARED_PRESENT_KHR", VkImageLayout::VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR) + .value("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT) + .value("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR) + .value("VIDEO_ENCODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR) + .value("VIDEO_ENCODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR) + .value("VIDEO_ENCODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR) + .value("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) + .value("VIDEO_ENCODE_QUANTIZATION_MAP_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("SHADING_RATE_OPTIMAL_NV", VkImageLayout::VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV) + .value("RENDERING_LOCAL_READ_KHR", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR) + .value("DEPTH_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR) + .value("STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR) + .value("ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR) + .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); py::implicitly_convertible(); From d78d61513f79af13a996cc3c393e2e1af765576c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:34:04 +0000 Subject: [PATCH 104/146] No need to have py::arithmetic() or py::implicitly_convertible for VkFormat and VkImageLayout Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index d3d6fa1e..da0b25cc 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -4,7 +4,7 @@ void initGrContext_vk(py::module &m) { -py::enum_(m, "VkFormat", py::arithmetic()) +py::enum_(m, "VkFormat") .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) @@ -315,8 +315,6 @@ py::enum_(m, "VkFormat", py::arithmetic()) .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::enum_(m, "VkImageLayout", py::arithmetic()) .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) @@ -361,8 +359,6 @@ py::enum_(m, "VkImageLayout", py::arithmetic()) .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::class_(m, "GrVkAlloc") .def(py::init<>()) // TODO: Implement me! From aff8ad469a28f4141fcf3497a0be3cdf95723f90 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 23:25:55 +0000 Subject: [PATCH 105/146] Adjusting Vulkan tests to use symbolic enums Signed-off-by: Hin-Tak Leung --- tests/test_grcontext.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_grcontext.py b/tests/test_grcontext.py index 8784a6b9..88215a4d 100644 --- a/tests/test_grcontext.py +++ b/tests/test_grcontext.py @@ -62,7 +62,7 @@ def test_GrBackendFormat_MakeVk_1(): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance( - skia.GrBackendFormat.MakeVk(0), (type(None), skia.GrBackendFormat)) + skia.GrBackendFormat.MakeVk(skia.VkFormat.UNDEFINED), (type(None), skia.GrBackendFormat)) def test_GrBackendFormat_MakeVk_2(): @@ -98,7 +98,7 @@ def test_GrBackendFormat_channelMask(backend_format): def test_GrBackendFormat_asVkFormat(backend_format): - fmt = 1 + fmt = skia.VkFormat.UNDEFINED if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance(backend_format.asVkFormat(fmt), bool) @@ -266,7 +266,7 @@ def test_GrBackendRenderTarget_getVkImageInfo(backend_render_target): def test_GrBackendRenderTarget_setVkImageLayout(backend_render_target): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") - backend_render_target.setVkImageLayout(0) + backend_render_target.setVkImageLayout(skia.VkImageLayout.UNDEFINED) def test_GrBackendRenderTarget_getBackendFormat(backend_render_target): From 2091c6bf7c6ca99216d8acf626e1ddfe0f0bee32 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 17 Feb 2026 14:36:28 +0000 Subject: [PATCH 106/146] Fix build error against pybind11 3.0.2. src/skia/Matrix.cpp:1562:13: error: return type 'Tuple' must match previous return type 'Tuple' when lambda expression has unspecified explicit return type 1562 | return py::make_tuple(-1, -1); | ^ 1 error generated. Signed-off-by: Hin-Tak Leung --- src/skia/Matrix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index 8d8203ef..5ee18616 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1555,7 +1555,7 @@ matrix :return: maximum scale factor )docstring") .def("getMinMaxScales", - [] (const SkMatrix& matrix) { + [] (const SkMatrix& matrix) -> py::object { std::vector factors(2); if (matrix.getMinMaxScales(&factors[0])) return py::make_tuple(factors[0], factors[1]); From cc1189f4565e588e0d7800f2ef3e83745bbf7d0c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 23:32:17 +0000 Subject: [PATCH 107/146] CI: Update to macos-14 See https://github.com/actions/runner-images/issues/13046 macOS 13 is fully unsupported by December 4th 2025 for GitHub. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c63ca1fd..47fac872 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,11 +15,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{10,11,12,13,14}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{10,11,12,13,14}" - os: ubuntu-22.04-arm @@ -67,11 +67,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{8,9}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{8,9}" - os: ubuntu-22.04-arm From 873ac8108d652a59c0d0dbcb4a26a17fa0722f82 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 00:29:29 +0000 Subject: [PATCH 108/146] CI: use macos-15-intel to get a x64 build for auto64. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47fac872..4bb52949 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{10,11,12,13,14}"] include: @@ -67,7 +67,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{8,9}"] include: From cbd9f86edd0c726f95ec5053be4aeb2a1126e02d Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 23:32:17 +0000 Subject: [PATCH 109/146] CI: Update to macos-14 See https://github.com/actions/runner-images/issues/13046 macOS 13 is fully unsupported by December 4th 2025 for GitHub. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0724a384..58e2a62b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,11 +15,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{10,11,12,13}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{10,11,12,13}" - os: ubuntu-22.04-arm @@ -67,11 +67,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{8,9}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{8,9}" - os: ubuntu-22.04-arm From b764446ad404af2aee7a8cb7f10016c2c35edf3e Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 00:29:29 +0000 Subject: [PATCH 110/146] CI: use macos-15-intel to get a x64 build for auto64. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 58e2a62b..b29d2766 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{10,11,12,13}"] include: @@ -67,7 +67,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{8,9}"] include: From 02e59ff6ccd0849d0bbd769d3d9b2ad98b9edb61 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 23:32:17 +0000 Subject: [PATCH 111/146] CI: Update to macos-14 See https://github.com/actions/runner-images/issues/13046 macOS 13 is fully unsupported by December 4th 2025 for GitHub. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6c3e436..aaa650f4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,11 +15,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{10,11,12,13}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{10,11,12,13}" - os: ubuntu-22.04-arm @@ -67,11 +67,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{8,9}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{8,9}" - os: ubuntu-22.04-arm From c54f1e05e220e772215e832cbcf5f85a0dd23035 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 00:29:29 +0000 Subject: [PATCH 112/146] CI: use macos-15-intel to get a x64 build for auto64. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aaa650f4..edb46ae5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{10,11,12,13}"] include: @@ -67,7 +67,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{8,9}"] include: From be72c38cc0cb383bb8a8306b6541d66825a67f0a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 8 Dec 2025 23:32:17 +0000 Subject: [PATCH 113/146] CI: Update to macos-14 See https://github.com/actions/runner-images/issues/13046 macOS 13 is fully unsupported by December 4th 2025 for GitHub. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c581a710..a0bc750a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,11 +15,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{10,11,12,13}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{10,11,12,13}" - os: ubuntu-22.04-arm @@ -66,11 +66,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + os: [ubuntu-22.04, windows-2022, macos-14] arch: [auto64] cp: ["cp3{8,9}"] include: - - os: macos-13 + - os: macos-14 arch: arm64 cp: "cp3{8,9}" - os: ubuntu-22.04-arm From 8163cfae58b2a9d80d208267848cae77625b0f6a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 00:29:29 +0000 Subject: [PATCH 114/146] CI: use macos-15-intel to get a x64 build for auto64. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a0bc750a..ed93d0ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{10,11,12,13}"] include: @@ -66,7 +66,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-14] + os: [ubuntu-22.04, windows-2022, macos-15-intel] arch: [auto64] cp: ["cp3{8,9}"] include: From 1ce6efdc59bd602e1072528d59672777bd8b02f2 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 27 Feb 2026 23:29:21 +0000 Subject: [PATCH 115/146] Ubuntu CI cannot find clang. Reverting. Revert "last sync" This reverts commit cd1a64b517fa39b26dec7b01c560baeab063a84d. --- setup.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/setup.py b/setup.py index c70fc09b..5a84bbc0 100644 --- a/setup.py +++ b/setup.py @@ -88,9 +88,6 @@ 'OpenGL', ] else: - os.environ["CC"] = "clang" - os.environ["CXX"] = "clang++" - os.environ["LDSHARED"] = "clang -shared" DEFINE_MACROS = [ ('VERSION_INFO', __version__), ('SK_GL', ''), From a658445307f8b706e37867e625e4f330663f0539 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 27 Feb 2026 23:30:22 +0000 Subject: [PATCH 116/146] Dropping -O3 does not improve. Revert "More difference between local and remote; to investigate crash" This reverts commit 6d48e0c226d6b570d4c3de3d0236e8860931947d. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5a84bbc0..35764f4f 100644 --- a/setup.py +++ b/setup.py @@ -113,12 +113,12 @@ '-Wno-attributes', '-fdata-sections', '-ffunction-sections', - '-Wall', '-g', ] EXTRA_LINK_ARGS = [ '-Wl,--gc-sections', '-s', + '-O3', '-g', ] From ae5b5e6ef5e44dbf5e466e8de0b66e55fada63aa Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 27 Feb 2026 23:31:18 +0000 Subject: [PATCH 117/146] Does not matter dropping -g. Revert "Enabling some debug features, to aid debugging pybind11 3.x crashes" This reverts commit def00d365dba96c7e3688656b5f359245eeeabfa. --- setup.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/setup.py b/setup.py index 35764f4f..7f018f46 100644 --- a/setup.py +++ b/setup.py @@ -93,8 +93,6 @@ ('SK_GL', ''), ('SK_VULKAN', ''), ('SK_GANESH', '1'), - ('PYBIND11_DETAILED_ERROR_MESSAGES', '1'), - ('PYBIND11_HANDLE_REF_DEBUG', '1'), ] LIBRARIES = [ 'dl', @@ -113,13 +111,11 @@ '-Wno-attributes', '-fdata-sections', '-ffunction-sections', - '-g', ] EXTRA_LINK_ARGS = [ '-Wl,--gc-sections', '-s', '-O3', - '-g', ] From 257545ea9e4e307e5431f35d529f00afc0220d36 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 27 Feb 2026 23:32:44 +0000 Subject: [PATCH 118/146] Revert "Needs clang if we are building with clang (last change" This reverts commit 0188f0a0b9410db4d392b2d922c24a43e7f6fe91. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa554cf2..e3628494 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -165,7 +165,7 @@ jobs: container: fedora:42 permissions: write-all steps: - - run: dnf install -y dnf-utils git gcc-c++ libstdc++-devel libstdc++-static clang + - run: dnf install -y dnf-utils git gcc-c++ libstdc++-devel libstdc++-static - run: dnf install -y python3-build python3-devel python3-pytest python3-pillow python3-glfw - run: dnf install -y egl-utils glx-utils - run: dnf install -y patch From ed2df04effa95a3b901d73fd7fef4dde638ae86c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 02:53:20 +0000 Subject: [PATCH 119/146] Roll skia forwards on m144 (canvaskit/0.40.0-2647-gee20d565ac to canvaskit/0.40.0-2648-g2708a1b154) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index ee20d565..2708a1b1 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit ee20d565acb08dece4a32e3f209cdd41119015ca +Subproject commit 2708a1b1540e59b8e3407405b0c991a5c7b69523 From 3b8be26d33a44522135ac984e33a909ecd8fcd2f Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:17:32 +0000 Subject: [PATCH 120/146] Reverting pybind11 3.0.0 limits - it should just work now. Revert "Skip pybind11 3.0.0 until it get fixed (waiting for 3.0.1)" This reverts commit 443a499bf9bb46cda5f275c1bc2e20095b6ea81c. --- .github/workflows/ci.yml | 4 ++-- setup.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed93d0ba..d7be888d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy + CIBW_BEFORE_BUILD: pip install pybind11 numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl @@ -92,7 +92,7 @@ jobs: CIBW_ARCHS: ${{ matrix.arch }} CIBW_ENVIRONMENT_MACOS: TARGET_ARCH=${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET=11.0 CIBW_BEFORE_ALL: bash scripts/build_${{ runner.os }}.sh - CIBW_BEFORE_BUILD: pip install "pybind11<3.0.0" numpy + CIBW_BEFORE_BUILD: pip install pybind11 numpy CIBW_TEST_REQUIRES: pytest pillow glfw CIBW_TEST_REQUIRES_LINUX: pytest pillow glfw moderngl CIBW_TEST_REQUIRES_MACOS: pytest pillow pyopengl diff --git a/setup.py b/setup.py index 88b4542f..ef51dfeb 100644 --- a/setup.py +++ b/setup.py @@ -182,9 +182,9 @@ def build_extensions(self): data_files=data_files, install_requires=[ 'numpy', - 'pybind11>=2.6,<3.0.0' + 'pybind11>=2.6' ], - setup_requires=['pybind11>=2.6,<3.0.0'], + setup_requires=['pybind11>=2.6'], cmdclass={'build_ext': BuildExt}, classifiers=[ 'Development Status :: 4 - Beta', From a7b45b7fd0b3144f3dbb6e3b90d00c6dd7ecf563 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:22:26 +0000 Subject: [PATCH 121/146] Not needed any more. Revert "Make artefacts available even when pytest fails." This reverts commit a057e3c6d32cfe535eaea918569488e75c9970da. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index edb46ae5..d7be888d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl @@ -104,7 +103,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl From a93e11b0dc9c060ede16aad923b1105152dd9bb9 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:22:26 +0000 Subject: [PATCH 122/146] Not needed any more. Revert "Make artefacts available even when pytest fails." This reverts commit a057e3c6d32cfe535eaea918569488e75c9970da. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b29d2766..137c2e56 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl @@ -104,7 +103,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl From 3da17d75e6fab2ab8b41903d2caa8477dd811d99 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:22:26 +0000 Subject: [PATCH 123/146] Not needed any more. Revert "Make artefacts available even when pytest fails." This reverts commit a057e3c6d32cfe535eaea918569488e75c9970da. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4bb52949..165d8441 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl @@ -104,7 +103,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl From c32d989e19ea441529f6866e53612d322aef174c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:33:23 +0000 Subject: [PATCH 124/146] Rolling skia on m141 (canvaskit/0.40.0-1581-g5eefbe51d1 to canvaskit/0.40.0-1582-g05dcf6678e) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index 5eefbe51..05dcf667 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit 5eefbe51d17d2e379fa2d7353827e0ccb1e1f601 +Subproject commit 05dcf6678ecab9033708ef6619b510aa96525d79 From c8b9eb57dec2b1bff4cc9d8e4774042a8004ede3 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:37:25 +0000 Subject: [PATCH 125/146] Rolling skia on m142 (canvaskit/0.40.0-1869-gf4ed99d244 to canvaskit/0.40.0-1870-gc695cba6ed) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index f4ed99d2..c695cba6 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit f4ed99d2443962782cf5f8b4dd27179f131e7cbe +Subproject commit c695cba6ed9daa8d6b676e446cdc84707e3ca860 From c9c7f77cb4f4681eff1ad03780709b5469435aaf Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:22:26 +0000 Subject: [PATCH 126/146] Not needed any more. Revert "Make artefacts available even when pytest fails." This reverts commit a057e3c6d32cfe535eaea918569488e75c9970da. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e3628494..636b3809 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl @@ -104,7 +103,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl From 23882eed725dcc2a0f8d6676936d7e5eff141af2 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:47:08 +0000 Subject: [PATCH 127/146] Revert "Tell setuptools not to strip?" This reverts commit 03b4bcbef115b13debdd1ae245a1ab0a3ac881d1. --- setup.cfg | 3 --- 1 file changed, 3 deletions(-) diff --git a/setup.cfg b/setup.cfg index 6e16de16..9c7112e2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,6 +11,3 @@ deps = pytest glfw pillow - -[build] -debug=1 From f2d001be7f2157efaba6b2bef9f1a9a47716f943 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:22:26 +0000 Subject: [PATCH 128/146] Not needed any more. Revert "Make artefacts available even when pytest fails." This reverts commit a057e3c6d32cfe535eaea918569488e75c9970da. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4bb52949..165d8441 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl @@ -104,7 +103,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl From 16424911eeea2d6240b6352da5a40efeb6b125ff Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 00:27:40 +0000 Subject: [PATCH 129/146] m143: adding back a test without skia.ApplyPerspectiveClip.kYes --- tests/test_path.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_path.py b/tests/test_path.py index 6c2215d1..abe0399d 100644 --- a/tests/test_path.py +++ b/tests/test_path.py @@ -499,6 +499,7 @@ def test_Path_offset(path, args): skia.Matrix(), skia.Path(), ), + (skia.Matrix(), None), # (skia.Matrix(), None, skia.ApplyPerspectiveClip.kYes), ] ) From 648bccee76210595d45d7964de525218a50ff86c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 00:27:40 +0000 Subject: [PATCH 130/146] m143: adding back a test without skia.ApplyPerspectiveClip.kYes --- tests/test_path.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_path.py b/tests/test_path.py index 6c2215d1..abe0399d 100644 --- a/tests/test_path.py +++ b/tests/test_path.py @@ -499,6 +499,7 @@ def test_Path_offset(path, args): skia.Matrix(), skia.Path(), ), + (skia.Matrix(), None), # (skia.Matrix(), None, skia.ApplyPerspectiveClip.kYes), ] ) From 9a6cd8014a3f495bc6c04ec006a7133b01a527d8 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 9 Dec 2025 01:04:39 +0000 Subject: [PATCH 131/146] m144: Adjust 0001-Reland-Make-SkPath-immutable-on-GN-build.patch to reverse-apply to m144 cleanly. Reversing "defines.remove('SK_DISABLE_LEGACY_NONCONST_SERIAL_PROCS')" also is likely strictly-speaking incorrect: what we want is really removing the 'defines.remove("SK_HIDE_PATH_EDIT_METHODS")' line while keeping the rest. It likely does not matter. Forgotten to adjust the line-count when modifying the patch --- patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch b/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch index 6dc0a6e8..cd62455d 100644 --- a/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch +++ b/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch @@ -62,7 +62,7 @@ diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py index 24195d2eea..2bbe758676 100755 --- a/gn/gn_to_bp.py +++ b/gn/gn_to_bp.py -@@ -771,7 +771,12 @@ here = os.path.dirname(__file__) +@@ -771,7 +771,13 @@ here = os.path.dirname(__file__) defs = gn_to_bp_utils.GetArchSources(os.path.join(here, 'opts.gni')) def get_defines(json): @@ -71,6 +71,7 @@ index 24195d2eea..2bbe758676 100755 + # TODO(kjlubick, fmalita) Add this back in to enforce Android doesn't + # use these methods anymore. + defines.remove("SK_HIDE_PATH_EDIT_METHODS") ++ defines.remove('SK_DISABLE_LEGACY_NONCONST_SERIAL_PROCS') + return defines + android_defines = get_defines(js) From d8816c933d822e2426b92652446b796b35326bb6 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Fri, 9 Jan 2026 00:31:52 +0000 Subject: [PATCH 132/146] Simpler test for basic functionality (and crash) --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4bb52949..e3628494 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -183,6 +183,7 @@ jobs: path: ./dist/*.whl - run: python -m pip install dist/*.whl - run: python -m pip install moderngl + - run: python -c 'import skia; print(skia.__version__)' - run: python -c 'import moderngl; moderngl_context = moderngl.create_standalone_context(backend="egl"); import skia; interface = skia.GrGLInterface.MakeEGL() ; assert isinstance(skia.GrDirectContext.MakeGL(interface), skia.GrContext) ; print("Success3")' - run: eglinfo || /bin/true - run: xvfb-run -s "-screen 0 640x480x24" glxinfo From 87120224e6a0a01914708479266716c4baefb974 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:32:51 +0000 Subject: [PATCH 133/146] Filling in VkFormat and VkImageLayout values Fixes #350 See https://github.com/kyamagu/skia-python/issues/350 Segfault on pytest exit in CI against pybind11 3.0.1 This is a workaround. See upstream issues: https://github.com/pybind/pybind11/issues/5976 [BUG]: Crash due to invalid free during cleanup, if any enum is registerd, due to attempting to free a string literal https://github.com/pybind/pybind11/issues/5991 [BUG]: segfault at exit since upgrading to 3.0.x, probably due to "Make wrapped C++ functions pickleable" (https://github.com/pybind/pybind11/pull/5580) Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 349 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index 75bdaa21..d3d6fa1e 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -5,11 +5,360 @@ void initGrContext_vk(py::module &m) { py::enum_(m, "VkFormat", py::arithmetic()) + .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) + .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) + .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) + .value("B4G4R4A4_UNORM_PACK16", VkFormat::VK_FORMAT_B4G4R4A4_UNORM_PACK16) + .value("R5G6B5_UNORM_PACK16", VkFormat::VK_FORMAT_R5G6B5_UNORM_PACK16) + .value("B5G6R5_UNORM_PACK16", VkFormat::VK_FORMAT_B5G6R5_UNORM_PACK16) + .value("R5G5B5A1_UNORM_PACK16", VkFormat::VK_FORMAT_R5G5B5A1_UNORM_PACK16) + .value("B5G5R5A1_UNORM_PACK16", VkFormat::VK_FORMAT_B5G5R5A1_UNORM_PACK16) + .value("A1R5G5B5_UNORM_PACK16", VkFormat::VK_FORMAT_A1R5G5B5_UNORM_PACK16) + .value("R8_UNORM", VkFormat::VK_FORMAT_R8_UNORM) + .value("R8_SNORM", VkFormat::VK_FORMAT_R8_SNORM) + .value("R8_USCALED", VkFormat::VK_FORMAT_R8_USCALED) + .value("R8_SSCALED", VkFormat::VK_FORMAT_R8_SSCALED) + .value("R8_UINT", VkFormat::VK_FORMAT_R8_UINT) + .value("R8_SINT", VkFormat::VK_FORMAT_R8_SINT) + .value("R8_SRGB", VkFormat::VK_FORMAT_R8_SRGB) + .value("R8G8_UNORM", VkFormat::VK_FORMAT_R8G8_UNORM) + .value("R8G8_SNORM", VkFormat::VK_FORMAT_R8G8_SNORM) + .value("R8G8_USCALED", VkFormat::VK_FORMAT_R8G8_USCALED) + .value("R8G8_SSCALED", VkFormat::VK_FORMAT_R8G8_SSCALED) + .value("R8G8_UINT", VkFormat::VK_FORMAT_R8G8_UINT) + .value("R8G8_SINT", VkFormat::VK_FORMAT_R8G8_SINT) + .value("R8G8_SRGB", VkFormat::VK_FORMAT_R8G8_SRGB) + .value("R8G8B8_UNORM", VkFormat::VK_FORMAT_R8G8B8_UNORM) + .value("R8G8B8_SNORM", VkFormat::VK_FORMAT_R8G8B8_SNORM) + .value("R8G8B8_USCALED", VkFormat::VK_FORMAT_R8G8B8_USCALED) + .value("R8G8B8_SSCALED", VkFormat::VK_FORMAT_R8G8B8_SSCALED) + .value("R8G8B8_UINT", VkFormat::VK_FORMAT_R8G8B8_UINT) + .value("R8G8B8_SINT", VkFormat::VK_FORMAT_R8G8B8_SINT) + .value("R8G8B8_SRGB", VkFormat::VK_FORMAT_R8G8B8_SRGB) + .value("B8G8R8_UNORM", VkFormat::VK_FORMAT_B8G8R8_UNORM) + .value("B8G8R8_SNORM", VkFormat::VK_FORMAT_B8G8R8_SNORM) + .value("B8G8R8_USCALED", VkFormat::VK_FORMAT_B8G8R8_USCALED) + .value("B8G8R8_SSCALED", VkFormat::VK_FORMAT_B8G8R8_SSCALED) + .value("B8G8R8_UINT", VkFormat::VK_FORMAT_B8G8R8_UINT) + .value("B8G8R8_SINT", VkFormat::VK_FORMAT_B8G8R8_SINT) + .value("B8G8R8_SRGB", VkFormat::VK_FORMAT_B8G8R8_SRGB) + .value("R8G8B8A8_UNORM", VkFormat::VK_FORMAT_R8G8B8A8_UNORM) + .value("R8G8B8A8_SNORM", VkFormat::VK_FORMAT_R8G8B8A8_SNORM) + .value("R8G8B8A8_USCALED", VkFormat::VK_FORMAT_R8G8B8A8_USCALED) + .value("R8G8B8A8_SSCALED", VkFormat::VK_FORMAT_R8G8B8A8_SSCALED) + .value("R8G8B8A8_UINT", VkFormat::VK_FORMAT_R8G8B8A8_UINT) + .value("R8G8B8A8_SINT", VkFormat::VK_FORMAT_R8G8B8A8_SINT) + .value("R8G8B8A8_SRGB", VkFormat::VK_FORMAT_R8G8B8A8_SRGB) + .value("B8G8R8A8_UNORM", VkFormat::VK_FORMAT_B8G8R8A8_UNORM) + .value("B8G8R8A8_SNORM", VkFormat::VK_FORMAT_B8G8R8A8_SNORM) + .value("B8G8R8A8_USCALED", VkFormat::VK_FORMAT_B8G8R8A8_USCALED) + .value("B8G8R8A8_SSCALED", VkFormat::VK_FORMAT_B8G8R8A8_SSCALED) + .value("B8G8R8A8_UINT", VkFormat::VK_FORMAT_B8G8R8A8_UINT) + .value("B8G8R8A8_SINT", VkFormat::VK_FORMAT_B8G8R8A8_SINT) + .value("B8G8R8A8_SRGB", VkFormat::VK_FORMAT_B8G8R8A8_SRGB) + .value("A8B8G8R8_UNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UNORM_PACK32) + .value("A8B8G8R8_SNORM_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SNORM_PACK32) + .value("A8B8G8R8_USCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_USCALED_PACK32) + .value("A8B8G8R8_SSCALED_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SSCALED_PACK32) + .value("A8B8G8R8_UINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_UINT_PACK32) + .value("A8B8G8R8_SINT_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SINT_PACK32) + .value("A8B8G8R8_SRGB_PACK32", VkFormat::VK_FORMAT_A8B8G8R8_SRGB_PACK32) + .value("A2R10G10B10_UNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UNORM_PACK32) + .value("A2R10G10B10_SNORM_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SNORM_PACK32) + .value("A2R10G10B10_USCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_USCALED_PACK32) + .value("A2R10G10B10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SSCALED_PACK32) + .value("A2R10G10B10_UINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_UINT_PACK32) + .value("A2R10G10B10_SINT_PACK32", VkFormat::VK_FORMAT_A2R10G10B10_SINT_PACK32) + .value("A2B10G10R10_UNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UNORM_PACK32) + .value("A2B10G10R10_SNORM_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SNORM_PACK32) + .value("A2B10G10R10_USCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_USCALED_PACK32) + .value("A2B10G10R10_SSCALED_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SSCALED_PACK32) + .value("A2B10G10R10_UINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_UINT_PACK32) + .value("A2B10G10R10_SINT_PACK32", VkFormat::VK_FORMAT_A2B10G10R10_SINT_PACK32) + .value("R16_UNORM", VkFormat::VK_FORMAT_R16_UNORM) + .value("R16_SNORM", VkFormat::VK_FORMAT_R16_SNORM) + .value("R16_USCALED", VkFormat::VK_FORMAT_R16_USCALED) + .value("R16_SSCALED", VkFormat::VK_FORMAT_R16_SSCALED) + .value("R16_UINT", VkFormat::VK_FORMAT_R16_UINT) + .value("R16_SINT", VkFormat::VK_FORMAT_R16_SINT) + .value("R16_SFLOAT", VkFormat::VK_FORMAT_R16_SFLOAT) + .value("R16G16_UNORM", VkFormat::VK_FORMAT_R16G16_UNORM) + .value("R16G16_SNORM", VkFormat::VK_FORMAT_R16G16_SNORM) + .value("R16G16_USCALED", VkFormat::VK_FORMAT_R16G16_USCALED) + .value("R16G16_SSCALED", VkFormat::VK_FORMAT_R16G16_SSCALED) + .value("R16G16_UINT", VkFormat::VK_FORMAT_R16G16_UINT) + .value("R16G16_SINT", VkFormat::VK_FORMAT_R16G16_SINT) + .value("R16G16_SFLOAT", VkFormat::VK_FORMAT_R16G16_SFLOAT) + .value("R16G16B16_UNORM", VkFormat::VK_FORMAT_R16G16B16_UNORM) + .value("R16G16B16_SNORM", VkFormat::VK_FORMAT_R16G16B16_SNORM) + .value("R16G16B16_USCALED", VkFormat::VK_FORMAT_R16G16B16_USCALED) + .value("R16G16B16_SSCALED", VkFormat::VK_FORMAT_R16G16B16_SSCALED) + .value("R16G16B16_UINT", VkFormat::VK_FORMAT_R16G16B16_UINT) + .value("R16G16B16_SINT", VkFormat::VK_FORMAT_R16G16B16_SINT) + .value("R16G16B16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16_SFLOAT) + .value("R16G16B16A16_UNORM", VkFormat::VK_FORMAT_R16G16B16A16_UNORM) + .value("R16G16B16A16_SNORM", VkFormat::VK_FORMAT_R16G16B16A16_SNORM) + .value("R16G16B16A16_USCALED", VkFormat::VK_FORMAT_R16G16B16A16_USCALED) + .value("R16G16B16A16_SSCALED", VkFormat::VK_FORMAT_R16G16B16A16_SSCALED) + .value("R16G16B16A16_UINT", VkFormat::VK_FORMAT_R16G16B16A16_UINT) + .value("R16G16B16A16_SINT", VkFormat::VK_FORMAT_R16G16B16A16_SINT) + .value("R16G16B16A16_SFLOAT", VkFormat::VK_FORMAT_R16G16B16A16_SFLOAT) + .value("R32_UINT", VkFormat::VK_FORMAT_R32_UINT) + .value("R32_SINT", VkFormat::VK_FORMAT_R32_SINT) + .value("R32_SFLOAT", VkFormat::VK_FORMAT_R32_SFLOAT) + .value("R32G32_UINT", VkFormat::VK_FORMAT_R32G32_UINT) + .value("R32G32_SINT", VkFormat::VK_FORMAT_R32G32_SINT) + .value("R32G32_SFLOAT", VkFormat::VK_FORMAT_R32G32_SFLOAT) + .value("R32G32B32_UINT", VkFormat::VK_FORMAT_R32G32B32_UINT) + .value("R32G32B32_SINT", VkFormat::VK_FORMAT_R32G32B32_SINT) + .value("R32G32B32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32_SFLOAT) + .value("R32G32B32A32_UINT", VkFormat::VK_FORMAT_R32G32B32A32_UINT) + .value("R32G32B32A32_SINT", VkFormat::VK_FORMAT_R32G32B32A32_SINT) + .value("R32G32B32A32_SFLOAT", VkFormat::VK_FORMAT_R32G32B32A32_SFLOAT) + .value("R64_UINT", VkFormat::VK_FORMAT_R64_UINT) + .value("R64_SINT", VkFormat::VK_FORMAT_R64_SINT) + .value("R64_SFLOAT", VkFormat::VK_FORMAT_R64_SFLOAT) + .value("R64G64_UINT", VkFormat::VK_FORMAT_R64G64_UINT) + .value("R64G64_SINT", VkFormat::VK_FORMAT_R64G64_SINT) + .value("R64G64_SFLOAT", VkFormat::VK_FORMAT_R64G64_SFLOAT) + .value("R64G64B64_UINT", VkFormat::VK_FORMAT_R64G64B64_UINT) + .value("R64G64B64_SINT", VkFormat::VK_FORMAT_R64G64B64_SINT) + .value("R64G64B64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64_SFLOAT) + .value("R64G64B64A64_UINT", VkFormat::VK_FORMAT_R64G64B64A64_UINT) + .value("R64G64B64A64_SINT", VkFormat::VK_FORMAT_R64G64B64A64_SINT) + .value("R64G64B64A64_SFLOAT", VkFormat::VK_FORMAT_R64G64B64A64_SFLOAT) + .value("B10G11R11_UFLOAT_PACK32", VkFormat::VK_FORMAT_B10G11R11_UFLOAT_PACK32) + .value("E5B9G9R9_UFLOAT_PACK32", VkFormat::VK_FORMAT_E5B9G9R9_UFLOAT_PACK32) + .value("D16_UNORM", VkFormat::VK_FORMAT_D16_UNORM) + .value("X8_D24_UNORM_PACK32", VkFormat::VK_FORMAT_X8_D24_UNORM_PACK32) + .value("D32_SFLOAT", VkFormat::VK_FORMAT_D32_SFLOAT) + .value("S8_UINT", VkFormat::VK_FORMAT_S8_UINT) + .value("D16_UNORM_S8_UINT", VkFormat::VK_FORMAT_D16_UNORM_S8_UINT) + .value("D24_UNORM_S8_UINT", VkFormat::VK_FORMAT_D24_UNORM_S8_UINT) + .value("D32_SFLOAT_S8_UINT", VkFormat::VK_FORMAT_D32_SFLOAT_S8_UINT) + .value("BC1_RGB_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_UNORM_BLOCK) + .value("BC1_RGB_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGB_SRGB_BLOCK) + .value("BC1_RGBA_UNORM_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_UNORM_BLOCK) + .value("BC1_RGBA_SRGB_BLOCK", VkFormat::VK_FORMAT_BC1_RGBA_SRGB_BLOCK) + .value("BC2_UNORM_BLOCK", VkFormat::VK_FORMAT_BC2_UNORM_BLOCK) + .value("BC2_SRGB_BLOCK", VkFormat::VK_FORMAT_BC2_SRGB_BLOCK) + .value("BC3_UNORM_BLOCK", VkFormat::VK_FORMAT_BC3_UNORM_BLOCK) + .value("BC3_SRGB_BLOCK", VkFormat::VK_FORMAT_BC3_SRGB_BLOCK) + .value("BC4_UNORM_BLOCK", VkFormat::VK_FORMAT_BC4_UNORM_BLOCK) + .value("BC4_SNORM_BLOCK", VkFormat::VK_FORMAT_BC4_SNORM_BLOCK) + .value("BC5_UNORM_BLOCK", VkFormat::VK_FORMAT_BC5_UNORM_BLOCK) + .value("BC5_SNORM_BLOCK", VkFormat::VK_FORMAT_BC5_SNORM_BLOCK) + .value("BC6H_UFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_UFLOAT_BLOCK) + .value("BC6H_SFLOAT_BLOCK", VkFormat::VK_FORMAT_BC6H_SFLOAT_BLOCK) + .value("BC7_UNORM_BLOCK", VkFormat::VK_FORMAT_BC7_UNORM_BLOCK) + .value("BC7_SRGB_BLOCK", VkFormat::VK_FORMAT_BC7_SRGB_BLOCK) + .value("ETC2_R8G8B8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK) + .value("ETC2_R8G8B8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK) + .value("ETC2_R8G8B8A1_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK) + .value("ETC2_R8G8B8A1_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK) + .value("ETC2_R8G8B8A8_UNORM_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK) + .value("ETC2_R8G8B8A8_SRGB_BLOCK", VkFormat::VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK) + .value("EAC_R11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_UNORM_BLOCK) + .value("EAC_R11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11_SNORM_BLOCK) + .value("EAC_R11G11_UNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_UNORM_BLOCK) + .value("EAC_R11G11_SNORM_BLOCK", VkFormat::VK_FORMAT_EAC_R11G11_SNORM_BLOCK) + .value("ASTC_4x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_UNORM_BLOCK) + .value("ASTC_4x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SRGB_BLOCK) + .value("ASTC_5x4_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_UNORM_BLOCK) + .value("ASTC_5x4_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SRGB_BLOCK) + .value("ASTC_5x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_UNORM_BLOCK) + .value("ASTC_5x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SRGB_BLOCK) + .value("ASTC_6x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_UNORM_BLOCK) + .value("ASTC_6x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SRGB_BLOCK) + .value("ASTC_6x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_UNORM_BLOCK) + .value("ASTC_6x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SRGB_BLOCK) + .value("ASTC_8x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_UNORM_BLOCK) + .value("ASTC_8x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SRGB_BLOCK) + .value("ASTC_8x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_UNORM_BLOCK) + .value("ASTC_8x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SRGB_BLOCK) + .value("ASTC_8x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_UNORM_BLOCK) + .value("ASTC_8x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SRGB_BLOCK) + .value("ASTC_10x5_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_UNORM_BLOCK) + .value("ASTC_10x5_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SRGB_BLOCK) + .value("ASTC_10x6_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_UNORM_BLOCK) + .value("ASTC_10x6_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SRGB_BLOCK) + .value("ASTC_10x8_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_UNORM_BLOCK) + .value("ASTC_10x8_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SRGB_BLOCK) + .value("ASTC_10x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_UNORM_BLOCK) + .value("ASTC_10x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SRGB_BLOCK) + .value("ASTC_12x10_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_UNORM_BLOCK) + .value("ASTC_12x10_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SRGB_BLOCK) + .value("ASTC_12x12_UNORM_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_UNORM_BLOCK) + .value("ASTC_12x12_SRGB_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SRGB_BLOCK) + .value("G8B8G8R8_422_UNORM", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM) + .value("B8G8R8G8_422_UNORM", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM) + .value("G8_B8_R8_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM) + .value("G8_B8R8_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM) + .value("G8_B8_R8_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM) + .value("G8_B8R8_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM) + .value("G8_B8_R8_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM) + .value("R10X6_UNORM_PACK16", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16) + .value("R10X6G10X6_UNORM_2PACK16", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16) + .value("R12X4_UNORM_PACK16", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16) + .value("R12X4G12X4_UNORM_2PACK16", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16) + .value("G16B16G16R16_422_UNORM", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM) + .value("B16G16R16G16_422_UNORM", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM) + .value("G16_B16_R16_3PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM) + .value("G16_B16R16_2PLANE_420_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM) + .value("G16_B16_R16_3PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM) + .value("G16_B16R16_2PLANE_422_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM) + .value("G16_B16_R16_3PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM) + .value("G8_B8R8_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16) + .value("G16_B16R16_2PLANE_444_UNORM", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM) + .value("A4R4G4B4_UNORM_PACK16", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16) + .value("A4B4G4R4_UNORM_PACK16", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16) + .value("ASTC_4x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK) + .value("ASTC_5x4_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK) + .value("ASTC_5x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK) + .value("ASTC_6x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK) + .value("ASTC_6x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK) + .value("ASTC_8x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK) + .value("ASTC_8x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK) + .value("ASTC_8x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK) + .value("ASTC_10x5_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK) + .value("ASTC_10x6_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK) + .value("ASTC_10x8_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK) + .value("ASTC_10x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK) + .value("ASTC_12x10_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK) + .value("ASTC_12x12_SFLOAT_BLOCK", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK) + .value("A1B5G5R5_UNORM_PACK16", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16) + .value("A8_UNORM", VkFormat::VK_FORMAT_A8_UNORM) + .value("PVRTC1_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_2BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG) + .value("PVRTC2_4BPP_UNORM_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG) + .value("PVRTC1_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC1_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_2BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG) + .value("PVRTC2_4BPP_SRGB_BLOCK_IMG", VkFormat::VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG) + .value("R16G16_SFIXED5_NV", VkFormat::VK_FORMAT_R16G16_SFIXED5_NV) + .value("ASTC_4x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x4_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT) + .value("ASTC_5x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT) + .value("ASTC_6x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT) + .value("ASTC_8x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT) + .value("ASTC_8x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x5_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT) + .value("ASTC_10x6_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT) + .value("ASTC_10x8_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT) + .value("ASTC_10x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x10_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT) + .value("ASTC_12x12_SFLOAT_BLOCK_EXT", VkFormat::VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT) + .value("G8B8G8R8_422_UNORM_KHR", VkFormat::VK_FORMAT_G8B8G8R8_422_UNORM_KHR) + .value("B8G8R8G8_422_UNORM_KHR", VkFormat::VK_FORMAT_B8G8R8G8_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR) + .value("G8_B8R8_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR) + .value("G8_B8_R8_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR) + .value("G8_B8R8_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR) + .value("G8_B8_R8_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR) + .value("R10X6_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R10X6_UNORM_PACK16_KHR) + .value("R10X6G10X6_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR) + .value("R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR) + .value("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR) + .value("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR) + .value("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR) + .value("R12X4_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_R12X4_UNORM_PACK16_KHR) + .value("R12X4G12X4_UNORM_2PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR) + .value("R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR) + .value("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR) + .value("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR", VkFormat::VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR) + .value("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR", VkFormat::VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR) + .value("G16B16G16R16_422_UNORM_KHR", VkFormat::VK_FORMAT_G16B16G16R16_422_UNORM_KHR) + .value("B16G16R16G16_422_UNORM_KHR", VkFormat::VK_FORMAT_B16G16R16G16_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR) + .value("G16_B16R16_2PLANE_420_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR) + .value("G16_B16_R16_3PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR) + .value("G16_B16R16_2PLANE_422_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR) + .value("G16_B16_R16_3PLANE_444_UNORM_KHR", VkFormat::VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR) + .value("G8_B8R8_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT) + .value("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT) + .value("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", VkFormat::VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT) + .value("G16_B16R16_2PLANE_444_UNORM_EXT", VkFormat::VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT) + .value("A4R4G4B4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT) + .value("A4B4G4R4_UNORM_PACK16_EXT", VkFormat::VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT) + .value("R16G16_S10_5_NV", VkFormat::VK_FORMAT_R16G16_S10_5_NV) + .value("A1B5G5R5_UNORM_PACK16_KHR", VkFormat::VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR) + .value("A8_UNORM_KHR", VkFormat::VK_FORMAT_A8_UNORM_KHR) + .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); py::implicitly_convertible(); py::enum_(m, "VkImageLayout", py::arithmetic()) + .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) + .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) + .value("COLOR_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL) + .value("SHADER_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + .value("TRANSFER_SRC_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) + .value("TRANSFER_DST_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) + .value("PREINITIALIZED", VkImageLayout::VK_IMAGE_LAYOUT_PREINITIALIZED) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL) + .value("DEPTH_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL) + .value("DEPTH_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL) + .value("STENCIL_ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL) + .value("STENCIL_READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL) + .value("READ_ONLY_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL) + .value("ATTACHMENT_OPTIMAL", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL) + .value("RENDERING_LOCAL_READ", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ) + .value("PRESENT_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) + .value("VIDEO_DECODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR) + .value("VIDEO_DECODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR) + .value("VIDEO_DECODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR) + .value("SHARED_PRESENT_KHR", VkImageLayout::VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR) + .value("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT) + .value("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR) + .value("VIDEO_ENCODE_DST_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR) + .value("VIDEO_ENCODE_SRC_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR) + .value("VIDEO_ENCODE_DPB_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR) + .value("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT) + .value("VIDEO_ENCODE_QUANTIZATION_MAP_KHR", VkImageLayout::VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR) + .value("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("SHADING_RATE_OPTIMAL_NV", VkImageLayout::VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV) + .value("RENDERING_LOCAL_READ_KHR", VkImageLayout::VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR) + .value("DEPTH_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR) + .value("DEPTH_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR) + .value("STENCIL_ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR) + .value("STENCIL_READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR) + .value("READ_ONLY_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR) + .value("ATTACHMENT_OPTIMAL_KHR", VkImageLayout::VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR) + .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); py::implicitly_convertible(); From f9a663660cc0c8a652f8f2ee1d133677f3c80108 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 22:34:04 +0000 Subject: [PATCH 134/146] No need to have py::arithmetic() or py::implicitly_convertible for VkFormat and VkImageLayout Signed-off-by: Hin-Tak Leung --- src/skia/GrContext_vk.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/skia/GrContext_vk.cpp b/src/skia/GrContext_vk.cpp index d3d6fa1e..da0b25cc 100644 --- a/src/skia/GrContext_vk.cpp +++ b/src/skia/GrContext_vk.cpp @@ -4,7 +4,7 @@ void initGrContext_vk(py::module &m) { -py::enum_(m, "VkFormat", py::arithmetic()) +py::enum_(m, "VkFormat") .value("UNDEFINED", VkFormat::VK_FORMAT_UNDEFINED) .value("R4G4_UNORM_PACK8", VkFormat::VK_FORMAT_R4G4_UNORM_PACK8) .value("R4G4B4A4_UNORM_PACK16", VkFormat::VK_FORMAT_R4G4B4A4_UNORM_PACK16) @@ -315,8 +315,6 @@ py::enum_(m, "VkFormat", py::arithmetic()) .value("MAX_ENUM", VkFormat::VK_FORMAT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::enum_(m, "VkImageLayout", py::arithmetic()) .value("UNDEFINED", VkImageLayout::VK_IMAGE_LAYOUT_UNDEFINED) .value("GENERAL", VkImageLayout::VK_IMAGE_LAYOUT_GENERAL) @@ -361,8 +359,6 @@ py::enum_(m, "VkImageLayout", py::arithmetic()) .value("MAX_ENUM", VkImageLayout::VK_IMAGE_LAYOUT_MAX_ENUM) .export_values(); -py::implicitly_convertible(); - py::class_(m, "GrVkAlloc") .def(py::init<>()) // TODO: Implement me! From 41cd6c3abd246fc2fddd5a2218e4925a08013a11 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Thu, 26 Feb 2026 23:25:55 +0000 Subject: [PATCH 135/146] Adjusting Vulkan tests to use symbolic enums Signed-off-by: Hin-Tak Leung --- tests/test_grcontext.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_grcontext.py b/tests/test_grcontext.py index 8784a6b9..88215a4d 100644 --- a/tests/test_grcontext.py +++ b/tests/test_grcontext.py @@ -62,7 +62,7 @@ def test_GrBackendFormat_MakeVk_1(): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance( - skia.GrBackendFormat.MakeVk(0), (type(None), skia.GrBackendFormat)) + skia.GrBackendFormat.MakeVk(skia.VkFormat.UNDEFINED), (type(None), skia.GrBackendFormat)) def test_GrBackendFormat_MakeVk_2(): @@ -98,7 +98,7 @@ def test_GrBackendFormat_channelMask(backend_format): def test_GrBackendFormat_asVkFormat(backend_format): - fmt = 1 + fmt = skia.VkFormat.UNDEFINED if sys.platform.startswith("darwin"): pytest.skip("Known not to work") assert isinstance(backend_format.asVkFormat(fmt), bool) @@ -266,7 +266,7 @@ def test_GrBackendRenderTarget_getVkImageInfo(backend_render_target): def test_GrBackendRenderTarget_setVkImageLayout(backend_render_target): if sys.platform.startswith("darwin"): pytest.skip("Known not to work") - backend_render_target.setVkImageLayout(0) + backend_render_target.setVkImageLayout(skia.VkImageLayout.UNDEFINED) def test_GrBackendRenderTarget_getBackendFormat(backend_render_target): From 146d9fc90147b110a5b422390917e88de58aebee Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Tue, 17 Feb 2026 14:36:28 +0000 Subject: [PATCH 136/146] Fix build error against pybind11 3.0.2. src/skia/Matrix.cpp:1562:13: error: return type 'Tuple' must match previous return type 'Tuple' when lambda expression has unspecified explicit return type 1562 | return py::make_tuple(-1, -1); | ^ 1 error generated. Signed-off-by: Hin-Tak Leung --- src/skia/Matrix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index 8d8203ef..5ee18616 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1555,7 +1555,7 @@ matrix :return: maximum scale factor )docstring") .def("getMinMaxScales", - [] (const SkMatrix& matrix) { + [] (const SkMatrix& matrix) -> py::object { std::vector factors(2); if (matrix.getMinMaxScales(&factors[0])) return py::make_tuple(factors[0], factors[1]); From 50725178efbe4935d632896f74c382c7fa2c9572 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 02:53:20 +0000 Subject: [PATCH 137/146] Roll skia forwards on m144 (canvaskit/0.40.0-2647-gee20d565ac to canvaskit/0.40.0-2648-g2708a1b154) --- skia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skia b/skia index ee20d565..2708a1b1 160000 --- a/skia +++ b/skia @@ -1 +1 @@ -Subproject commit ee20d565acb08dece4a32e3f209cdd41119015ca +Subproject commit 2708a1b1540e59b8e3407405b0c991a5c7b69523 From 7edf62149f4cf2f36fe674c33e474add075a881d Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 00:27:40 +0000 Subject: [PATCH 138/146] m143: adding back a test without skia.ApplyPerspectiveClip.kYes --- tests/test_path.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_path.py b/tests/test_path.py index 6c2215d1..abe0399d 100644 --- a/tests/test_path.py +++ b/tests/test_path.py @@ -499,6 +499,7 @@ def test_Path_offset(path, args): skia.Matrix(), skia.Path(), ), + (skia.Matrix(), None), # (skia.Matrix(), None, skia.ApplyPerspectiveClip.kYes), ] ) From f76115dfe9d7e0c912adbc804ba205546df1f965 Mon Sep 17 00:00:00 2001 From: MINWOO LEE Date: Mon, 6 Oct 2025 11:35:27 +0900 Subject: [PATCH 139/146] Docs: Add missing 'import sys' to Canvas Creation tutorial The example code in the Canvas Creation section of the tutorial requires the `sys` module to run correctly, but the `import sys` statement was missing. This change adds the import sys to resolve the error. --- docs/tutorial/canvas.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/tutorial/canvas.rst b/docs/tutorial/canvas.rst index ff658761..9f931544 100644 --- a/docs/tutorial/canvas.rst +++ b/docs/tutorial/canvas.rst @@ -79,6 +79,7 @@ The following example uses glfw package to create an OpenGL context. Install .. code-block:: python + import sys import skia import glfw import contextlib @@ -134,7 +135,7 @@ Here's a complete example: .. code-block:: python - import contextlib, glfw, skia + import sys, contextlib, glfw, skia from OpenGL import GL WIDTH, HEIGHT = 640, 480 From 7cedb47275f12ade28fd7c1cfea1e7eeca44a451 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sat, 28 Feb 2026 21:22:26 +0000 Subject: [PATCH 140/146] Not needed any more. Revert "Make artefacts available even when pytest fails." This reverts commit a057e3c6d32cfe535eaea918569488e75c9970da. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e3628494..636b3809 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl @@ -104,7 +103,6 @@ jobs: CIBW_TEST_SKIP: "*-macosx_arm64" - uses: actions/upload-artifact@v4 - if: always() with: name: wheel-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cp }} path: ./wheelhouse/*.whl From 50fbd05b16b35f8c3b1db8da014b516b08f982f1 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 01:41:02 +0000 Subject: [PATCH 141/146] Adding README.m139 to m144. --- relnotes/README.m139.md | 38 ++++++++++++++++++++++++++++++++++++++ relnotes/README.m140.md | 4 ++++ relnotes/README.m141.md | 6 ++++++ relnotes/README.m142.md | 3 +++ relnotes/README.m143.md | 6 ++++++ relnotes/README.m144.md | 17 +++++++++++++++++ 6 files changed, 74 insertions(+) create mode 100644 relnotes/README.m139.md create mode 100644 relnotes/README.m140.md create mode 100644 relnotes/README.m141.md create mode 100644 relnotes/README.m142.md create mode 100644 relnotes/README.m143.md create mode 100644 relnotes/README.m144.md diff --git a/relnotes/README.m139.md b/relnotes/README.m139.md new file mode 100644 index 00000000..1c4e0634 --- /dev/null +++ b/relnotes/README.m139.md @@ -0,0 +1,38 @@ +Since m138: + +- Vulkan APIs which used to take integer values defined as + `VK_FORMAT_*` and `VK_IMAGE_LAYOUT_*` in vulkan c/c++ headers, + now requires `skia.VkFormat.*` `skia.VkImageLayout.*` mnemonics. + E.g. + + # VK_FORMAT_R4G4_UNORM_PACK8 = 1 in `vulkan_core.h` + + skia.GrBackendFormat.MakeVk(1) + -> skia.GrBackendFormat.MakeVk(skia.VkFormat.R4G4_UNORM_PACK8) + + This is a general improvement (though not-backward compatible), + and a workaround for a bug in pybind 3.x. Fixes runtime exit + segfault when built against pybind 3.x. + + Reference: + https://github.com/pybind/pybind11/issues/5991 + [BUG]: segfault at exit since upgrading to 3.0.x, probably due to + "Make wrapped C++ functions pickleable" (https://github.com/pybind/pybind11/pull/5580) + +- A far amount of under-the-hood code updates, in response + to upstream's general move to use `SkSpan`. Not user-visible. + Reference in m140's `RELEASE_NOTES.md`: + +``` + ...now take SkSpan instead of ptr/count. This + is part of the larger change where public APIs are being converted to take SkSpan where + applicable. + + No real functionality change, but this new signature allows some of the methods to perform + range-checking, whereas before they could not. +``` + +CI: + +- updated to use `macos-14`, `macos-15-intel`, as `macos-13` is no longer + supported in github. diff --git a/relnotes/README.m140.md b/relnotes/README.m140.md new file mode 100644 index 00000000..5fa0d494 --- /dev/null +++ b/relnotes/README.m140.md @@ -0,0 +1,4 @@ +Since m139: + +- Under-the-hood updates to `SkFontMgr_New_FontConfig`, `SkImage::*`, + `SkMatrix.*`, `SkStrokeRec::*`. Not user-visible. diff --git a/relnotes/README.m141.md b/relnotes/README.m141.md new file mode 100644 index 00000000..c2095332 --- /dev/null +++ b/relnotes/README.m141.md @@ -0,0 +1,6 @@ +Since m140: + +- No user-visible changes. + +- Small addition to CI to make wheels built differently on + fedora available for download (as a debugging aid). diff --git a/relnotes/README.m142.md b/relnotes/README.m142.md new file mode 100644 index 00000000..4396bfc2 --- /dev/null +++ b/relnotes/README.m142.md @@ -0,0 +1,3 @@ +Since m141: + +- CI: Adding Python 3.14 to the build matrix. diff --git a/relnotes/README.m143.md b/relnotes/README.m143.md new file mode 100644 index 00000000..5081226b --- /dev/null +++ b/relnotes/README.m143.md @@ -0,0 +1,6 @@ +Since m142: + +- `skia.ApplyPerspectiveClip` removed upstream. `skia.Matrix.mapRect()` + and `skia.Path.transform()` take one fewer argument. + +- `skia.PathBuilder.incReserve` takes one more argument, `extraConicCount`. diff --git a/relnotes/README.m144.md b/relnotes/README.m144.md new file mode 100644 index 00000000..efd367fc --- /dev/null +++ b/relnotes/README.m144.md @@ -0,0 +1,17 @@ +Since m138: + +- Vulkan APIs now take `skia.VkFormat.*` `skia.VkImageLayout.*` + mnemonics, instead of integer values in vulkan C headers. + (workaround for pybind11 upstream bug 5991) + +- `skia.ApplyPerspectiveClip` removed upstream. Associated APIs take + one fewer argument. + +- `skia.PathBuilder.incReserve` takes one more argument. + +- CI: we now build for macos-14 (up from macos-13), and also python 3.14 + + +Since m143: + +- Small addition to CI/debugging. No user-visible changes. From b40497983ccc41459109cf539c66e91d08312a3a Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 01:44:45 +0000 Subject: [PATCH 142/146] Adding Python 3.14 and README.m139 to m144 to top-level README --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dfa8a3be..7f5d8516 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ Binary package is available on PyPI: pip install skia-python ``` -Supported platforms: Python 3.8-3.13 (CPython) on +Supported platforms: Python 3.8-3.14 (CPython) on - Linux x86_64, aarch64 - macOS x86_64, arm64 -- Windows x86_64, arm64 ; arm64 for the windows 11 and Python 3.11-3.13 combination only. +- Windows x86_64, arm64 ; arm64 for the windows 11 and Python 3.11-3.14 combination only. **IMPORTANT:** Starting v87.9rc1 / v138.0rc1, `libEGL.so` (from mesa-libEGL, libglvnd, or your graphic card's vendor e.g. NVidia) is required to be present on Linux hosts. This is associated @@ -74,7 +74,9 @@ https://kyamagu.github.io/skia-python [README.m129](relnotes/README.m129.md), [README.m130](relnotes/README.m130.md), [README.m131](relnotes/README.m131.md), [README.m132](relnotes/README.m132.md), [README.m133](relnotes/README.m133.md), [README.m134](relnotes/README.m134.md), [README.m135](relnotes/README.m135.md), [README.m136](relnotes/README.m136.md), [README.m137](relnotes/README.m137.md), - [README.m138](relnotes/README.m138.md). + [README.m138](relnotes/README.m138.md), [README.m139](relnotes/README.m139.md), [README.m140](relnotes/README.m140.md), + [README.m141](relnotes/README.m141.md), [README.m142](relnotes/README.m142.md), [README.m143](relnotes/README.m143.md), + [README.m144](relnotes/README.m144.md). ## Contributing From fa1b45ea86b4e0a97a22e49a337a76045ae65ad3 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 09:18:17 +0000 Subject: [PATCH 143/146] Removing obsoleted older skia-m1*-colrv1-freetype.diff and skia-m1*-minimize-download.patch --- patch/skia-m116-colrv1-freetype.diff | 197 -------------------- patch/skia-m116-minimize-download.patch | 66 ------- patch/skia-m117-minimize-download.patch | 68 ------- patch/skia-m118-minimize-download.patch | 68 ------- patch/skia-m119-minimize-download.patch | 69 ------- patch/skia-m120-minimize-download.patch | 69 ------- patch/skia-m121-colrv1-freetype.diff | 236 ------------------------ patch/skia-m121-minimize-download.patch | 70 ------- patch/skia-m122-colrv1-freetype.diff | 119 ------------ patch/skia-m122-minimize-download.patch | 70 ------- patch/skia-m123-colrv1-freetype.diff | 109 ----------- patch/skia-m123-minimize-download.patch | 70 ------- patch/skia-m124-minimize-download.patch | 69 ------- patch/skia-m125-minimize-download.patch | 69 ------- patch/skia-m126-minimize-download.patch | 69 ------- patch/skia-m127-minimize-download.patch | 69 ------- patch/skia-m128-minimize-download.patch | 69 ------- patch/skia-m129-minimize-download.patch | 69 ------- patch/skia-m130-minimize-download.patch | 69 ------- patch/skia-m131-minimize-download.patch | 70 ------- patch/skia-m132-minimize-download.patch | 70 ------- patch/skia-m133-minimize-download.patch | 70 ------- patch/skia-m134-minimize-download.patch | 70 ------- patch/skia-m135-minimize-download.patch | 70 ------- patch/skia-m136-minimize-download.patch | 70 ------- patch/skia-m137-minimize-download.patch | 70 ------- patch/skia-m138-minimize-download.patch | 70 ------- patch/skia-m139-minimize-download.patch | 70 ------- patch/skia-m140-minimize-download.patch | 70 ------- patch/skia-m141-minimize-download.patch | 70 ------- patch/skia-m142-minimize-download.patch | 70 ------- patch/skia-m143-minimize-download.patch | 70 ------- 32 files changed, 2604 deletions(-) delete mode 100644 patch/skia-m116-colrv1-freetype.diff delete mode 100644 patch/skia-m116-minimize-download.patch delete mode 100644 patch/skia-m117-minimize-download.patch delete mode 100644 patch/skia-m118-minimize-download.patch delete mode 100644 patch/skia-m119-minimize-download.patch delete mode 100644 patch/skia-m120-minimize-download.patch delete mode 100644 patch/skia-m121-colrv1-freetype.diff delete mode 100644 patch/skia-m121-minimize-download.patch delete mode 100644 patch/skia-m122-colrv1-freetype.diff delete mode 100644 patch/skia-m122-minimize-download.patch delete mode 100644 patch/skia-m123-colrv1-freetype.diff delete mode 100644 patch/skia-m123-minimize-download.patch delete mode 100644 patch/skia-m124-minimize-download.patch delete mode 100644 patch/skia-m125-minimize-download.patch delete mode 100644 patch/skia-m126-minimize-download.patch delete mode 100644 patch/skia-m127-minimize-download.patch delete mode 100644 patch/skia-m128-minimize-download.patch delete mode 100644 patch/skia-m129-minimize-download.patch delete mode 100644 patch/skia-m130-minimize-download.patch delete mode 100644 patch/skia-m131-minimize-download.patch delete mode 100644 patch/skia-m132-minimize-download.patch delete mode 100644 patch/skia-m133-minimize-download.patch delete mode 100644 patch/skia-m134-minimize-download.patch delete mode 100644 patch/skia-m135-minimize-download.patch delete mode 100644 patch/skia-m136-minimize-download.patch delete mode 100644 patch/skia-m137-minimize-download.patch delete mode 100644 patch/skia-m138-minimize-download.patch delete mode 100644 patch/skia-m139-minimize-download.patch delete mode 100644 patch/skia-m140-minimize-download.patch delete mode 100644 patch/skia-m141-minimize-download.patch delete mode 100644 patch/skia-m142-minimize-download.patch delete mode 100644 patch/skia-m143-minimize-download.patch diff --git a/patch/skia-m116-colrv1-freetype.diff b/patch/skia-m116-colrv1-freetype.diff deleted file mode 100644 index b4c2de22..00000000 --- a/patch/skia-m116-colrv1-freetype.diff +++ /dev/null @@ -1,197 +0,0 @@ -diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp -index eae8c84..8388891 100644 ---- a/src/core/SkTypeface.cpp -+++ b/src/core/SkTypeface.cpp -@@ -24,6 +24,8 @@ - #include "src/sfnt/SkOTTable_OS_2.h" - - #ifdef SK_TYPEFACE_FACTORY_FREETYPE -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #endif - -diff --git a/src/ports/SkFontConfigTypeface.h b/src/ports/SkFontConfigTypeface.h -index 7955049..8551cf7 100644 ---- a/src/ports/SkFontConfigTypeface.h -+++ b/src/ports/SkFontConfigTypeface.h -@@ -12,6 +12,8 @@ - #include "include/core/SkStream.h" - #include "include/ports/SkFontConfigInterface.h" - #include "src/core/SkFontDescriptor.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - - class SkFontDescriptor; -diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp -index f46bf19..def997a 100644 ---- a/src/ports/SkFontHost_FreeType.cpp -+++ b/src/ports/SkFontHost_FreeType.cpp -@@ -31,7 +31,6 @@ - #include "src/core/SkMask.h" - #include "src/core/SkMaskGamma.h" - #include "src/core/SkScalerContext.h" --#include "src/ports/SkFontHost_FreeType_common.h" - #include "src/sfnt/SkOTUtils.h" - #include "src/sfnt/SkSFNTHeader.h" - #include "src/sfnt/SkTTCFHeader.h" -@@ -49,6 +48,7 @@ - #ifdef FT_COLOR_H // 2.10.0 - # include - #endif -+#include "src/ports/SkFontHost_FreeType_common.h" - #include - #include - #include -diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp -index 355ee02..22cd6af 100644 ---- a/src/ports/SkFontHost_FreeType_common.cpp -+++ b/src/ports/SkFontHost_FreeType_common.cpp -@@ -6,7 +6,6 @@ - * found in the LICENSE file. - */ - --#include "src/ports/SkFontHost_FreeType_common.h" - - #include "include/core/SkBitmap.h" - #include "include/core/SkCanvas.h" -@@ -32,6 +31,7 @@ - #ifdef FT_COLOR_H - # include - #endif -+#include "src/ports/SkFontHost_FreeType_common.h" - #include - #include - #include -@@ -1558,6 +1558,41 @@ bool SkScalerContext_FreeType_Base::drawCOLRv1Glyph(FT_Face face, - SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); - return haveLayers; - } -+/* -+ * This content is mostly just -+ * SkTypeface_FreeType::FaceRec::setupPalette() -+ + + SkScalerContext_FreeType_Base::drawCOLRv1Glyph() -+ +*/ -+bool SkScalerContext_FreeType_Base::skia_colrv1_start_glyph(SkCanvas* canvas, -+ FT_Face face, -+ uint16_t glyphId, -+ FT_UShort palette_index, -+ FT_Color_Root_Transform rootTransform -+ ) { -+ uint32_t fForegroundColor{SK_ColorBLACK}; -+ FT_Palette_Data paletteData; -+ FT_Palette_Data_Get(face, &paletteData); -+ -+ FT_Color* ftPalette = nullptr; -+ FT_Palette_Select(face, palette_index, &ftPalette); -+ std::unique_ptr ptr_palette(new SkColor[paletteData.num_palette_entries]); -+ for (int i = 0; i < paletteData.num_palette_entries; ++i) { -+ ptr_palette[i] = SkColorSetARGB(ftPalette[i].alpha, -+ ftPalette[i].red, -+ ftPalette[i].green, -+ ftPalette[i].blue); -+ } -+ SkSpan palette(ptr_palette.get(), paletteData.num_palette_entries); -+ -+ VisitedSet activePaints; -+ bool haveLayers = colrv1_start_glyph(canvas, palette, -+ fForegroundColor, // FT_Palette_Get_Foreground_Color? -+ face, glyphId, -+ FT_COLOR_INCLUDE_ROOT_TRANSFORM, -+ &activePaints); -+ SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); -+ return haveLayers; -+} - #endif // TT_SUPPORT_COLRV1 - - #ifdef FT_COLOR_H -diff --git a/src/ports/SkFontHost_FreeType_common.h b/src/ports/SkFontHost_FreeType_common.h -index 1d3a8f8..820106a 100644 ---- a/src/ports/SkFontHost_FreeType_common.h -+++ b/src/ports/SkFontHost_FreeType_common.h -@@ -29,6 +29,7 @@ typedef struct FT_FaceRec_* FT_Face; - typedef struct FT_StreamRec_* FT_Stream; - typedef signed long FT_Pos; - typedef struct FT_BBox_ FT_BBox; -+typedef unsigned short FT_UShort; /* freetype/fttypes.h */ - - - #ifdef SK_DEBUG -@@ -41,7 +42,15 @@ const char* SkTraceFtrGetError(int); - #endif - - --class SkScalerContext_FreeType_Base : public SkScalerContext { -+class SK_SPI SkScalerContext_FreeType_Base : public SkScalerContext { -+public: -+ static bool computeColrV1GlyphBoundingBox(FT_Face, SkGlyphID, SkRect* bounds); -+ static bool skia_colrv1_start_glyph(SkCanvas* canvas, -+ FT_Face face, -+ uint16_t glyphId, -+ FT_UShort palette_index, -+ FT_Color_Root_Transform rootTransform -+ ); - protected: - // See http://freetype.sourceforge.net/freetype2/docs/reference/ft2-bitmap_handling.html#FT_Bitmap_Embolden - // This value was chosen by eyeballing the result in Firefox and trying to match it. -@@ -68,7 +77,6 @@ protected: - * configure size, matrix and load glyphs as needed after using this function to restore the - * state of FT_Face. - */ -- static bool computeColrV1GlyphBoundingBox(FT_Face, SkGlyphID, SkRect* bounds); - - struct ScalerContextBits { - static const constexpr uint32_t COLRv0 = 1; -diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp -index 25cc9f9..d9af46b 100644 ---- a/src/ports/SkFontMgr_android.cpp -+++ b/src/ports/SkFontMgr_android.cpp -@@ -23,6 +23,8 @@ - #include "src/core/SkFontDescriptor.h" - #include "src/core/SkOSFile.h" - #include "src/core/SkTypefaceCache.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #include "src/ports/SkFontMgr_android_parser.h" - -diff --git a/src/ports/SkFontMgr_custom.cpp b/src/ports/SkFontMgr_custom.cpp -index cfa39ef..9d61da9 100644 ---- a/src/ports/SkFontMgr_custom.cpp -+++ b/src/ports/SkFontMgr_custom.cpp -@@ -16,6 +16,8 @@ - #include "include/private/base/SkTArray.h" - #include "include/private/base/SkTemplates.h" - #include "src/core/SkFontDescriptor.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #include "src/ports/SkFontMgr_custom.h" - -diff --git a/src/ports/SkFontMgr_custom.h b/src/ports/SkFontMgr_custom.h -index 1e78f0b..8a22c02 100644 ---- a/src/ports/SkFontMgr_custom.h -+++ b/src/ports/SkFontMgr_custom.h -@@ -14,6 +14,8 @@ - #include "include/core/SkString.h" - #include "include/core/SkTypes.h" - #include "include/private/base/SkTArray.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - - class SkData; -diff --git a/src/ports/SkFontMgr_fontconfig.cpp b/src/ports/SkFontMgr_fontconfig.cpp -index 8022ac2..bee83e8 100644 ---- a/src/ports/SkFontMgr_fontconfig.cpp -+++ b/src/ports/SkFontMgr_fontconfig.cpp -@@ -22,6 +22,8 @@ - #include "src/core/SkFontDescriptor.h" - #include "src/core/SkOSFile.h" - #include "src/core/SkTypefaceCache.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - - #include diff --git a/patch/skia-m116-minimize-download.patch b/patch/skia-m116-minimize-download.patch deleted file mode 100644 index 8e1061e7..00000000 --- a/patch/skia-m116-minimize-download.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff --git a/DEPS b/DEPS -index 2742e00ec6..6bd6dabb01 100644 ---- a/DEPS -+++ b/DEPS -@@ -19,49 +19,14 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@84379a5294073b0f702fa0bbe909c93805cc870a", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@0d5e76a2427f1c629a0d709ee0833da43bf79e84", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@ee69aa00ee8536f61db6a451f3858745cf587de6", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0944e71f4b2cb9a871bcbe353f95e889b64a611a", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@a0bca08de07c7d7651047bedc0b653cfaaa4f2ae", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@4a48a752e6a8bef6f222622f2b4926d5eb3bdeb3", -- "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@d857bd535b6c7e877f262a9b61ed21ee11b35dab", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@09a266236147497bd8149240062c31c16fbc81e3", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://github.com/AOMediaCodec/libavif.git@f49462dc93784bf34148715eee36ab6697ca0b35", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@0fb779c1e169fe6c229cd1fa9cc6ea6feeb441da", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@fd7b5d48464475408d32d2611bdb6947d4246b97", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@ae667fe96db9b7f76edea242015d61f293c7210e", -- "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@7de5cc00de50e71a3aab22dea52fbb7ff4efceb6", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. -- "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@90577eb35eea01011e237747e92ee1fbe199d4c3", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@2d3a152081ca6e6bea7093940d0f81088fe4d01c", -- "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@6e09e44cd88a5297433411b2ee52f4cf9f50fa90", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@a63ac9f73d29cd27cdb6e3388d98d1d934e512bb", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@ef2630ad9c647b90863cb0915701d54725733968", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@c1a8560c5cf5e7bd6dbc71fe69b1a317411c36b8", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@ca8bb4ee3cc9afdeca4b49c5ef758bad7cce2c72", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@a0041ac0310b3156b963e2f2bea09245f25ec073", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@c876c8f87101c5a75f6014b0f832499afeb65b73", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 85badfdf0f..6537cd45f0 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.15' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m117-minimize-download.patch b/patch/skia-m117-minimize-download.patch deleted file mode 100644 index 61433747..00000000 --- a/patch/skia-m117-minimize-download.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/DEPS b/DEPS -index 7e743774c3..d32fab606f 100644 ---- a/DEPS -+++ b/DEPS -@@ -19,51 +19,15 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@f7d7be8d2ff0bbee438b6030419a0b13082de198", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@beaf20f90f1bf21d235c99d5b49b8bb507b722b2", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@ee69aa00ee8536f61db6a451f3858745cf587de6", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0944e71f4b2cb9a871bcbe353f95e889b64a611a", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@a0bca08de07c7d7651047bedc0b653cfaaa4f2ae", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@4a48a752e6a8bef6f222622f2b4926d5eb3bdeb3", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@5769f13a6b9fafa3840726f06dde07e755501a16", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@f94508edd60e26a015586c37c29104d6bdc26462", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@f49462dc93784bf34148715eee36ab6697ca0b35", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@0fb779c1e169fe6c229cd1fa9cc6ea6feeb441da", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@fd7bb21c0cb56e8a82e9bfa376164b842f433f3b", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@729e92f8ae07d7b695bdcf346318dec4d11d899e", -- "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. -- "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@c46d48f777b73fa492cdc6424e54e4004bd9ee01", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@bccaa94db814af33d8ef05c153e7c34d8bd4d685", -- "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@124a9665e464ef98b8b718d572d5f329311061eb", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@4a9881fe9b32086d4ceac89a498b0dd34084b574", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@450ead13e1064584da027d91192bd7bfb724640f", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@1d8188a974ccd08caffb5bd7fec58751e0c7d786", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@c876c8f87101c5a75f6014b0f832499afeb65b73", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 85badfdf0f..6537cd45f0 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.15' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m118-minimize-download.patch b/patch/skia-m118-minimize-download.patch deleted file mode 100644 index 82dc7480..00000000 --- a/patch/skia-m118-minimize-download.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/DEPS b/DEPS -index 29392dd3a6..f5c409cc80 100644 ---- a/DEPS -+++ b/DEPS -@@ -19,51 +19,15 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@e691a4edb19a9a3deef0108966697e786e40dc9d", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@b9afa50913de862e388195589917e7fbf30d2810", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@515dd10de9bf63040045902a4a310d2ba25213a0", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@006709ba3ed87660a17bd4548c45663628f5ed85", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@2d9fce53d4ce89f36075168282fcdd7289e082f9", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@4cfc6d8e173e800df086d7be078da2e8c5cfca19", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@f49462dc93784bf34148715eee36ab6697ca0b35", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@0fb779c1e169fe6c229cd1fa9cc6ea6feeb441da", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@fd7bb21c0cb56e8a82e9bfa376164b842f433f3b", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@32f9332d1d7aacbdba7c1aa5df894bb1890bb2cc", -- "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. -- "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f2f4bb6f20eca8292dde8aeb54448a0ed92ba3af", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204", -- "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@d790ced752b5bfc06b6988baadef6eb2d16bdf96", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@3cc7e1c4c318aa4c4a7a8972b6066ab2d9d217cc", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@443539891c4c1eb3ca4ed891d251cbf4097c9a9c", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@2634c969d7dc0e983f005f7f2e665cce8449efe6", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@389110e4600669d82bca042859fddf898387c0d2", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@c876c8f87101c5a75f6014b0f832499afeb65b73", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9fa3c..7167d8d8ec 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m119-minimize-download.patch b/patch/skia-m119-minimize-download.patch deleted file mode 100644 index b7bb812d..00000000 --- a/patch/skia-m119-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index cb5ae85..aeeea58 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,52 +23,15 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@1cab871c220744402b887e73ff86aaf8f7f97fa0", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@a42cebae4e42103c82ca58e5abdc2ba9fcffae84", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@515dd10de9bf63040045902a4a310d2ba25213a0", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@006709ba3ed87660a17bd4548c45663628f5ed85", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@45903920b984540bb629bc89f4c010159c23a89a", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@4cfc6d8e173e800df086d7be078da2e8c5cfca19", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@f49462dc93784bf34148715eee36ab6697ca0b35", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@0fb779c1e169fe6c229cd1fa9cc6ea6feeb441da", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@2af26267cdfcb63a88e5c74a85927a12d6ca1d76", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@7f4d495c89c200c1945cce5995d348dd41dadb5a", -- "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. -- "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@1e40b8e966f5dbac2e886e5ba1eb30f660cd5cf9", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@6e1fb9b09efadee38748e0fd0e6210d329087e89", -- "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@79743b899fde5c954897b2694291002626358fac", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1bc0e6f59abc3c9cd75f93baef47e9612a448045", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@ee3a076b291d206c361431cc841407adf265c692", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@7e691380166fb1cd9b193ac9db896bc23a4ea9ad", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@3a19c1973f0e4732b8f3746593aee2ac425ecb78", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@2169a0849e3df4e2133b728dec67d3b16bd30263", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@c876c8f87101c5a75f6014b0f832499afeb65b73", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m120-minimize-download.patch b/patch/skia-m120-minimize-download.patch deleted file mode 100644 index 7ef02ab8..00000000 --- a/patch/skia-m120-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index cb5ae85..aeeea58 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,52 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@95fe7e470418cd5ac18d203eb29a25101c650f14", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@52564ab1a0e3359b7bbadd282865cc28612c33ce", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@515dd10de9bf63040045902a4a310d2ba25213a0", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@006709ba3ed87660a17bd4548c45663628f5ed85", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@45903920b984540bb629bc89f4c010159c23a89a", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@4cfc6d8e173e800df086d7be078da2e8c5cfca19", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@2af26267cdfcb63a88e5c74a85927a12d6ca1d76", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@d9ec9befba05a8dfca09c1e88f3f7be0e4b153c6", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@e334b7a22bdd04b80d3d6f27207bfdaaa29684c0", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@637cff3d05892801daa43c93907e17151c7dfd31", -- "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@88bc5e321c2839707df8b1ab534e243e00744177", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@4f014aff9c653e5e16de1cc5f7130e99e02982e5", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@ee3a076b291d206c361431cc841407adf265c692", - "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@aff5071d4ee6215c60a91d8d983cad91bb25fb57", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@2d956672d73321bfb22b378c06033f0bd885d61c", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@5b3147a535e28a48ae760efacdf97b296d9e8c73", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@c876c8f87101c5a75f6014b0f832499afeb65b73", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m121-colrv1-freetype.diff b/patch/skia-m121-colrv1-freetype.diff deleted file mode 100644 index 729a696c..00000000 --- a/patch/skia-m121-colrv1-freetype.diff +++ /dev/null @@ -1,236 +0,0 @@ -diff --git a/modules/canvaskit/canvaskit_bindings.cpp b/modules/canvaskit/canvaskit_bindings.cpp -index 073f853..17b70e3 100644 ---- a/modules/canvaskit/canvaskit_bindings.cpp -+++ b/modules/canvaskit/canvaskit_bindings.cpp -@@ -110,6 +110,8 @@ - #include "include/core/SkFontMetrics.h" - #include "include/core/SkFontMgr.h" - #include "include/core/SkFontTypes.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #ifdef CK_INCLUDE_PARAGRAPH - #include "modules/skparagraph/include/Paragraph.h" -diff --git a/modules/canvaskit/skottie_bindings.cpp b/modules/canvaskit/skottie_bindings.cpp -index d345fe8..dc8bde8 100644 ---- a/modules/canvaskit/skottie_bindings.cpp -+++ b/modules/canvaskit/skottie_bindings.cpp -@@ -19,6 +19,8 @@ - #include "modules/sksg/include/SkSGInvalidationController.h" - #include "modules/skunicode/include/SkUnicode.h" - #include "src/base/SkUTF.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #include "tools/skui/InputState.h" - #include "tools/skui/ModifierKey.h" -diff --git a/modules/skparagraph/utils/TestFontCollection.cpp b/modules/skparagraph/utils/TestFontCollection.cpp -index 9e5374f..b796d7d 100644 ---- a/modules/skparagraph/utils/TestFontCollection.cpp -+++ b/modules/skparagraph/utils/TestFontCollection.cpp -@@ -8,6 +8,8 @@ - #include "tools/Resources.h" - - #if defined(SK_TYPEFACE_FACTORY_FREETYPE) -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #elif defined(SK_TYPEFACE_FACTORY_CORETEXT) - #include "src/ports/SkTypeface_mac_ct.h" -diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp -index f2d0927..bf2666c 100644 ---- a/src/core/SkTypeface.cpp -+++ b/src/core/SkTypeface.cpp -@@ -31,6 +31,8 @@ - #include "src/sfnt/SkOTTable_OS_2.h" - - #ifdef SK_TYPEFACE_FACTORY_FREETYPE -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #endif - -diff --git a/src/ports/SkFontConfigTypeface.h b/src/ports/SkFontConfigTypeface.h -index 7955049..8551cf7 100644 ---- a/src/ports/SkFontConfigTypeface.h -+++ b/src/ports/SkFontConfigTypeface.h -@@ -12,6 +12,8 @@ - #include "include/core/SkStream.h" - #include "include/ports/SkFontConfigInterface.h" - #include "src/core/SkFontDescriptor.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - - class SkFontDescriptor; -diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp -index 1122283..9b196ca 100644 ---- a/src/ports/SkFontHost_FreeType.cpp -+++ b/src/ports/SkFontHost_FreeType.cpp -@@ -31,7 +31,6 @@ - #include "src/core/SkMask.h" - #include "src/core/SkMaskGamma.h" - #include "src/core/SkScalerContext.h" --#include "src/ports/SkFontHost_FreeType_common.h" - #include "src/sfnt/SkOTUtils.h" - #include "src/sfnt/SkSFNTHeader.h" - #include "src/sfnt/SkTTCFHeader.h" -@@ -49,6 +48,7 @@ - #ifdef FT_COLOR_H // 2.10.0 - # include - #endif -+#include "src/ports/SkFontHost_FreeType_common.h" - #include - #include - #include -diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp -index 1505cd0..7873a9e 100644 ---- a/src/ports/SkFontHost_FreeType_common.cpp -+++ b/src/ports/SkFontHost_FreeType_common.cpp -@@ -6,7 +6,6 @@ - * found in the LICENSE file. - */ - --#include "src/ports/SkFontHost_FreeType_common.h" - - #include "include/core/SkBitmap.h" - #include "include/core/SkCanvas.h" -@@ -32,6 +31,7 @@ - #ifdef FT_COLOR_H - # include - #endif -+#include "src/ports/SkFontHost_FreeType_common.h" - #include - #include - #include -@@ -1577,6 +1577,41 @@ bool SkScalerContext_FreeType_Base::drawCOLRv1Glyph(FT_Face face, - SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); - return haveLayers; - } -+/* -+ * This content is mostly just -+ * SkTypeface_FreeType::FaceRec::setupPalette() -+ + + SkScalerContext_FreeType_Base::drawCOLRv1Glyph() -+ +*/ -+bool SkScalerContext_FreeType_Base::skia_colrv1_start_glyph(SkCanvas* canvas, -+ FT_Face face, -+ uint16_t glyphId, -+ FT_UShort palette_index, -+ FT_Color_Root_Transform rootTransform -+ ) { -+ uint32_t fForegroundColor{SK_ColorBLACK}; -+ FT_Palette_Data paletteData; -+ FT_Palette_Data_Get(face, &paletteData); -+ -+ FT_Color* ftPalette = nullptr; -+ FT_Palette_Select(face, palette_index, &ftPalette); -+ std::unique_ptr ptr_palette(new SkColor[paletteData.num_palette_entries]); -+ for (int i = 0; i < paletteData.num_palette_entries; ++i) { -+ ptr_palette[i] = SkColorSetARGB(ftPalette[i].alpha, -+ ftPalette[i].red, -+ ftPalette[i].green, -+ ftPalette[i].blue); -+ } -+ SkSpan palette(ptr_palette.get(), paletteData.num_palette_entries); -+ -+ VisitedSet activePaints; -+ bool haveLayers = colrv1_start_glyph(canvas, palette, -+ fForegroundColor, // FT_Palette_Get_Foreground_Color? -+ face, glyphId, -+ FT_COLOR_INCLUDE_ROOT_TRANSFORM, -+ &activePaints); -+ SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); -+ return haveLayers; -+} - #endif // TT_SUPPORT_COLRV1 - - #ifdef FT_COLOR_H -diff --git a/src/ports/SkFontHost_FreeType_common.h b/src/ports/SkFontHost_FreeType_common.h -index 6cba604..92e56af 100644 ---- a/src/ports/SkFontHost_FreeType_common.h -+++ b/src/ports/SkFontHost_FreeType_common.h -@@ -29,6 +29,7 @@ typedef struct FT_FaceRec_* FT_Face; - typedef struct FT_StreamRec_* FT_Stream; - typedef signed long FT_Pos; - typedef struct FT_BBox_ FT_BBox; -+typedef unsigned short FT_UShort; /* freetype/fttypes.h */ - - - #ifdef SK_DEBUG -@@ -41,7 +42,15 @@ const char* SkTraceFtrGetError(int); - #endif - - --class SkScalerContext_FreeType_Base : public SkScalerContext { -+class SK_SPI SkScalerContext_FreeType_Base : public SkScalerContext { -+public: -+ static bool computeColrV1GlyphBoundingBox(FT_Face, SkGlyphID, SkRect* bounds); -+ static bool skia_colrv1_start_glyph(SkCanvas* canvas, -+ FT_Face face, -+ uint16_t glyphId, -+ FT_UShort palette_index, -+ FT_Color_Root_Transform rootTransform -+ ); - protected: - // See http://freetype.sourceforge.net/freetype2/docs/reference/ft2-bitmap_handling.html#FT_Bitmap_Embolden - // This value was chosen by eyeballing the result in Firefox and trying to match it. -@@ -68,7 +77,6 @@ protected: - * configure size, matrix and load glyphs as needed after using this function to restore the - * state of FT_Face. - */ -- static bool computeColrV1GlyphBoundingBox(FT_Face, SkGlyphID, SkRect* bounds); - - struct ScalerContextBits { - static const constexpr uint32_t COLRv0 = 1; -diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp -index 8a93a2e..d3743ba 100644 ---- a/src/ports/SkFontMgr_android.cpp -+++ b/src/ports/SkFontMgr_android.cpp -@@ -23,6 +23,8 @@ - #include "src/core/SkFontDescriptor.h" - #include "src/core/SkOSFile.h" - #include "src/core/SkTypefaceCache.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #include "src/ports/SkFontMgr_android_parser.h" - -diff --git a/src/ports/SkFontMgr_custom.cpp b/src/ports/SkFontMgr_custom.cpp -index a0c6693..536f1c2 100644 ---- a/src/ports/SkFontMgr_custom.cpp -+++ b/src/ports/SkFontMgr_custom.cpp -@@ -16,6 +16,8 @@ - #include "include/private/base/SkTArray.h" - #include "include/private/base/SkTemplates.h" - #include "src/core/SkFontDescriptor.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - #include "src/ports/SkFontMgr_custom.h" - -diff --git a/src/ports/SkFontMgr_custom.h b/src/ports/SkFontMgr_custom.h -index 0de4d1d..b9298dd 100644 ---- a/src/ports/SkFontMgr_custom.h -+++ b/src/ports/SkFontMgr_custom.h -@@ -14,6 +14,8 @@ - #include "include/core/SkString.h" - #include "include/core/SkTypes.h" - #include "include/private/base/SkTArray.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - - class SkData; -diff --git a/src/ports/SkFontMgr_fontconfig.cpp b/src/ports/SkFontMgr_fontconfig.cpp -index 12b1e95..6d386d9 100644 ---- a/src/ports/SkFontMgr_fontconfig.cpp -+++ b/src/ports/SkFontMgr_fontconfig.cpp -@@ -28,6 +28,8 @@ - #include "src/core/SkOSFile.h" - #include "src/core/SkScalerContext.h" - #include "src/core/SkTypefaceCache.h" -+enum class FT_Color_Root_Transform_; -+typedef FT_Color_Root_Transform_ FT_Color_Root_Transform; /* freetype/ftcolor.h */ - #include "src/ports/SkFontHost_FreeType_common.h" - - #include diff --git a/patch/skia-m121-minimize-download.patch b/patch/skia-m121-minimize-download.patch deleted file mode 100644 index a1a28c75..00000000 --- a/patch/skia-m121-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 3556177..e9a5c4a 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,53 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@fb6b960c0a737d20e9b6907a8da56343fd1fab08", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@7ce5da31c2af7a4461e185117c8ae4799e37d29e", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@515dd10de9bf63040045902a4a310d2ba25213a0", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@006709ba3ed87660a17bd4548c45663628f5ed85", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@cb436cf0142b4cbe47aae94223443df7f82e2920", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@45903920b984540bb629bc89f4c010159c23a89a", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@4cfc6d8e173e800df086d7be078da2e8c5cfca19", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@4f81635489681ecf7707623177123cb78d6a66a0", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@2af26267cdfcb63a88e5c74a85927a12d6ca1d76", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@4befa3ada54ce2fbdadb2383712da70811efe85e", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@26e8d593e8b8a850722b78ac508cdb4a49a54595", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@a3da0e87fa1a6aacdf32c5e729a653b60afe82af", -- "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@cca08c63cefa129d082abca0302adcb81610b465", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@0d87845532579ec3787165cc55635c95180463e0", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@ee3a076b291d206c361431cc841407adf265c692", - "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@19a863ccce773ff393b186329478b1eb1a519fd3", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@8718f7f80506b4377d1a37608b532c7c3c54c685", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@2feac587338c7e1b631b2ef9bd6e894d7ad7f56d", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@c876c8f87101c5a75f6014b0f832499afeb65b73", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m122-colrv1-freetype.diff b/patch/skia-m122-colrv1-freetype.diff deleted file mode 100644 index a6232503..00000000 --- a/patch/skia-m122-colrv1-freetype.diff +++ /dev/null @@ -1,119 +0,0 @@ -diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp -index 7e096a6..46fe7a0 100644 ---- a/src/ports/SkFontHost_FreeType.cpp -+++ b/src/ports/SkFontHost_FreeType.cpp -@@ -33,7 +33,6 @@ - #include "src/core/SkMask.h" - #include "src/core/SkMaskGamma.h" - #include "src/core/SkScalerContext.h" --#include "src/ports/SkFontHost_FreeType_common.h" - #include "src/ports/SkTypeface_FreeType.h" - #include "src/sfnt/SkOTUtils.h" - #include "src/sfnt/SkSFNTHeader.h" -@@ -52,6 +51,7 @@ - #ifdef FT_COLOR_H // 2.10.0 - # include - #endif -+#include "src/ports/SkFontHost_FreeType_common.h" - #include - #include - #include -diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp -index 14b2adb..f041583 100644 ---- a/src/ports/SkFontHost_FreeType_common.cpp -+++ b/src/ports/SkFontHost_FreeType_common.cpp -@@ -6,7 +6,6 @@ - * found in the LICENSE file. - */ - --#include "src/ports/SkFontHost_FreeType_common.h" - - #include "include/core/SkBitmap.h" - #include "include/core/SkCanvas.h" -@@ -32,6 +31,7 @@ - #ifdef FT_COLOR_H - # include - #endif -+#include "src/ports/SkFontHost_FreeType_common.h" - #include - #include - #include -@@ -1574,6 +1574,41 @@ bool SkScalerContext_FreeType_Base::drawCOLRv1Glyph(FT_Face face, - SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); - return haveLayers; - } -+/* -+ * This content is mostly just -+ * SkTypeface_FreeType::FaceRec::setupPalette() -+ + + SkScalerContext_FreeType_Base::drawCOLRv1Glyph() -+ +*/ -+bool SkScalerContext_FreeType_Base::skia_colrv1_start_glyph(SkCanvas* canvas, -+ FT_Face face, -+ uint16_t glyphId, -+ FT_UShort palette_index, -+ FT_Color_Root_Transform rootTransform -+ ) { -+ uint32_t fForegroundColor{SK_ColorBLACK}; -+ FT_Palette_Data paletteData; -+ FT_Palette_Data_Get(face, &paletteData); -+ -+ FT_Color* ftPalette = nullptr; -+ FT_Palette_Select(face, palette_index, &ftPalette); -+ std::unique_ptr ptr_palette(new SkColor[paletteData.num_palette_entries]); -+ for (int i = 0; i < paletteData.num_palette_entries; ++i) { -+ ptr_palette[i] = SkColorSetARGB(ftPalette[i].alpha, -+ ftPalette[i].red, -+ ftPalette[i].green, -+ ftPalette[i].blue); -+ } -+ SkSpan palette(ptr_palette.get(), paletteData.num_palette_entries); -+ -+ VisitedSet activePaints; -+ bool haveLayers = colrv1_start_glyph(canvas, palette, -+ fForegroundColor, // FT_Palette_Get_Foreground_Color? -+ face, glyphId, -+ FT_COLOR_INCLUDE_ROOT_TRANSFORM, -+ &activePaints); -+ SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); -+ return haveLayers; -+} - #endif // TT_SUPPORT_COLRV1 - - #ifdef FT_COLOR_H -diff --git a/src/ports/SkFontHost_FreeType_common.h b/src/ports/SkFontHost_FreeType_common.h -index d649784..1100b0e 100644 ---- a/src/ports/SkFontHost_FreeType_common.h -+++ b/src/ports/SkFontHost_FreeType_common.h -@@ -19,6 +19,7 @@ - typedef struct FT_FaceRec_* FT_Face; - typedef struct FT_StreamRec_* FT_Stream; - typedef signed long FT_Pos; -+typedef unsigned short FT_UShort; /* freetype/fttypes.h */ - - - #ifdef SK_DEBUG -@@ -31,7 +32,15 @@ const char* SkTraceFtrGetError(int); - #endif - - --class SkScalerContext_FreeType_Base : public SkScalerContext { -+class SK_SPI SkScalerContext_FreeType_Base : public SkScalerContext { -+public: -+ static bool computeColrV1GlyphBoundingBox(FT_Face, SkGlyphID, SkRect* bounds); -+ static bool skia_colrv1_start_glyph(SkCanvas* canvas, -+ FT_Face face, -+ uint16_t glyphId, -+ FT_UShort palette_index, -+ FT_Color_Root_Transform rootTransform -+ ); - protected: - // See http://freetype.sourceforge.net/freetype2/docs/reference/ft2-bitmap_handling.html#FT_Bitmap_Embolden - // This value was chosen by eyeballing the result in Firefox and trying to match it. -@@ -57,7 +66,6 @@ protected: - * configure size, matrix and load glyphs as needed after using this function to restore the - * state of FT_Face. - */ -- static bool computeColrV1GlyphBoundingBox(FT_Face, SkGlyphID, SkRect* bounds); - - struct ScalerContextBits { - static const constexpr uint32_t COLRv0 = 1; diff --git a/patch/skia-m122-minimize-download.patch b/patch/skia-m122-minimize-download.patch deleted file mode 100644 index 9b207a33..00000000 --- a/patch/skia-m122-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index bd7ed9d..8180821 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,53 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@c6fbf93decbac74cd14c6ca3d600d4ed91d1179d", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@5b45794c2c24c3fa40dc480af92c5284a95423ef", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@334aca32051ef6ede2711487acf45d959e9bdffc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@45903920b984540bb629bc89f4c010159c23a89a", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@4cfc6d8e173e800df086d7be078da2e8c5cfca19", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@4f81635489681ecf7707623177123cb78d6a66a0", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@386707c6d19b974ca2e3db7f5c61873813c6fe44", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@2af26267cdfcb63a88e5c74a85927a12d6ca1d76", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@328e794f0c8bddc81c834ccc89c9652902f643cb", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@4307b0183c9e16bc920ef0bceaa9e9d630c352c3", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b82536766d1b81631b126d1ddbe49baf42929bd3", -- "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@7b0309708da5126b89e4ce6f19835f36dc912f2f", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@3e6bdd0f99655b1bc6a54aa73e5bfaaa4252198b", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@ee3a076b291d206c361431cc841407adf265c692", - "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@217e93c664ec6704ec2d8c36fa116c1a4a1e2d40", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@7c6d640a5ca3ab73c1f42d22312f672b54babfaf", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@4cfc176e3242b4dbdfd3f6c5680c5d8f2cb7db45", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@c876c8f87101c5a75f6014b0f832499afeb65b73", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m123-colrv1-freetype.diff b/patch/skia-m123-colrv1-freetype.diff deleted file mode 100644 index 6d051d3b..00000000 --- a/patch/skia-m123-colrv1-freetype.diff +++ /dev/null @@ -1,109 +0,0 @@ -diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp -index 0b81565..9163883 100644 ---- a/src/ports/SkFontHost_FreeType.cpp -+++ b/src/ports/SkFontHost_FreeType.cpp -@@ -33,7 +33,6 @@ - #include "src/core/SkMask.h" - #include "src/core/SkMaskGamma.h" - #include "src/core/SkScalerContext.h" --#include "src/ports/SkFontHost_FreeType_common.h" - #include "src/ports/SkTypeface_FreeType.h" - #include "src/sfnt/SkOTUtils.h" - #include "src/sfnt/SkSFNTHeader.h" -@@ -52,6 +51,7 @@ - #ifdef FT_COLOR_H // 2.10.0 - # include - #endif -+#include "src/ports/SkFontHost_FreeType_common.h" - #include - #include - #include -diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp -index 050a127..8b98adc 100644 ---- a/src/ports/SkFontHost_FreeType_common.cpp -+++ b/src/ports/SkFontHost_FreeType_common.cpp -@@ -6,7 +6,6 @@ - * found in the LICENSE file. - */ - --#include "src/ports/SkFontHost_FreeType_common.h" - - #include "include/core/SkBitmap.h" - #include "include/core/SkCanvas.h" -@@ -32,6 +31,7 @@ - #ifdef FT_COLOR_H - # include - #endif -+#include "src/ports/SkFontHost_FreeType_common.h" - #include - #include - #include -@@ -1577,6 +1577,41 @@ bool SkScalerContextFTUtils::drawCOLRv1Glyph(FT_Face face, const SkGlyph& glyph, - SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); - return haveLayers; - } -+/* -+ * This content is mostly just -+ * SkTypeface_FreeType::FaceRec::setupPalette() -+ + + SkScalerContext_FreeType_Base::drawCOLRv1Glyph() -+ +*/ -+bool SkScalerContextFTUtils::skia_colrv1_start_glyph(SkCanvas* canvas, -+ FT_Face face, -+ uint16_t glyphId, -+ FT_UShort palette_index, -+ FT_Color_Root_Transform rootTransform -+ ) { -+ uint32_t fForegroundColor{SK_ColorBLACK}; -+ FT_Palette_Data paletteData; -+ FT_Palette_Data_Get(face, &paletteData); -+ -+ FT_Color* ftPalette = nullptr; -+ FT_Palette_Select(face, palette_index, &ftPalette); -+ std::unique_ptr ptr_palette(new SkColor[paletteData.num_palette_entries]); -+ for (int i = 0; i < paletteData.num_palette_entries; ++i) { -+ ptr_palette[i] = SkColorSetARGB(ftPalette[i].alpha, -+ ftPalette[i].red, -+ ftPalette[i].green, -+ ftPalette[i].blue); -+ } -+ SkSpan palette(ptr_palette.get(), paletteData.num_palette_entries); -+ -+ VisitedSet activePaints; -+ bool haveLayers = colrv1_start_glyph(canvas, palette, -+ fForegroundColor, // FT_Palette_Get_Foreground_Color? -+ face, glyphId, -+ FT_COLOR_INCLUDE_ROOT_TRANSFORM, -+ &activePaints); -+ SkASSERTF(haveLayers, "Could not get COLRv1 layers from '%s'.", face->family_name); -+ return haveLayers; -+} - #endif // TT_SUPPORT_COLRV1 - - #ifdef FT_COLOR_H -diff --git a/src/ports/SkFontHost_FreeType_common.h b/src/ports/SkFontHost_FreeType_common.h -index 444811e..d88433c 100644 ---- a/src/ports/SkFontHost_FreeType_common.h -+++ b/src/ports/SkFontHost_FreeType_common.h -@@ -20,6 +20,7 @@ class SkCanvas; - // These are forward declared to avoid pimpl but also hide the FreeType implementation. - typedef struct FT_FaceRec_* FT_Face; - typedef signed long FT_Pos; -+typedef unsigned short FT_UShort; /* freetype/fttypes.h */ - - - #ifdef SK_DEBUG -@@ -31,7 +32,13 @@ const char* SkTraceFtrGetError(int); - #define SK_TRACEFTR(ERR, ...) do { sk_ignore_unused_variable(ERR); } while (false) - #endif - --struct SkScalerContextFTUtils { -+struct SK_SPI SkScalerContextFTUtils { -+ static bool skia_colrv1_start_glyph(SkCanvas* canvas, -+ FT_Face face, -+ uint16_t glyphId, -+ FT_UShort palette_index, -+ FT_Color_Root_Transform rootTransform -+ ); - SkColor fForegroundColor; - SkScalerContext::Flags fFlags; - diff --git a/patch/skia-m123-minimize-download.patch b/patch/skia-m123-minimize-download.patch deleted file mode 100644 index dec3706b..00000000 --- a/patch/skia-m123-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index fa09db3..7277713 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,53 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@e04b7c7392d9d05907db6d453c8b8e577d306a7e", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@d3e0bd4770cc8115d1342a8dc051a36e50e8bd26", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@334aca32051ef6ede2711487acf45d959e9bdffc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@47574f7ea445c8bb751da0fa716424c9c29a6807", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@4cfc6d8e173e800df086d7be078da2e8c5cfca19", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@4f81635489681ecf7707623177123cb78d6a66a0", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@144b348e072a78e8130ed0acc452c9f039a67bf2", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@2af26267cdfcb63a88e5c74a85927a12d6ca1d76", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/sfntly" : "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git@b55ff303ea2f9e26702b514cf6a3196a2e3e2974", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@eb75201a4e0354a36d315dd01077092ec9aa2356", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@13783d616289ab4ff6cad96e570d04183b24f2e0", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", -- "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@05cc486580771e4fa7ddc89f5c9ee1e97382689a", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@dc6676445be97ab19d8191fee019af62e2aaf774", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@e04b6028651dfd6b87067c0d27c1207c7f735a6d", - "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@31aa7f634b052d87ede4664053e85f3f4d1d50d3", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@069bd14c0548556e130fc9e205adc918b7a01891", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@1b8b60bf7f271a09eeda032d117d51a43ed506cd", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m124-minimize-download.patch b/patch/skia-m124-minimize-download.patch deleted file mode 100644 index ee7c8550..00000000 --- a/patch/skia-m124-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index b61a799..21bcc41 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,52 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@21d124c4bf321a18dae1dc94602aa262fc346a8b", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@bac513d0ae286600ea0f75a75223a5b52a198b9b", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@334aca32051ef6ede2711487acf45d959e9bdffc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@f42ce25563b73fed0123d18a2556b9ba01d2c76b", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@4cfc6d8e173e800df086d7be078da2e8c5cfca19", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@144b348e072a78e8130ed0acc452c9f039a67bf2", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@2af26267cdfcb63a88e5c74a85927a12d6ca1d76", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@bbe6452b420c5ddc4b0fd421b0a3ce271262f4ca", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@61f5e95eb939f4fa620f6770907591fee356c409", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@8b246ff75c6615ba4532fe4fde20f1be090c3764", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@f20663ca7fec48fdc88e4c4d7c5889f8b4cc5664", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@e04b6028651dfd6b87067c0d27c1207c7f735a6d", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@577baa05033cf1d9236b3d078ca4b3269ed87a2b", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@733fd2b522918f81f9c4669350dafd066f99c5d5", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@a4140c5fd47dcf3a030726a60b293db61cfb54a3", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m125-minimize-download.patch b/patch/skia-m125-minimize-download.patch deleted file mode 100644 index 8d52f977..00000000 --- a/patch/skia-m125-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index 34462a7..0664739 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,52 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@66bc9cfa00143312cc7545556041622a92745a91", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@f20a53466bc2cd5c86f0f903a9eea322cadf8b77", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@334aca32051ef6ede2711487acf45d959e9bdffc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@f42ce25563b73fed0123d18a2556b9ba01d2c76b", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@c053e8f29257814e11ad61493dbbe29f27656de4", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@a0718d4f121727e30b8d52c7a189ebf5ab52421f", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@144b348e072a78e8130ed0acc452c9f039a67bf2", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@ca332209cb5567c9b249c86788cb2dbf8847e760", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@62c59c41e194c288c06739788bb0aad3c86b19bf", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@ec0c320a8ca186363f609b697c037597398a43e6", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@4f7b471f1a66b6d06462cd4ba57628cc0cd087d7", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@2904985aee4de2fd67d697242a267f5ec31814ce", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@74715ee4650ec3f4483ccc86540b32d15d5bfaa3", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@1e7b8a6d03d30c9254b5f533b561d62bba8c3199", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@d14404b26e17086a707ea6ff5f7342ed5b9938ca", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@72696f278218d39171678e41d8f43cff9905c513", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m126-minimize-download.patch b/patch/skia-m126-minimize-download.patch deleted file mode 100644 index bbf62917..00000000 --- a/patch/skia-m126-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index 928cdfc..a4ffe00 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,52 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@66bc9cfa00143312cc7545556041622a92745a91", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@1b2d3eb175fdf83e21e21b6167a34225a03d2bc2", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@334aca32051ef6ede2711487acf45d959e9bdffc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@a46424228f0998a72c715f32e18dca8a7a764c1f", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@b74a7ecc93e283d059df51ee4f46961a782bcdb8", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ed683925e4897a84b3bffc5c1414c85b97a129a3", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@da334852e70510d259bfa8cbaa7c5412966b2f41", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f1dcf238ad742f936794809f28b0ad0511b6585b", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@49a1fceb9b1d087f3c25ad5ec077bb0e46231297", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@199038f10cbe56bf7cbfeb5472eb0a25af2f09f5", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@6938a2893d6a2ba658709d1d04720f6c6033700f", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@5677bafb820e476441e9e1f745371b72133407d3", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@df8e710224f563a04b7db2680f72d31619c4b259", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@358a107a6ff284906dcccbabe5b0183c03fd85b6", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m127-minimize-download.patch b/patch/skia-m127-minimize-download.patch deleted file mode 100644 index a448a369..00000000 --- a/patch/skia-m127-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index 007d053..17e50d8 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,52 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@3a3b55f7ac9bee70e875e7cfb9b0c05b2ed9b7cf", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@51d873f3e0d0e0dcc5c3a6b56019983a5a4cd155", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@a46424228f0998a72c715f32e18dca8a7a764c1f", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@b74a7ecc93e283d059df51ee4f46961a782bcdb8", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@2ff3212615da62f591be15eef78721c29c5c0b31", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@62eb765e42dd2ab2ca58f6c95fac89de123978e7", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@eb49bb7b1136298b77945c52b4bbbc433f7885de", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@ce46482db7ab3ea9c52fce832d27ca40b14f8e87", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@6938a2893d6a2ba658709d1d04720f6c6033700f", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@d192041a2fc9c9fd8ae67d8ae3f32c5511541f04", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@a9a1bcd709e185700847268eb4310f6484b027bc", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@741921e408442b0370047b5eaf16cbc2b5d381e5", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m128-minimize-download.patch b/patch/skia-m128-minimize-download.patch deleted file mode 100644 index 45480e9b..00000000 --- a/patch/skia-m128-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index c5f8974..70ec737 100644 ---- a/DEPS -+++ b/DEPS -@@ -23,52 +23,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@85edb907199e7a15e4ac30ea3fd0bbed021880ad", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@74e2fbfd1765df54bf285b5ff2ab763de802db37", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@73720c7c9958e87b3d134a7574d1720ad2d24442", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@b74a7ecc93e283d059df51ee4f46961a782bcdb8", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@c4dfa69de7deecf52c6b53badbc8bb7be1a05e8c", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@2b33822c849c05d9aa2effd4b182f4b64eebf962", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@db5a00f8cebe81146cafabf89019674a3c4bf03d", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@d1b35bb1712e90fd0d341b7b56fa27984c7b3b0f", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@fabe9e2672334fdb9a622d42a2e8f94578952082", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@2cee0d5b1d8c34e26fd6d9992d3d428ac4c5139d", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@67522b34edde86dbb97e164280291f387ade55fc", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m129-minimize-download.patch b/patch/skia-m129-minimize-download.patch deleted file mode 100644 index ad81d42d..00000000 --- a/patch/skia-m129-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index 56af0ea..ebb198d 100644 ---- a/DEPS -+++ b/DEPS -@@ -28,52 +28,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@579a58552fa6beed56f3e32d9b822575d1946b06", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@db1fa936ad0a58846f179c81cdf60f55267099b9", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@441f98d02deafd9b090aea568282b28f66a50e36", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@73720c7c9958e87b3d134a7574d1720ad2d24442", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@b74a7ecc93e283d059df51ee4f46961a782bcdb8", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@65157d32945d9a75fc9a657e878a1b2f61342f03", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@b038f07b8faf4d057b1a38fdf90e9dfd7238ac16", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@1b75a4ae0b4289014b4c369301dc925c366f78a6", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@87fcbaf1bc8346469e178711eff27cfd20aa1960", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@d205aff40b4e15d4c568523ee6a26f85138126d9", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@494d32f2da0bd8a782d88fdaa98b9e1967148d1b", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@9b6e18888be3ac761a3f71594c3949f8dc862ccc", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m130-minimize-download.patch b/patch/skia-m130-minimize-download.patch deleted file mode 100644 index 263b2985..00000000 --- a/patch/skia-m130-minimize-download.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/DEPS b/DEPS -index c04853d..e2dee70 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,52 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@f6d9b179eb8303fdbb954099da89c2e106b04edb", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@2e8afd5a4962750ee1d3cdf1663596b697044d5c", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@83af801b552111e37d9466a887e1783a0fb5f196", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@a070f9ebbe88dc71b248af9731dd49ec93f4e6e6", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@2afc8c97882a5c66abf5f26670ae420d2e30adc3", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@4a69b8e2bcddf68b543487c2d5e2b34bf5076338", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@a2c9c2387e97ac47ec3b1f508dd1f9f354e023cc", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@c6391a7b8cd57e79ce6b6c832c8e3043c4d9967b", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@4c63e845962ff3b197855f3ae4907a47d0863f5a", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@eb62fb38a538cde41b1180ec182ba923455a49ee", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m131-minimize-download.patch b/patch/skia-m131-minimize-download.patch deleted file mode 100644 index 2d3642cc..00000000 --- a/patch/skia-m131-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index a30e242..3d8dd72 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@78a694a1b82a01623226a418cf2f765c75e45c70", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@f3c7cc5c580eb743829c78bb77df0c1e8f6a6ce3", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@83af801b552111e37d9466a887e1783a0fb5f196", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@a070f9ebbe88dc71b248af9731dd49ec93f4e6e6", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ca4487e127c2e071da5d4a36a9f71fd7b65b1434", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@7a9a492a38b7c701f7c96a15a76046aed8f8c0c3", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@8f346c5caf5a624f42324ffb88167fc90992cab5", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@50bc4debdc3eec5045edbeb8ce164090e29b91f3", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@42b315c15b1ff941b46bb3949c105e5386be8717", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@d91597a82f881d473887b560a03a7edf2720b72c", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@eb9b6043be165f06c7ec78fadbb1ff773c5fc19c", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@bfd85956e1b4c1c79842ce857fc7fb15adb8a573", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m132-minimize-download.patch b/patch/skia-m132-minimize-download.patch deleted file mode 100644 index ffb54097..00000000 --- a/patch/skia-m132-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 16d496c..eb6a7cb 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@b138e6ce86ae843c42a1a08f37903207bebcca75", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@7fea539cc99bed8fd315cfbc5026952a133ac3ae", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@2a86250e561c56e9b1b9af5774f1253d9d66be97", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@83af801b552111e37d9466a887e1783a0fb5f196", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@a070f9ebbe88dc71b248af9731dd49ec93f4e6e6", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/microhttpd" : "https://android.googlesource.com/platform/external/libmicrohttpd@748945ec6f1c67b7efc934ab0808e1d32f2fb98d", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@76855a9baecc97fa144ce70d7ae43a9f878e14c8", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@a2dfb2276ea5f9467eb84c9a19ecf917d92e4135", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@996c728cf7dcfb29845cfa15222822318f047810", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@9117e042b93d4ff08d2406542708170f77aaa2a3", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@cbcad3c0587dddc768d76641ea00f5c45ab5a278", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@15f2de809304aba619ee327f3273425418ca83de", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@87ab6b39a97d084a2ef27db85e3cbaf5d2622a09", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m133-minimize-download.patch b/patch/skia-m133-minimize-download.patch deleted file mode 100644 index 5a00fdfb..00000000 --- a/patch/skia-m133-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 4a8c5d6..2134bfc 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@1760ff6d7267dd97ae1968c7bee9ce04a2a8489d", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@d65751b40f7e4441ca0e41210eadcc8a9cbccce5", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@3f908f3907e532481e4c91d3b814b46869405fe8", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@59320b2d3c2584ac01914ed0deff64bcc8fb23b2", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@a070f9ebbe88dc71b248af9731dd49ec93f4e6e6", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@e76961fac58c34c61bb52ed3887917300f0e37a3", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@e2e618fdd93aae61355f75a60dffa4a775fd0f23", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@3f17b2af6784bfa2c5aa5dbb8e0e74a607dd8b3b", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@1a0658f55aab97e1803ca46896596a04c395d50d", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@d4a196d8c84e032d27f999adcea3075517c1c97f", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@a71347ae4d76eb8454459373d4e1bfb929ea6a89", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@5a88b6042edb8f03eefc8de73bd73a899989373f", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m134-minimize-download.patch b/patch/skia-m134-minimize-download.patch deleted file mode 100644 index 476f37a2..00000000 --- a/patch/skia-m134-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 885af1e..f21e4b9 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@1760ff6d7267dd97ae1968c7bee9ce04a2a8489d", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@44b5f0a59f2a06b1f889e0c64e641d33a3720095", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@acd89d9f169a9d09b9ada09d1bd80350376b8544", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@59320b2d3c2584ac01914ed0deff64bcc8fb23b2", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@a070f9ebbe88dc71b248af9731dd49ec93f4e6e6", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@86cf34f50cbe5a9f35da7eedad0f4d4127fb8342", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@2e4b45a53a0e2e66bcb6540ae384c53a517218d0", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@e7294a8ebed84f8c5bd3686c68dbe12a4e65b644", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@ce37fd67f83cd1e8793b988d2e4126bbf72b19dd", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@39f924b810e561fd86b2558b6711ca68d4363f68", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@c52931f012cb7b48e42bbf2050a7fb2183b76406", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@fe7a09b13899c5c77d956fa310286f7a7eb2c4ed", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m135-minimize-download.patch b/patch/skia-m135-minimize-download.patch deleted file mode 100644 index 2cfca49a..00000000 --- a/patch/skia-m135-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 677ee3b..90171b9 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@1760ff6d7267dd97ae1968c7bee9ce04a2a8489d", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@aa697ed028b0ba16b35dd4934216e16be09d6085", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@a8f733807cbf72ebab8baecbda359ca4413d00c7", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@59320b2d3c2584ac01914ed0deff64bcc8fb23b2", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@a070f9ebbe88dc71b248af9731dd49ec93f4e6e6", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@c12c13839d689f411911326b1f72e96eb525686c", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@c1c31f4d17a9e4b2af40d85c89d573eb43187e0d", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@54a521dd130ae1b2f38fef79b09515702d135bdd", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@f289d047f49fb60488301ec62bafab85573668cc", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@952f776f6573aafbb62ea717d871cd1d6816c387", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@fb8f5a5d69f4590ff1f5ecacb5e3957b6d11daee", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@2d8f273ebd4b843c402d9ee881616895b854e42f", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m136-minimize-download.patch b/patch/skia-m136-minimize-download.patch deleted file mode 100644 index 8a4c5752..00000000 --- a/patch/skia-m136-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 34ae50d..7b9690b 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@1760ff6d7267dd97ae1968c7bee9ce04a2a8489d", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@1b34d2a18af12cc55a3bc74dd679c2937d10cc5c", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@e55f122476a234562f70b18664bcb91cb751f12a", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@5d4e649f740c675426fbe4cdaffc53ee2a4cb954", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@ca3cd48fa3e06fa81d7c8a3f716cca44ed2de26a", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@e48c89759b6c4fa34e740c72dd01cf6d309e81c9", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@1648e664337ca19a4f8679cbb9547a5b4b926995", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@8c88e0c4c94a21de825efccba5f99a862b049825", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@2e83ad7e6f2cc51f7eaff3ffeb10e34351b3c157", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@78c359741d855213e8685278eb81bb62599f8e56", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@289efccc7560f2b970e2b4e0f50349da87669311", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@0d5b49b80f17bca25e7f9321ad4e671a56f70887", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m137-minimize-download.patch b/patch/skia-m137-minimize-download.patch deleted file mode 100644 index 380e5c2d..00000000 --- a/patch/skia-m137-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 3c7ca04..a16b21d 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@cdb34025f286a0ded80c34c4edae180539e24dc1", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@1a81a31c86f24b217d6396bc0a4c796590fffc43", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://skia.googlesource.com/external/github.com/abseil/abseil-cpp.git@65a55c2ba891f6d2492477707f4a2e327a0b40dc", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@5d4e649f740c675426fbe4cdaffc53ee2a4cb954", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@ca3cd48fa3e06fa81d7c8a3f716cca44ed2de26a", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@7905fa19e456df5aa8e2233a7ec5832c9c6c287b", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@95177446886dc95356c1662dbdc6e545233b3174", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@bab63ff679c41eb75fc67dac76e1dc44426101e1", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@783d7033613cedaa7147d0700b517abc5c32312d", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@e2e53a724677f6eba8ff0ce1ccb64ee321785cbd", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@682e42f7ae70a8fadf374199c02de737daa5c70d", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@4e246c56ec5afb5ad66b9b04374d39ac04675c8e", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m138-minimize-download.patch b/patch/skia-m138-minimize-download.patch deleted file mode 100644 index 68ffe207..00000000 --- a/patch/skia-m138-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 178d30b..a16b21d 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@ec4d8f8e4d3f1a9e64430abd8b6b436253732adf", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@30e8f3c65d1708b5bfec3a6290c2b58a792d1899", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@04dc59d2c83238cb1fcb49083e5e416643a899ce", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@702e4a1d32e4b911e85cc7df84b3ba395c28dab3", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@a8133cbb3c8969e3c1e6b3cea2c02ec8312ef9ca", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@d5a5fd31a4fe219410e13c93c8f3c0b237df65fc", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@c9aad99f9276817f18f72a4696239237c83cb775", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@01021466b5e71deaac9054f56082566c782bfd51", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@75ad707a587e1469fb53a901b9b68fe9f6fbc11f", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@60b640cb931814fcc6dabe4fc61f4738c56579f6", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@ae56bd6e65d9faa731150e931cb35f0d895223bc", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m139-minimize-download.patch b/patch/skia-m139-minimize-download.patch deleted file mode 100644 index 0ac82872..00000000 --- a/patch/skia-m139-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 6b685a0..c2f3e74 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@5220e634850ec26f4b4b0f305ba2a69cf0bc55df", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@d03fe7eda12dfce1578bf69da2814f89fd78c1e9", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@04dc59d2c83238cb1fcb49083e5e416643a899ce", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@a896e3d066448b3530dbcaa48869fafefd738f57", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@0ce9bc68d3fc995f76dcab4771c26471100ce759", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@31127c60fb320a7eedf48289aa5c435bbb020659", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@2a611a970fdbc41ac2e3e328802aed9985352dca", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@108b19e5c6979f496deffad4acbe354237afa7d3", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@10739e8e00a7b6f74d22dd0a547f1406ff1f5eb9", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@e3fc64396755191b3c51e5c57d0454872e7fa487", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@72665ee1e50db3d949080df8d727dffa8067f5f8", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index 687ca9f..7167d8d 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -17,6 +17,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '3.1.44' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m140-minimize-download.patch b/patch/skia-m140-minimize-download.patch deleted file mode 100644 index c691a84f..00000000 --- a/patch/skia-m140-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 93fc170..5bd8752 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@b6b2f380814eadf33f215adc2e99f208c800ae47", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@0b095928b31253ffc9684e460e08cc5710c2c21c", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@cae4b6a3990e1431caa09c7b2ed1c76d0dfeab17", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@681d07e76d8e03286b231766447800aab543bd27", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@0a496a889c4c1f56d0637afd2bddf4d89d94ebc9", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@97e96f9e9defeb4bba3cfbd034dec516671dd7a3", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@3aeaaa088d37b86cff036eee1a9bf452abad7d9d", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@37057b4756df4009ad85803bd2e06ec8a3bb1bca", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@f766b30b2de3ffe2cf6b656d943720882617ec58", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@b0a40d2e50310e9f84327061290a390a061125a3", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index b3c529f..81a1c60 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '4.0.7' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m141-minimize-download.patch b/patch/skia-m141-minimize-download.patch deleted file mode 100644 index 1fcf7e68..00000000 --- a/patch/skia-m141-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 01f37c2..4bb88bc 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@1e3e4eb7f98c05e92a113524eeffb5357f68f506", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@b03da099c360d8f021e4de2a3dd0cfb63cbc74d9", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@cae4b6a3990e1431caa09c7b2ed1c76d0dfeab17", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@0390a544a9520c11837f7d2da99a7f480622f29c", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@f55240464c0e7ad9fa42130618a2e0532a44c3b3", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@3397e1e4fe0a9964e1837c2934b81835093494b8", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@392b4893c4955125c1873c33a97f2a8ee8363bd3", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@d1cd37e925510a167d4abef39340dbdea47d8989", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@8ce6f121d1fcbdf60f0f4264e23fbcd247b9101d", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@a528f95dc2f92bdd83c0c32efe2d13c806428c9d", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index b3c529f..81a1c60 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '4.0.7' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m142-minimize-download.patch b/patch/skia-m142-minimize-download.patch deleted file mode 100644 index 58b4e208..00000000 --- a/patch/skia-m142-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 4283e2a..bccadce 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@7a7681cc8f888e72663530ca2cc997d9febd08e0", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@d930194b79289fa4eb2c593e71f233ae64e15c4c", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@9d692d669253232c024b20ae19d2ff0b581ee1cd", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@5f1c459a11bb4899301e89609cbf7547f9f31e20", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@a9e2ca3b57aba86a22a2df1b84bf12f8cc98806e", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@01e0577914a75a2569c846778c2f93aa8e6feddd", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@19042c8921f35f7bec56b9e5c96c5f5691588ca8", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@a4f8ada9f4f97c45b8c89c57997be9cebaae65d2", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@d643b80d6ba8c191bc289fdda52867c3bb3c190b", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@4322db5906e67b57ec9c327e6afe3d98ed893df7", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index b3c529f..81a1c60 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '4.0.7' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 diff --git a/patch/skia-m143-minimize-download.patch b/patch/skia-m143-minimize-download.patch deleted file mode 100644 index d4d4051c..00000000 --- a/patch/skia-m143-minimize-download.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/DEPS b/DEPS -index 288a633..5e158ed 100644 ---- a/DEPS -+++ b/DEPS -@@ -31,53 +31,18 @@ vars = { - # ./tools/git-sync-deps - deps = { - "buildtools" : "https://chromium.googlesource.com/chromium/src/buildtools.git@729495f2ffa69080907780591fa2a630b2556e98", -- "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@e9626fbced6841d804e7eaf48bb078770822032b", -- "third_party/externals/brotli" : "https://skia.googlesource.com/external/github.com/google/brotli.git@6d03dfbedda1615c4cba1211f8d81735575209c8", -- "third_party/externals/d3d12allocator" : "https://skia.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git@169895d529dfce00390a20e69c2f516066fe7a3b", -- # Dawn requires jinja2 and markupsafe for the code generator, tint for SPIRV compilation, and abseil for string formatting. -- # When the Dawn revision is updated these should be updated from the Dawn DEPS as well. -- "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@fb7f9cb1dd24cf2c4f49e36076f801351ef8a096", -- "third_party/externals/jinja2" : "https://chromium.googlesource.com/chromium/src/third_party/jinja2@e2d024354e11cc6b041b0cff032d73f0c7e43a07", -- "third_party/externals/markupsafe" : "https://chromium.googlesource.com/chromium/src/third_party/markupsafe@0bad08bb207bbfc1d6f3bbc82b9242b0c50e5794", -- "third_party/externals/abseil-cpp" : "https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp@9d692d669253232c024b20ae19d2ff0b581ee1cd", -- "third_party/externals/delaunator-cpp" : "https://skia.googlesource.com/external/github.com/skia-dev/delaunator-cpp.git@98305ef6c4e862f7d48df9cc647b690d796fec68", - "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@dbe0a676450d9b8c71bf00688bb306409b779e90", -- "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@b055c9b483e70ecd57b3cf7204db21f5a06f9ffe", -- "third_party/externals/emsdk" : "https://skia.googlesource.com/external/github.com/emscripten-core/emsdk.git@c69d433d8509c5c64564c2f0d054bf102a5cf67e", - "third_party/externals/expat" : "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git@8e49998f003d693213b538ef765814c7d21abada", - "third_party/externals/freetype" : "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git@1518bc83d26b434031bd12c706ac3c7dab3902fd", - "third_party/externals/harfbuzz" : "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git@08b52ae2e44931eef163dbad71697f911fadc323", -- "third_party/externals/highway" : "https://chromium.googlesource.com/external/github.com/google/highway.git@424360251cdcfc314cfc528f53c872ecd63af0f0", - "third_party/externals/icu" : "https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4", -- "third_party/externals/icu4x" : "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git@bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13", -- "third_party/externals/imgui" : "https://skia.googlesource.com/external/github.com/ocornut/imgui.git@55d35d8387c15bf0cfd71861df67af8cfbda7456", -- "third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000", -- "third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1", -- "third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0", - "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad", -- "third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3", - "third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f", -- "third_party/externals/libyuv" : "https://chromium.googlesource.com/libyuv/libyuv.git@d248929c059ff7629a85333699717d7a677d8d96", -- "third_party/externals/oboe" : "https://chromium.googlesource.com/external/github.com/google/oboe.git@b02a12d1dd821118763debec6b83d00a8a0ee419", -- "third_party/externals/opengl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry@14b80ebeab022b2c78f84a573f01028c96075553", -- "third_party/externals/partition_alloc" : "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git@ce13777cb731e0a60c606d1741091fd11a0574d7", -- "third_party/externals/perfetto" : "https://android.googlesource.com/platform/external/perfetto@93885509be1c9240bc55fa515ceb34811e54a394", - "third_party/externals/piex" : "https://android.googlesource.com/platform/external/piex.git@bb217acdca1cc0c16b704669dd6f91a1b509c406", -- "third_party/externals/swiftshader" : "https://swiftshader.googlesource.com/SwiftShader@3d536c0fc62b1cdea0f78c3c38d79be559855b88", - "third_party/externals/vulkanmemoryallocator" : "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator@a6bfc237255a6bac1513f7c1ebde6d8aed6b5191", -- # vulkan-deps is a meta-repo containing several interdependent Khronos Vulkan repositories. -- # When the vulkan-deps revision is updated, those repos (spirv-*, vulkan-*) should be updated as well. - "third_party/externals/vulkan-deps" : "https://chromium.googlesource.com/vulkan-deps@dd13d781f9ac9ecd60dc849c6facfa7098492ca2", -- "third_party/externals/spirv-cross" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross@b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "third_party/externals/spirv-headers" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git@6bb105b6c4b3a246e1e6bb96366fe14c6dbfde83", -- "third_party/externals/spirv-tools" : "https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git@d3c9bea077e2488fba40c30971b267e7dcb85e25", -- "third_party/externals/vello" : "https://skia.googlesource.com/external/github.com/linebender/vello.git@3ee3bea02164c5a816fe6c16ef4e3a810edb7620", -- "third_party/externals/vulkan-headers" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers@df274657d83f3bd8c77aef816c1cbf27352a948b", -- "third_party/externals/vulkan-tools" : "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools@7f6326618226225269a274869ac638b870c8fe2b", -- "third_party/externals/vulkan-utility-libraries": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries@ea43e2f5e51e9ad958a40fdce981f2f0abf09cb5", -- "third_party/externals/unicodetools" : "https://chromium.googlesource.com/external/github.com/unicode-org/unicodetools@66a3fa9dbdca3b67053a483d130564eabc5fe095", -- #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git@e3f919ccfe3ef542cfc983a82146070258fb57f8", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596", - -diff --git a/bin/activate-emsdk b/bin/activate-emsdk -index b3c529f..81a1c60 100755 ---- a/bin/activate-emsdk -+++ b/bin/activate-emsdk -@@ -18,6 +18,7 @@ EMSDK_PATH = os.path.join(EMSDK_ROOT, 'emsdk.py') - EMSDK_VERSION = '4.0.7' - - def main(): -+ return - if sysconfig.get_platform() in ['linux-aarch64', 'linux-arm64']: - # This platform cannot install emsdk at the provided version. See - # https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json#L5 From 8d73e0779e6ab6f4c647ebd48f1fba04bd53f385 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 09:30:30 +0000 Subject: [PATCH 144/146] Removing "-Reland" from patch name to make copilot happier. The name of the patch was auto-generated from its content (and the change has indeed been applied once, reverted, and relanded upstream) from `git format-patch -1 ...`. IMHO it should be kept as is, and the content should not be converted to forward-apply. I'll just remove the "-Reland" part to make copilot happier. --- ...build.patch => 0001-Make-SkPath-immutable-on-GN-build.patch} | 0 scripts/build_Linux.sh | 2 +- scripts/build_Windows.sh | 2 +- scripts/build_macOS.sh | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename patch/{0001-Reland-Make-SkPath-immutable-on-GN-build.patch => 0001-Make-SkPath-immutable-on-GN-build.patch} (100%) diff --git a/patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch b/patch/0001-Make-SkPath-immutable-on-GN-build.patch similarity index 100% rename from patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch rename to patch/0001-Make-SkPath-immutable-on-GN-build.patch diff --git a/scripts/build_Linux.sh b/scripts/build_Linux.sh index db1558ef..68d30cc1 100644 --- a/scripts/build_Linux.sh +++ b/scripts/build_Linux.sh @@ -19,7 +19,7 @@ fi # Build skia cd skia && \ - patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ + patch -R -p1 < ../patch/0001-Make-SkPath-immutable-on-GN-build.patch && \ patch -p1 < ../patch/skia-m144-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 < ../patch/skia-m132-egl-runtime.diff && \ diff --git a/scripts/build_Windows.sh b/scripts/build_Windows.sh index 60f42b29..ebfa115c 100644 --- a/scripts/build_Windows.sh +++ b/scripts/build_Windows.sh @@ -12,7 +12,7 @@ fi # Build skia cd skia && \ - patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ + patch -R -p1 < ../patch/0001-Make-SkPath-immutable-on-GN-build.patch && \ patch -p1 < ../patch/skia-m144-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ patch -p1 -R < ../patch/0001-Disable-OpenGL-for-Windows-on-ARM64.patch && \ diff --git a/scripts/build_macOS.sh b/scripts/build_macOS.sh index 19e5a912..f5921bb9 100644 --- a/scripts/build_macOS.sh +++ b/scripts/build_macOS.sh @@ -22,7 +22,7 @@ function apply_patch { } cd skia && \ - patch -R -p1 < ../patch/0001-Reland-Make-SkPath-immutable-on-GN-build.patch && \ + patch -R -p1 < ../patch/0001-Make-SkPath-immutable-on-GN-build.patch && \ patch -p1 < ../patch/skia-m144-minimize-download.patch && \ patch -p1 < ../patch/skia-m132-colrv1-freetype.diff && \ python3 tools/git-sync-deps && \ From 29e154254ff17906573f3bd5b1652b038d05311b Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 10:14:44 +0000 Subject: [PATCH 145/146] Bulk-convert a lot of "&x[0]" to the "x.data()" form Most of them done programmatically with something like: perl -pi -e 's/\&pts\[0\]/pts.data()/g' skia/* Copilot points out that the latter is safer. Many(all?) of them were touched by the recent SkSpan changes, plus a few more. --- src/skia/Canvas.cpp | 6 +++--- src/skia/Font.cpp | 26 +++++++++++++------------- src/skia/Matrix.cpp | 10 +++++----- src/skia/Path.cpp | 10 +++++----- src/skia/PathEffect.cpp | 2 +- src/skia/Rect.cpp | 6 +++--- src/skia/TextBlob.cpp | 8 ++++---- 7 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/skia/Canvas.cpp b/src/skia/Canvas.cpp index e6adf3c9..c806b80e 100644 --- a/src/skia/Canvas.cpp +++ b/src/skia/Canvas.cpp @@ -1346,7 +1346,7 @@ canvas // &SkCanvas::drawPoints, [] (SkCanvas& canvas, SkCanvas::PointMode mode, const std::vector& points, const SkPaint &paint) { - canvas.drawPoints(mode, {&points[0], points.size()}, paint); + canvas.drawPoints(mode, {points.data(), points.size()}, paint); }, R"docstring( Draws pts using clip, :py:class:`Matrix` and :py:class:`Paint` @@ -2318,8 +2318,8 @@ canvas if (!colors.empty() && colors.size() != xform.size()) throw std::runtime_error( "colors must have the same length with xform."); - canvas.drawAtlas(atlas, {&xform[0], xform.size()}, {&tex[0], tex.size()}, - {(colors.empty()) ? nullptr : &colors[0], + canvas.drawAtlas(atlas, {xform.data(), xform.size()}, {tex.data(), tex.size()}, + {(colors.empty()) ? nullptr : colors.data(), colors.size()}, mode, options, cullRect, paint); }, R"docstring( diff --git a/src/skia/Font.cpp b/src/skia/Font.cpp index 4c7e5b1f..52856e58 100644 --- a/src/skia/Font.cpp +++ b/src/skia/Font.cpp @@ -524,7 +524,7 @@ typeface .def("unicharsToGlyphs", [] (const SkTypeface& typeface, const std::vector& chars) { std::vector glyphs(chars.size()); - typeface.unicharsToGlyphs({&chars[0], chars.size()}, {&glyphs[0], glyphs.size()}); + typeface.unicharsToGlyphs({chars.data(), chars.size()}, {glyphs.data(), glyphs.size()}); return glyphs; }, R"docstring( @@ -556,7 +556,7 @@ typeface .def("getTableTags", [] (const SkTypeface& typeface) { std::vector tags(typeface.countTables()); - size_t size = typeface.readTableTags({&tags[0], tags.size()}); + size_t size = typeface.readTableTags({tags.data(), tags.size()}); if (size < tags.size()) throw std::runtime_error("Failed to get table tags."); return tags; @@ -613,7 +613,7 @@ typeface const std::vector& glyphs) -> py::object { std::vector adjustments(glyphs.size() - 1); auto result = typeface.getKerningPairAdjustments( - {&glyphs[0], glyphs.size()}, {(glyphs.size() > 1) ? &adjustments[0] : nullptr, adjustments.size()}); + {glyphs.data(), glyphs.size()}, {(glyphs.size() > 1) ? adjustments.data() : nullptr, adjustments.size()}); if (!result) { // Kerning is not supported for this typeface. return py::none(); @@ -1312,10 +1312,10 @@ font .def("textToGlyphs", [] (const SkFont& font, const std::string& text, SkTextEncoding encoding) { - int count = font.countText(&text[0], text.size(), encoding); + int count = font.countText(text.data(), text.size(), encoding); std::vector glyphs(count); font.textToGlyphs( - &text[0], text.size(), encoding, {&glyphs[0], glyphs.size()}); + text.data(), text.size(), encoding, {glyphs.data(), glyphs.size()}); return glyphs; }, R"docstring( @@ -1355,14 +1355,14 @@ font .def("unicharsToGlyphs", [] (const SkFont& font, const std::vector& uni) { std::vector glyphs(uni.size()); - font.unicharsToGlyphs({&uni[0], uni.size()}, {&glyphs[0], glyphs.size()}); + font.unicharsToGlyphs({uni.data(), uni.size()}, {glyphs.data(), glyphs.size()}); return glyphs; }, py::arg("uni")) .def("countText", [] (const SkFont& font, const std::string& text, SkTextEncoding encoding) { - return font.countText(&text[0], text.size(), encoding); + return font.countText(text.data(), text.size(), encoding); }, R"docstring( Returns number of glyphs represented by text. @@ -1380,7 +1380,7 @@ font [] (const SkFont& font, const std::string& text, SkTextEncoding encoding, SkRect* bounds, const SkPaint* paint) { return font.measureText( - &text[0], text.size(), encoding, bounds, paint); + text.data(), text.size(), encoding, bounds, paint); }, R"docstring( Returns the advance width of text. @@ -1402,7 +1402,7 @@ font .def("getWidths", [] (const SkFont& font, const std::vector& glyphs) { std::vector width(glyphs.size()); - font.getWidths({&glyphs[0], glyphs.size()}, {&width[0], width.size()}); + font.getWidths({glyphs.data(), glyphs.size()}, {width.data(), width.size()}); return width; }, R"docstring( @@ -1418,7 +1418,7 @@ font std::vector width(glyphs.size()); std::vector bounds(glyphs.size()); font.getWidthsBounds( - {&glyphs[0], glyphs.size()}, {&width[0], width.size()}, {&bounds[0], bounds.size()}, paint); + {glyphs.data(), glyphs.size()}, {width.data(), width.size()}, {bounds.data(), bounds.size()}, paint); return py::make_tuple(width, bounds); }, R"docstring( @@ -1435,7 +1435,7 @@ font [] (const SkFont& font, const std::vector& glyphs, const SkPaint* paint) { std::vector bounds(glyphs.size()); - font.getBounds({&glyphs[0], glyphs.size()}, {&bounds[0], bounds.size()}, paint); + font.getBounds({glyphs.data(), glyphs.size()}, {bounds.data(), bounds.size()}, paint); return bounds; }, R"docstring( @@ -1455,7 +1455,7 @@ font [] (const SkFont& font, const std::vector& glyphs, const SkPoint& origin) { std::vector pos(glyphs.size()); - font.getPos({&glyphs[0], glyphs.size()}, {&pos[0], pos.size()}, origin); + font.getPos({glyphs.data(), glyphs.size()}, {pos.data(), pos.size()}, origin); return pos; }, R"docstring( @@ -1473,7 +1473,7 @@ font [] (const SkFont& font, const std::vector& glyphs, const SkScalar& origin) { std::vector xpos(glyphs.size()); - font.getXPos({&glyphs[0], glyphs.size()}, {&xpos[0], xpos.size()}, origin); + font.getXPos({glyphs.data(), glyphs.size()}, {xpos.data(), xpos.size()}, origin); return xpos; }, R"docstring( diff --git a/src/skia/Matrix.cpp b/src/skia/Matrix.cpp index 5ee18616..fc3ab38b 100644 --- a/src/skia/Matrix.cpp +++ b/src/skia/Matrix.cpp @@ -1201,7 +1201,7 @@ matrix throw std::runtime_error("src and dst must have the same size"); if (src.empty()) return matrix.setPolyToPoly({nullptr, 0}, {nullptr, 0}); - return matrix.setPolyToPoly({&src[0], src.size()}, {&dst[0], dst.size()}); + return matrix.setPolyToPoly({src.data(), src.size()}, {dst.data(), dst.size()}); }, R"docstring( Sets :py:class:`Matrix` to map src to dst. @@ -1294,7 +1294,7 @@ matrix [] (const SkMatrix& matrix, std::vector& pts) { if (pts.empty()) return pts; - matrix.mapPoints({&pts[0], pts.size()}, {&pts[0], pts.size()}); + matrix.mapPoints({pts.data(), pts.size()}, {pts.data(), pts.size()}); return pts; }, R"docstring( @@ -1328,7 +1328,7 @@ matrix [] (const SkMatrix& matrix, std::vector& pts) -> py::object { if (pts.empty()) return py::cast(pts); - matrix.mapHomogeneousPoints({&pts[0], pts.size()}, {&pts[0], pts.size()}); + matrix.mapHomogeneousPoints({pts.data(), pts.size()}, {pts.data(), pts.size()}); return py::cast(pts); }, R"docstring( @@ -1357,7 +1357,7 @@ matrix if (pts.empty()) return py::cast(pts); std::vector dst(pts.size()); - matrix.mapPointsToHomogeneous({&dst[0], dst.size()}, {&pts[0], pts.size()}); + matrix.mapPointsToHomogeneous({dst.data(), dst.size()}, {pts.data(), pts.size()}); return py::cast(dst); }, R"docstring( @@ -1395,7 +1395,7 @@ matrix [] (const SkMatrix& matrix, std::vector& src) { if (src.empty()) return src; - matrix.mapVectors({&src[0], src.size()}, {&src[0], src.size()}); + matrix.mapVectors({src.data(), src.size()}, {src.data(), src.size()}); return src; }, R"docstring( diff --git a/src/skia/Path.cpp b/src/skia/Path.cpp index 00d6b55a..453a2b06 100644 --- a/src/skia/Path.cpp +++ b/src/skia/Path.cpp @@ -712,7 +712,7 @@ path if (max == 0) max = path.countVerbs(); std::vector points(max); - auto length = path.getPoints({&points[0], max}); + auto length = path.getPoints({points.data(), max}); if (length < max) points.erase(points.begin() + length, points.end()); return points; @@ -743,7 +743,7 @@ path if (max == 0) max = path.countVerbs(); std::vector verbs(max); - auto length = path.getVerbs({&verbs[0], max}); + auto length = path.getVerbs({verbs.data(), max}); if (length < max) verbs.erase(verbs.begin() + length, verbs.end()); std::vector verbs_(verbs.size()); @@ -1606,7 +1606,7 @@ path << " elements)."; throw py::value_error(stream.str()); } - return path.addRoundRect(rect, {&radii_[0], radii_.size()}, dir); + return path.addRoundRect(rect, {radii_.data(), radii_.size()}, dir); }, R"docstring( Appends :py:class:`RRect` to :py:class:`Path`, creating a new closed @@ -1660,7 +1660,7 @@ path py::arg("rrect"), py::arg("dir"), py::arg("start")) .def("addPoly", [] (SkPath& path, const std::vector& pts, bool close) { - return path.addPoly({&pts[0], pts.size()}, close); + return path.addPoly({pts.data(), pts.size()}, close); }, R"docstring( Adds contour created from pts. @@ -2035,7 +2035,7 @@ path SkScalar w, int pow2) { auto size = (1 + 2 * (1 << pow2)); std::vector pts(size); - SkPath::ConvertConicToQuads(p0, p1, p2, w, &pts[0], pow2); + SkPath::ConvertConicToQuads(p0, p1, p2, w, pts.data(), pow2); // TODO: Shall we return the return value? return pts; }, diff --git a/src/skia/PathEffect.cpp b/src/skia/PathEffect.cpp index affc3ef1..5e70d098 100644 --- a/src/skia/PathEffect.cpp +++ b/src/skia/PathEffect.cpp @@ -335,7 +335,7 @@ py::class_(m, "DashPathEffect") .def_static("Make", [] (const std::vector& intervals, SkScalar phase) { return SkDashPathEffect::Make( - {&intervals[0], intervals.size()}, phase); + {intervals.data(), intervals.size()}, phase); }, R"docstring( For example: if intervals[] = {10, 20}, count = 2, and phase = 25, this diff --git a/src/skia/Rect.cpp b/src/skia/Rect.cpp index 39f74402..6d2dcc77 100644 --- a/src/skia/Rect.cpp +++ b/src/skia/Rect.cpp @@ -868,7 +868,7 @@ py::class_(m, "Rect", R"docstring( py::arg("left"), py::arg("top"), py::arg("right"), py::arg("bottom")) .def("setBounds", [] (SkRect& rect, const std::vector& points) { - rect.setBounds({&points[0], points.size()}); + rect.setBounds({points.data(), points.size()}); }, R"docstring( Sets to bounds of :py:class:`Point` array with count entries. @@ -884,7 +884,7 @@ py::class_(m, "Rect", R"docstring( py::arg("points")) .def("setBoundsCheck", [] (SkRect& rect, const std::vector& points) { - return rect.setBoundsCheck({&points[0], points.size()}); + return rect.setBoundsCheck({points.data(), points.size()}); }, R"docstring( Sets to bounds of :py:class:`Point` array with count entries. @@ -902,7 +902,7 @@ py::class_(m, "Rect", R"docstring( py::arg("points")) .def("setBoundsNoCheck", [] (SkRect& rect, const std::vector& points) { - rect.setBoundsNoCheck({&points[0], points.size()}); + rect.setBoundsNoCheck({points.data(), points.size()}); }, R"docstring( Sets to bounds of :py:class:`Point` pts array with count entries. diff --git a/src/skia/TextBlob.cpp b/src/skia/TextBlob.cpp index 558b3c6d..3d198ac6 100644 --- a/src/skia/TextBlob.cpp +++ b/src/skia/TextBlob.cpp @@ -94,7 +94,7 @@ textblob "len(text) = {} does not match len(pos) = {}").format( count, pos_.size())); return SkTextBlob::MakeFromPosText( - text.c_str(), text.size(), {&pos_[0], pos_.size()}, font, encoding); + text.c_str(), text.size(), {pos_.data(), pos_.size()}, font, encoding); }), R"docstring( Creates :py:class:`TextBlob` with a single run. @@ -286,7 +286,7 @@ textblob throw py::value_error(stream.str()); } return SkTextBlob::MakeFromPosTextH( - text.c_str(), text.size(), {&xpos_[0], xpos_.size()}, constY, font, encoding); + text.c_str(), text.size(), {xpos_.data(), xpos_.size()}, constY, font, encoding); }, R"docstring( Returns a textblob built from a single run of text with x-positions and @@ -316,7 +316,7 @@ textblob throw std::runtime_error( "text and pos must have the same number of elements."); return SkTextBlob::MakeFromPosText( - text.c_str(), text.size(), {&pos[0], pos.size()}, font, encoding); + text.c_str(), text.size(), {pos.data(), pos.size()}, font, encoding); }, R"docstring( Returns a textblob built from a single run of text with x-positions and @@ -344,7 +344,7 @@ textblob throw std::runtime_error( "text and xform must have the same number of elements."); return SkTextBlob::MakeFromRSXform( - text.c_str(), text.size(), {&xform[0], xform.size()}, font, encoding); + text.c_str(), text.size(), {xform.data(), xform.size()}, font, encoding); }, py::arg("text"), py::arg("xform"), py::arg("font"), py::arg_v("encoding", SkTextEncoding::kUTF8, "skia.TextEncoding.kUTF8")) From 39e8169eba027141e87a0f17a6fcf144ce1feb3c Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 2 Mar 2026 10:36:05 +0000 Subject: [PATCH 146/146] Addition from Copilot --- relnotes/README.m144.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/relnotes/README.m144.md b/relnotes/README.m144.md index efd367fc..ad06a825 100644 --- a/relnotes/README.m144.md +++ b/relnotes/README.m144.md @@ -11,6 +11,9 @@ Since m138: - CI: we now build for macos-14 (up from macos-13), and also python 3.14 +- Updates the project to Skia milestone m144, aligning Python + bindings/tests/CI with upstream API changes (SkSpan-based signatures, + overload disambiguation). Not user-visible. Since m143: