From 28d6041d5dce8363ad375200e32cb05d142b3404 Mon Sep 17 00:00:00 2001 From: William Candillon Date: Fri, 19 Jun 2026 19:07:49 +0200 Subject: [PATCH] :wrench: --- .github/actions/setup/action.yml | 10 +- .github/workflows/build-dawn.yml | 22 +- .github/workflows/build-npm.yml | 4 +- .github/workflows/build-skia-graphite.yml | 20 +- .github/workflows/build-skia.yml | 18 +- .github/workflows/ci-graphite.yml | 47 +- .github/workflows/ci.yml | 56 +- .github/workflows/docs.yml | 4 +- .github/workflows/test-skia-package.yml | 66 +- .github/workflows/test-skia-release.yml | 6 + .../wcandillon-build-skia-graphite.yml | 282 +++ .github/workflows/wcandillon-build-skia.yml | 188 ++ .github/workflows/wcandillon-ci-graphite.yml | 253 +++ .github/workflows/wcandillon-ci.yml | 346 ++++ .github/workflows/wcandillon-test-package.yml | 92 + .../wcandillon-test-skia-package.yml | 500 +++++ .github/workflows/wcandillon-test-windows.yml | 24 + .gitmodules | 2 +- .../docs/docs/getting-started/installation.md | 11 +- apps/docs/package.json | 4 +- ...ombined-lighting-fire-ice-ios-graphite.png | Bin 0 -> 244421 bytes .../point-lit-diffuse-ios-graphite.png | Bin 0 -> 263907 bytes .../point-lit-specular-ios-graphite.png | Bin 0 -> 325560 bytes .../spot-lit-diffuse-ios-graphite.png | Bin 0 -> 173564 bytes .../spot-lit-specular-ios-graphite.png | Bin 0 -> 159082 bytes apps/example/ios/Podfile | 21 +- apps/example/ios/Podfile.lock | 30 +- apps/example/package.json | 6 +- .../Examples/WebGPU/ImportExternalTexture.tsx | 235 +++ apps/example/src/Examples/WebGPU/List.tsx | 5 + apps/example/src/Examples/WebGPU/Routes.ts | 1 + apps/example/src/Examples/WebGPU/index.tsx | 8 + apps/example/src/Tests/Tests.tsx | 54 +- apps/example/src/Tests/useClient.ts | 13 + apps/example/tsconfig.json | 3 + apps/remotion/package.json | 2 +- apps/web-app/package.json | 4 +- externals/depot_tools | 2 +- externals/skia | 2 +- package.json | 2 +- packages/skia/.babelrc | 4 +- packages/skia/CONTRIBUTING.md | 110 +- packages/skia/android/CMakeLists.txt | 12 +- packages/skia/android/build.gradle | 25 +- .../RNSkAndroidPlatformContext.h | 62 + .../SkiaWebGPUViewManagerDelegate.java | 35 + .../SkiaWebGPUViewManagerInterface.java | 17 + .../skia/apple/RNSkApplePlatformContext.h | 2 + .../skia/apple/RNSkApplePlatformContext.mm | 71 + .../skia/apple/RNWebGPUAppleNativeBuffer.mm | 33 + packages/skia/cpp/api/JsiNativeBuffer.h | 10 +- packages/skia/cpp/api/JsiSkAnimatedImage.h | 2 +- .../skia/cpp/api/JsiSkAnimatedImageFactory.h | 2 +- packages/skia/cpp/api/JsiSkApi.h | 6 +- packages/skia/cpp/api/JsiSkCanvas.h | 35 +- packages/skia/cpp/api/JsiSkColor.h | 2 +- packages/skia/cpp/api/JsiSkDataFactory.h | 4 +- packages/skia/cpp/api/JsiSkFont.h | 2 +- packages/skia/cpp/api/JsiSkFontMgr.h | 2 +- packages/skia/cpp/api/JsiSkHostObjects.h | 6 +- packages/skia/cpp/api/JsiSkImage.h | 22 +- packages/skia/cpp/api/JsiSkImageFactory.h | 4 +- packages/skia/cpp/api/JsiSkPath.h | 2 +- packages/skia/cpp/api/JsiSkPathFactory.h | 2 +- packages/skia/cpp/api/JsiSkSkottie.h | 2 +- packages/skia/cpp/api/JsiSkSurface.h | 24 +- packages/skia/cpp/api/JsiSkTypeface.h | 2 +- .../skia/cpp/api/JsiSkTypefaceFontProvider.h | 2 +- packages/skia/cpp/api/JsiSkiaContext.h | 4 +- packages/skia/cpp/api/JsiTextureInfo.h | 2 +- packages/skia/cpp/api/JsiVideo.h | 4 +- packages/skia/cpp/api/recorder/Convertor.h | 2 +- packages/skia/cpp/api/recorder/Drawings.h | 2 +- packages/skia/cpp/api/recorder/JsiRecorder.h | 8 +- packages/skia/cpp/api/recorder/RNRecorder.h | 2 +- .../skia/cpp/api/third_party/SkottieUtils.cpp | 2 +- packages/skia/cpp/api/third_party/base64.cpp | 2 +- packages/skia/cpp/jsi/JsiHostObject.cpp | 12 +- packages/skia/cpp/jsi/JsiPromises.h | 2 +- packages/skia/cpp/jsi/ViewProperty.h | 2 +- packages/skia/cpp/rnskia/RNDawnContext.h | 13 + packages/skia/cpp/rnskia/RNDawnUtils.h | 12 +- packages/skia/cpp/rnskia/RNSkJsiViewApi.h | 4 +- packages/skia/cpp/rnskia/RNSkManager.cpp | 90 +- packages/skia/cpp/rnskia/RNSkPictureView.h | 8 +- .../skia/cpp/rnskia/RNSkPlatformContext.h | 7 + packages/skia/cpp/rnskia/RNSkView.h | 15 +- packages/skia/cpp/rnwgpu/ArrayBuffer.h | 58 +- .../skia/cpp/rnwgpu/api/AppleNativeBuffer.h | 22 + packages/skia/cpp/rnwgpu/api/Convertors.h | 44 +- packages/skia/cpp/rnwgpu/api/GPU.cpp | 3 - packages/skia/cpp/rnwgpu/api/GPUAdapter.cpp | 44 +- packages/skia/cpp/rnwgpu/api/GPUBuffer.h | 2 +- packages/skia/cpp/rnwgpu/api/GPUDevice.cpp | 90 +- packages/skia/cpp/rnwgpu/api/GPUDevice.h | 12 + .../cpp/rnwgpu/api/GPUExternalTexture.cpp | 139 ++ .../skia/cpp/rnwgpu/api/GPUExternalTexture.h | 54 +- packages/skia/cpp/rnwgpu/api/GPUQueue.cpp | 95 +- .../skia/cpp/rnwgpu/api/GPUShaderModule.cpp | 2 +- .../skia/cpp/rnwgpu/api/GPUSharedFence.cpp | 80 + packages/skia/cpp/rnwgpu/api/GPUSharedFence.h | 53 + .../cpp/rnwgpu/api/GPUSharedTextureMemory.cpp | 135 ++ .../cpp/rnwgpu/api/GPUSharedTextureMemory.h | 75 + packages/skia/cpp/rnwgpu/api/ImageBitmap.h | 62 + .../skia/cpp/rnwgpu/api/NativeBufferUtils.h | 87 + .../api/descriptors/GPUBindGroupEntry.h | 5 +- .../api/descriptors/GPUCanvasConfiguration.h | 2 +- .../descriptors/GPUDawnTogglesDescriptor.h | 56 + .../api/descriptors/GPUDeviceDescriptor.h | 10 + .../GPUExternalTextureDescriptor.h | 67 +- .../descriptors/GPUImageCopyExternalImage.h | 18 +- .../api/descriptors/GPUImageCopyTexture.h | 2 +- .../descriptors/GPUImageCopyTextureTagged.h | 4 +- .../descriptors/GPUSharedFenceDescriptor.h | 58 + .../api/descriptors/GPUSharedFenceState.h | 51 + .../GPUSharedTextureMemoryDescriptor.h | 73 + .../api/descriptors/GPUTextureDescriptor.h | 2 +- .../descriptors/GPUUncapturedErrorEventInit.h | 2 +- packages/skia/package.json | 28 +- packages/skia/react-native-skia.podspec | 66 +- packages/skia/scripts/build-skia.ts | 15 +- .../skia/scripts/graphite-drawatlas.patch | 57 + packages/skia/scripts/install-libs.js | 173 -- .../skia/scripts/install-skia-graphite.ts | 14 +- packages/skia/scripts/install-skia.ts | 55 + packages/skia/scripts/skia-configuration.ts | 4 + packages/skia/src/__tests__/globalSetup.ts | 10 +- packages/skia/src/__tests__/setup.ts | 19 +- .../__tests__/snapshots/platform-buffer.png | Bin 95379 -> 144440 bytes .../__tests__/e2e/ArrayBuffer.spec.tsx | 79 + .../__tests__/e2e/ArrayBufferBounds.spec.tsx | 213 ++ .../__tests__/e2e/ComputeShader.spec.tsx | 274 +++ .../__tests__/e2e/DawnToggles.spec.tsx | 111 ++ .../__tests__/e2e/ErrorScope.spec.tsx | 89 + .../__tests__/e2e/ExternalTexture.spec.tsx | 234 +++ .../__tests__/e2e/ImageBitmap.spec.tsx | 82 + .../__tests__/e2e/ImageBitmapBounds.spec.tsx | 94 + .../e2e/ImportExternalTexture.spec.tsx | 325 +++ .../e2e/SharedTextureMemory.spec.tsx | 305 +++ .../skia/src/renderer/__tests__/setup.tsx | 76 +- .../types/NativeBuffer/NativeBufferFactory.ts | 11 +- packages/skia/src/skia/types/WebGPU.ts | 186 ++ packages/skia/src/skia/types/index.ts | 1 + .../src/skia/web/JsiSkNativeBufferFactory.ts | 20 + packages/skia/src/skia/web/JsiSkPath.ts | 10 +- yarn.lock | 1742 ++++++++++++++--- 146 files changed, 7918 insertions(+), 820 deletions(-) create mode 100644 .github/workflows/wcandillon-build-skia-graphite.yml create mode 100644 .github/workflows/wcandillon-build-skia.yml create mode 100644 .github/workflows/wcandillon-ci-graphite.yml create mode 100644 .github/workflows/wcandillon-ci.yml create mode 100644 .github/workflows/wcandillon-test-package.yml create mode 100644 .github/workflows/wcandillon-test-skia-package.yml create mode 100644 .github/workflows/wcandillon-test-windows.yml create mode 100644 apps/docs/static/img/lighting-image-filters/combined-lighting-fire-ice-ios-graphite.png create mode 100644 apps/docs/static/img/lighting-image-filters/point-lit-diffuse-ios-graphite.png create mode 100644 apps/docs/static/img/lighting-image-filters/point-lit-specular-ios-graphite.png create mode 100644 apps/docs/static/img/lighting-image-filters/spot-lit-diffuse-ios-graphite.png create mode 100644 apps/docs/static/img/lighting-image-filters/spot-lit-specular-ios-graphite.png create mode 100644 apps/example/src/Examples/WebGPU/ImportExternalTexture.tsx create mode 100644 packages/skia/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerDelegate.java create mode 100644 packages/skia/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerInterface.java create mode 100644 packages/skia/apple/RNWebGPUAppleNativeBuffer.mm create mode 100644 packages/skia/cpp/rnwgpu/api/AppleNativeBuffer.h create mode 100644 packages/skia/cpp/rnwgpu/api/GPUExternalTexture.cpp create mode 100644 packages/skia/cpp/rnwgpu/api/GPUSharedFence.cpp create mode 100644 packages/skia/cpp/rnwgpu/api/GPUSharedFence.h create mode 100644 packages/skia/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp create mode 100644 packages/skia/cpp/rnwgpu/api/GPUSharedTextureMemory.h create mode 100644 packages/skia/cpp/rnwgpu/api/ImageBitmap.h create mode 100644 packages/skia/cpp/rnwgpu/api/NativeBufferUtils.h create mode 100644 packages/skia/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h create mode 100644 packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h create mode 100644 packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h create mode 100644 packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h create mode 100644 packages/skia/scripts/graphite-drawatlas.patch delete mode 100755 packages/skia/scripts/install-libs.js create mode 100644 packages/skia/scripts/install-skia.ts create mode 100644 packages/skia/src/renderer/__tests__/e2e/ArrayBuffer.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/ArrayBufferBounds.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/ComputeShader.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/DawnToggles.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/ErrorScope.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/ExternalTexture.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/ImageBitmap.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/ImageBitmapBounds.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/ImportExternalTexture.spec.tsx create mode 100644 packages/skia/src/renderer/__tests__/e2e/SharedTextureMemory.spec.tsx create mode 100644 packages/skia/src/skia/types/WebGPU.ts diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 219ddedc10..3b3bc160cc 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -5,10 +5,6 @@ inputs: github_token: description: 'GitHub Token' required: false - download_skia: - description: 'Download Skia Binary Artifacts' - required: false - default: 'true' graphite: description: 'Use Graphite Skia Build' required: false @@ -32,13 +28,11 @@ runs: - name: Install dependencies run: yarn install --immutable shell: bash - env: - SKIP_SKIA_DOWNLOAD: ${{ inputs.download_skia == 'false' && '1' || '' }} - - name: Copy Skia headers (standard build) + - name: Install Skia (standard build) if: inputs.graphite != 'true' working-directory: packages/skia - run: yarn copy-skia-headers + run: yarn install-skia shell: bash - name: Install Skia Graphite diff --git a/.github/workflows/build-dawn.yml b/.github/workflows/build-dawn.yml index fd05ad5eb1..a4e2216c21 100644 --- a/.github/workflows/build-dawn.yml +++ b/.github/workflows/build-dawn.yml @@ -7,7 +7,7 @@ concurrency: cancel-in-progress: true env: - DAWN_BRANCH: chromium/7770 # Configure the Dawn branch to checkout + DAWN_BRANCH: chromium/7849 # Configure the Dawn branch to checkout jobs: prepare-release: @@ -19,7 +19,7 @@ jobs: release_name: ${{ steps.release_meta.outputs.release_name }} steps: - name: Checkout repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6.0.3 - name: Determine Dawn branch metadata id: dawn_meta @@ -45,7 +45,7 @@ jobs: - name: Create GitHub release id: create_release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -92,7 +92,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout main repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6.0.3 - name: Checkout Dawn repository run: | @@ -100,7 +100,7 @@ jobs: - name: Setup Android NDK id: setup-ndk - uses: nttld/setup-ndk@v1 + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 with: ndk-version: r27d @@ -117,6 +117,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=OFF \ -DDAWN_BUILD_MONOLITHIC_LIBRARY=SHARED \ + -DDAWN_BUILD_PROTOBUF=OFF \ -DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON \ -DCMAKE_EXE_LINKER_FLAGS="-llog" \ -DCMAKE_SHARED_LINKER_FLAGS="-llog -Wl,-z,max-page-size=16384" @@ -175,7 +176,7 @@ jobs: runs-on: macos-latest-large steps: - name: Checkout main repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6.0.3 - name: Checkout Dawn repository run: | @@ -183,7 +184,7 @@ jobs: # submodules: true - name: Setup Xcode - uses: maxim-lobanov/setup-xcode@v1 + uses: maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0 with: xcode-version: latest-stable @@ -200,7 +201,8 @@ jobs: -C externals/dawn/.github/workflows/dawn-ci.cmake \ -DCMAKE_TOOLCHAIN_FILE=build-tools/apple.toolchain.cmake \ ${{ matrix.cmake_args }} \ - -DCMAKE_BUILD_TYPE=Release + -DCMAKE_BUILD_TYPE=Release \ + -DDAWN_BUILD_PROTOBUF=OFF ninja -C ${{ matrix.output_dir }} - name: Upload build artifacts uses: actions/upload-artifact@v7 @@ -214,7 +216,7 @@ jobs: needs: [prepare-release, mobile-android, mobile-apple] steps: - name: Checkout main repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6.0.3 - name: Download all build artifacts uses: actions/download-artifact@v8 @@ -263,7 +265,7 @@ jobs: tar -czf dawn-headers-${TAG}.tar.gz dawn-headers - name: Upload to GitHub release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.github/workflows/build-npm.yml b/.github/workflows/build-npm.yml index 145d2c256e..f270e3fbb4 100644 --- a/.github/workflows/build-npm.yml +++ b/.github/workflows/build-npm.yml @@ -15,7 +15,7 @@ jobs: cancel-in-progress: true steps: - name: checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -38,7 +38,7 @@ jobs: NPM_CONFIG_PROVENANCE: true - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./apps/docs/build diff --git a/.github/workflows/build-skia-graphite.yml b/.github/workflows/build-skia-graphite.yml index 68fbc58bfb..dd0eefa203 100644 --- a/.github/workflows/build-skia-graphite.yml +++ b/.github/workflows/build-skia-graphite.yml @@ -15,11 +15,6 @@ on: required: false type: boolean default: false - skip_skia_download: - description: 'Skip downloading prebuilt Skia (always true for building from source)' - required: false - type: boolean - default: true jobs: prepare-release: runs-on: ubuntu-latest @@ -30,7 +25,7 @@ jobs: release_name: ${{ steps.release_meta.outputs.release_name }} steps: - name: Checkout repository - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive fetch-depth: 0 @@ -85,7 +80,7 @@ jobs: - name: Create GitHub release if: ${{ github.event.inputs.dry_run != 'true' }} id: create_release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -124,7 +119,7 @@ jobs: fail-fast: false steps: - name: checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -140,7 +135,7 @@ jobs: - name: Setup Android NDK id: setup-ndk if: startsWith(matrix.target, 'android') - uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0 + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 with: ndk-version: r27d @@ -149,12 +144,11 @@ jobs: run: echo "ANDROID_NDK=$ANDROID_HOME/ndk-bundle" >> $GITHUB_ENV - name: Setup Ninja - uses: seanmiddleditch/gha-setup-ninja@master + uses: seanmiddleditch/gha-setup-ninja@7e868db0f3406270dd46e1dac26c65f621456723 # master - name: Setup uses: ./.github/actions/setup with: - download_skia: ${{ github.event.inputs.skip_skia_download == 'true' && 'false' || 'true' }} github_token: ${{ secrets.GITHUB_TOKEN }} - name: Update depot_tools @@ -213,7 +207,7 @@ jobs: - name: Upload binaries to GitHub release - ${{ matrix.artifact_name }} if: ${{ github.event.inputs.dry_run != 'true' }} - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -258,7 +252,7 @@ jobs: - name: Upload Graphite Headers to GitHub release if: ${{ matrix.target == 'apple-ios' && github.event.inputs.dry_run != 'true' }} - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.github/workflows/build-skia.yml b/.github/workflows/build-skia.yml index 0bac957ac8..5b0f372cd3 100644 --- a/.github/workflows/build-skia.yml +++ b/.github/workflows/build-skia.yml @@ -11,11 +11,6 @@ on: required: false type: boolean default: false - skip_skia_download: - description: 'Skip downloading prebuilt Skia (always true for building from source)' - required: false - type: boolean - default: true jobs: prepare-release: runs-on: ubuntu-latest @@ -26,7 +21,7 @@ jobs: release_name: ${{ steps.release_meta.outputs.release_name }} steps: - name: Checkout repository - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive fetch-depth: 0 @@ -63,7 +58,7 @@ jobs: - name: Create GitHub release if: ${{ github.event.inputs.dry_run != 'true' }} id: create_release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -103,24 +98,23 @@ jobs: fail-fast: false steps: - name: checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive - name: Setup Android NDK id: setup-ndk if: startsWith(matrix.target, 'android') - uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0 + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 with: ndk-version: r27c - name: Setup Ninja - uses: seanmiddleditch/gha-setup-ninja@master + uses: seanmiddleditch/gha-setup-ninja@7e868db0f3406270dd46e1dac26c65f621456723 # master - name: Setup uses: ./.github/actions/setup with: - download_skia: ${{ github.event.inputs.skip_skia_download == 'true' && 'false' || 'true' }} github_token: ${{ secrets.GITHUB_TOKEN }} - name: Update depot_tools @@ -164,7 +158,7 @@ jobs: - name: Upload binaries to GitHub release - ${{ matrix.artifact_name }} if: ${{ github.event.inputs.dry_run != 'true' }} - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.github/workflows/ci-graphite.yml b/.github/workflows/ci-graphite.yml index bc5a0137fa..68add60d64 100644 --- a/.github/workflows/ci-graphite.yml +++ b/.github/workflows/ci-graphite.yml @@ -18,12 +18,13 @@ concurrency: jobs: build-android-graphite: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: ubuntu-latest env: TURBO_CACHE_DIR: .turbo/android steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -34,7 +35,7 @@ jobs: graphite: true - name: Free disk space - uses: jlumbroso/free-disk-space@main + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 with: tool-cache: false android: false @@ -45,7 +46,7 @@ jobs: swap-storage: true - name: Cache turborepo for Android - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ${{ env.TURBO_CACHE_DIR }} key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }} @@ -59,7 +60,7 @@ jobs: java-version: '17' - name: Install NDK - uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0 + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 id: setup-ndk with: ndk-version: r27d @@ -76,7 +77,7 @@ jobs: echo "sdk.dir=$ANDROID_HOME" > $GITHUB_WORKSPACE/apps/example/android/local.properties - name: Cache Gradle - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: | ~/.gradle/wrapper @@ -92,7 +93,7 @@ jobs: yarn turbo run build:android --concurrency 1 - name: Cache apk - uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 env: cache-name: cache-apk with: @@ -106,6 +107,7 @@ jobs: path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk test-android-graphite: + if: ${{ github.repository == 'shopify/react-native-skia' }} needs: build-android-graphite runs-on: ubuntu-latest timeout-minutes: 60 @@ -113,7 +115,7 @@ jobs: TURBO_CACHE_DIR: .turbo/android steps: - name: checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -124,7 +126,7 @@ jobs: graphite: true - name: Setup Android SDK - uses: android-actions/setup-android@v4 + uses: android-actions/setup-android@40fd30fb8d7440372e1316f5d1809ec01dcd3699 # v4.0.1 - name: Install Android SDK tools run: | @@ -141,7 +143,7 @@ jobs: - name: Restore APK id: cache-apk - uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae with: path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk key: apk-graphite-${{ github.sha }} @@ -151,7 +153,7 @@ jobs: run: E2E=true yarn start & - name: Run Android Emulator Tests - uses: reactivecircus/android-emulator-runner@v2 + uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 with: api-level: 30 arch: x86_64 @@ -168,7 +170,15 @@ jobs: adb shell monkey -p com.microsoft.reacttestapp 1 # Run tests - cd packages/skia && CI=true yarn test -i e2e/Path --testPathIgnorePatterns Paragraphs + # On Graphite we run the Path render tests plus the WebGPU specs. + # ArrayBuffer, ComputeShader, ErrorScope, ImageBitmapBounds and + # DawnToggles are pure surface.eval round-trips that assert on + # returned values. The external-texture specs (ExternalTexture, + # ImportExternalTexture, SharedTextureMemory) additionally exercise + # NativeBuffer import and GPU read-back; they self-validate via + # copyTextureToBuffer (not Skia image readPixels) and skip + # themselves where NativeBuffer/createImageBitmap are unavailable. + cd packages/skia && CI=true yarn test -i "e2e/(Path|ArrayBuffer|ComputeShader|ErrorScope|ImageBitmapBounds|DawnToggles|ExternalTexture|ImportExternalTexture|SharedTextureMemory)" --testPathIgnorePatterns Paragraphs - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 if: failure() @@ -183,12 +193,13 @@ jobs: name: tests-docs-screenshots build-test-ios-graphite: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: macos-latest-xlarge env: TURBO_CACHE_DIR: .turbo/ios steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -199,7 +210,7 @@ jobs: graphite: true - name: Cache turborepo for iOS - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ${{ env.TURBO_CACHE_DIR }} key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }} @@ -228,4 +239,12 @@ jobs: - name: Run e2e tests working-directory: packages/skia - run: CI=true E2E=true yarn test -i Paths + # On Graphite we run the Paths render test plus the WebGPU specs. + # ArrayBuffer, ComputeShader, ErrorScope, ImageBitmapBounds and + # DawnToggles are pure surface.eval round-trips that assert on returned + # values. The external-texture specs (ExternalTexture, + # ImportExternalTexture, SharedTextureMemory) additionally exercise + # NativeBuffer import and GPU read-back; they self-validate via + # copyTextureToBuffer (not Skia image readPixels) and skip themselves + # where NativeBuffer/createImageBitmap are unavailable. + run: CI=true E2E=true yarn test -i "e2e/(Paths|ArrayBuffer|ComputeShader|ErrorScope|ImageBitmapBounds|DawnToggles|ExternalTexture|ImportExternalTexture|SharedTextureMemory)" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb2d86dd97..49d006f0f2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,10 +18,11 @@ concurrency: jobs: lint: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -57,10 +58,11 @@ jobs: run: yarn tsc test: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: macos-latest steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -73,12 +75,13 @@ jobs: run: yarn test build-library: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: ubuntu-latest outputs: run_id: ${{ github.run_id }} steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -109,6 +112,7 @@ jobs: YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} test-package-e2e: + if: ${{ github.repository == 'shopify/react-native-skia' }} needs: build-library uses: ./.github/workflows/test-skia-package.yml with: @@ -117,11 +121,23 @@ jobs: test_android: true test_web: true + test-package-e2e-static-frameworks: + if: ${{ github.repository == 'shopify/react-native-skia' }} + needs: build-library + uses: ./.github/workflows/test-skia-package.yml + with: + skia_version: artifact:${{ needs.build-library.outputs.run_id }} + test_ios: true + test_android: false + test_web: false + ios_use_frameworks: static + build-windows-library: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: windows-latest steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -134,12 +150,13 @@ jobs: run: yarn build build-android: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: ubuntu-latest env: TURBO_CACHE_DIR: .turbo/android steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -161,7 +178,7 @@ jobs: df -h - name: Cache turborepo for Android - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ${{ env.TURBO_CACHE_DIR }} key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }} @@ -175,7 +192,7 @@ jobs: java-version: '17' - name: Install NDK - uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0 + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 id: setup-ndk with: ndk-version: r27d @@ -192,7 +209,7 @@ jobs: echo "sdk.dir=$ANDROID_HOME" > $GITHUB_WORKSPACE/apps/example/android/local.properties - name: Cache Gradle - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: | ~/.gradle/wrapper @@ -208,7 +225,7 @@ jobs: yarn turbo run build:android --concurrency 1 - name: Cache apk - uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 env: cache-name: cache-apk with: @@ -222,6 +239,7 @@ jobs: path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk test-android: + if: ${{ github.repository == 'shopify/react-native-skia' }} needs: build-android runs-on: ubuntu-latest timeout-minutes: 60 @@ -229,7 +247,7 @@ jobs: TURBO_CACHE_DIR: .turbo/android steps: - name: checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -239,7 +257,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Android SDK - uses: android-actions/setup-android@v4 + uses: android-actions/setup-android@40fd30fb8d7440372e1316f5d1809ec01dcd3699 # v4.0.1 - name: Install Android SDK tools run: | @@ -256,7 +274,7 @@ jobs: - name: Restore APK id: cache-apk - uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae with: path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk key: apk-${{ github.sha }} @@ -266,7 +284,7 @@ jobs: run: E2E=true yarn start & - name: Run Android Emulator Tests - uses: reactivecircus/android-emulator-runner@v2 + uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 with: api-level: 30 arch: x86_64 @@ -298,12 +316,13 @@ jobs: name: tests-docs-screenshots build-test-ios: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: macos-latest-xlarge env: TURBO_CACHE_DIR: .turbo/ios steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -313,7 +332,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} - name: Cache turborepo for iOS - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ${{ env.TURBO_CACHE_DIR }} key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }} @@ -345,12 +364,13 @@ jobs: run: CI=true yarn e2e build-test-macos: + if: ${{ github.repository == 'shopify/react-native-skia' }} runs-on: macos-latest env: TURBO_CACHE_DIR: .turbo/macos steps: - name: Checkout - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -360,7 +380,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} - name: Cache turborepo for macOS - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ${{ env.TURBO_CACHE_DIR }} key: ${{ runner.os }}-turborepo-macos-${{ hashFiles('yarn.lock') }} @@ -374,7 +394,7 @@ jobs: # runs-on: macos-latest # steps: # - name: Checkout - # uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + # uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 # with: # submodules: recursive diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index df3b495096..e07b30b2e0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.0 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 with: submodules: recursive @@ -26,7 +26,7 @@ jobs: yarn build - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./apps/docs/build diff --git a/.github/workflows/test-skia-package.yml b/.github/workflows/test-skia-package.yml index 07ea874ff4..0236bd1536 100644 --- a/.github/workflows/test-skia-package.yml +++ b/.github/workflows/test-skia-package.yml @@ -37,6 +37,11 @@ on: required: false type: boolean default: true + ios_use_frameworks: + description: 'iOS framework linkage: "dynamic" (default) or "static"' + required: false + type: string + default: 'dynamic' jobs: test-skia-ios: @@ -46,10 +51,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6.0.3 - name: Setup Node.js - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@v6.4.0 with: node-version: '20' @@ -58,6 +63,14 @@ jobs: corepack enable yarn --version + - name: Select latest Xcode + run: | + LATEST_XCODE=$(ls -d /Applications/Xcode_*.app | sort -V | tail -n 1) + echo "Selecting: $LATEST_XCODE" + sudo xcode-select -s "$LATEST_XCODE/Contents/Developer" + xcodebuild -version + swift --version + - name: List available simulators run: xcrun simctl list devices @@ -68,7 +81,7 @@ jobs: pwd - name: Create Expo app with Skia template - uses: nick-fields/retry@v4 + uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 with: timeout_minutes: 10 max_attempts: 3 @@ -111,12 +124,6 @@ jobs: echo "Installed React Native Skia version:" yarn list @shopify/react-native-skia --depth=0 - - name: Install compatible Worklets version - working-directory: /Users/runner/skia-test-app/my-app - run: | - echo "Installing react-native-worklets@^0.7.1 for Reanimated compatibility..." - yarn add react-native-worklets@^0.7.1 - - name: Install TypeScript dependencies working-directory: /Users/runner/skia-test-app/my-app run: | @@ -129,10 +136,24 @@ jobs: echo "Installing expo-dev-client..." yarn expo install expo-dev-client + - name: Enable static frameworks (iOS) + if: inputs.ios_use_frameworks == 'static' + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Configuring expo-build-properties for useFrameworks: 'static'..." + yarn expo install expo-build-properties + node -e " + const fs = require('fs'); + const cfg = JSON.parse(fs.readFileSync('app.json', 'utf8')); + cfg.expo.plugins = cfg.expo.plugins || []; + cfg.expo.plugins.push(['expo-build-properties', { ios: { useFrameworks: 'static' } }]); + fs.writeFileSync('app.json', JSON.stringify(cfg, null, 2)); + " + - name: Prebuild native directories working-directory: /Users/runner/skia-test-app/my-app run: | - echo "Generating native iOS directory..." + echo "Generating native iOS directory (linkage: ${{ inputs.ios_use_frameworks }})..." yarn expo prebuild --platform ios - name: Install iOS dependencies @@ -188,6 +209,7 @@ jobs: echo "✓ Created Expo app with Skia template" echo "✓ Installed @shopify/react-native-skia@${{ inputs.skia_version }}" echo "✓ Installed expo-dev-client" + echo "✓ Framework linkage: ${{ inputs.ios_use_frameworks }}" echo "✓ Built and ran iOS app on ${{ inputs.simulator_device }}" echo "================================================================" @@ -198,10 +220,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6.0.3 - name: Setup Node.js - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@v6.4.0 with: node-version: '20' @@ -231,7 +253,7 @@ jobs: pwd - name: Create Expo app with Skia template - uses: nick-fields/retry@v4 + uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 with: timeout_minutes: 10 max_attempts: 3 @@ -274,12 +296,6 @@ jobs: echo "Installed React Native Skia version:" yarn list @shopify/react-native-skia --depth=0 - - name: Install compatible Worklets version - working-directory: /Users/runner/skia-test-app/my-app - run: | - echo "Installing react-native-worklets@^0.7.1 for Reanimated compatibility..." - yarn add react-native-worklets@^0.7.1 - - name: Install TypeScript dependencies working-directory: /Users/runner/skia-test-app/my-app run: | @@ -362,10 +378,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6.0.3 - name: Setup Node.js - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@v6.4.0 with: node-version: '20' @@ -381,7 +397,7 @@ jobs: pwd - name: Create Expo app with Skia template - uses: nick-fields/retry@v4 + uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 with: timeout_minutes: 10 max_attempts: 3 @@ -424,12 +440,6 @@ jobs: echo "Installed React Native Skia version:" yarn list @shopify/react-native-skia --depth=0 - - name: Install compatible Worklets version - working-directory: /Users/runner/skia-test-app/my-app - run: | - echo "Installing react-native-worklets@^0.7.1 for Reanimated compatibility..." - yarn add react-native-worklets@^0.7.1 - - name: Install TypeScript dependencies working-directory: /Users/runner/skia-test-app/my-app run: | diff --git a/.github/workflows/test-skia-release.yml b/.github/workflows/test-skia-release.yml index 712d1a9f36..75f3a1741c 100644 --- a/.github/workflows/test-skia-release.yml +++ b/.github/workflows/test-skia-release.yml @@ -38,6 +38,11 @@ on: required: false default: true type: boolean + ios_use_frameworks: + description: 'iOS framework linkage: "dynamic" (default) or "static"' + required: false + default: 'dynamic' + type: string jobs: test-skia: @@ -50,3 +55,4 @@ jobs: simulator_device: ${{ inputs.simulator_device }} android_api_level: ${{ inputs.android_api_level }} android_device: ${{ inputs.android_device }} + ios_use_frameworks: ${{ inputs.ios_use_frameworks }} diff --git a/.github/workflows/wcandillon-build-skia-graphite.yml b/.github/workflows/wcandillon-build-skia-graphite.yml new file mode 100644 index 0000000000..819245644b --- /dev/null +++ b/.github/workflows/wcandillon-build-skia-graphite.yml @@ -0,0 +1,282 @@ +# OWNER: wcandillon/react-native-skia +# RUNNER: self-hosted macOS. Shares the `wcandillon-self-hosted-macos-build` +# concurrency group with wcandillon-build-skia so the two never build in +# parallel on the single runner. The build matrix runs one target at a time +# (max-parallel: 1) for the same reason. +name: wcandillon - Build SKIA Graphite +on: + workflow_dispatch: + inputs: + skia_branch: + description: 'Skia branch to build (e.g., chrome/m144). Leave empty to use default submodule branch.' + required: false + default: '' + tag_suffix: + description: 'Optional suffix to append to tag (e.g., "a" for skia-graphite-m144a)' + required: false + default: '' + dry_run: + description: 'Test build only - skip GitHub release creation and upload' + required: false + type: boolean + default: false + +concurrency: + group: wcandillon-self-hosted-macos-build + cancel-in-progress: false + +jobs: + prepare-release: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: ubuntu-latest + outputs: + skia_branch: ${{ steps.skia_meta.outputs.branch }} + skia_branch_slug: ${{ steps.skia_meta.outputs.branch_slug }} + tag_name: ${{ steps.release_meta.outputs.tag_name }} + release_name: ${{ steps.release_meta.outputs.release_name }} + steps: + - name: Checkout repository + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + fetch-depth: 0 + + - name: Checkout custom Skia branch + if: ${{ github.event.inputs.skia_branch != '' }} + working-directory: externals/skia + run: | + echo "Checking out Skia branch: ${{ github.event.inputs.skia_branch }}" + git fetch origin ${{ github.event.inputs.skia_branch }} + git checkout FETCH_HEAD + echo "Current Skia commit: $(git rev-parse HEAD)" + + - name: Determine Skia branch + id: skia_meta + run: | + set -eo pipefail + if [ ! -d "externals/skia" ]; then + echo "::error::externals/skia not found." + exit 1 + fi + # Use input branch if provided, otherwise detect from git + if [ -n "$INPUT_SKIA_BRANCH" ]; then + branch="$INPUT_SKIA_BRANCH" + else + branch=$(git -C externals/skia branch --show-current || true) + if [ -z "$branch" ]; then + branch=$(git -C externals/skia describe --all --exact-match 2>/dev/null || true) + fi + if [ -z "$branch" ]; then + branch=$(git -C externals/skia rev-parse --short HEAD) + fi + fi + # Strip remotes/origin/chrome/ or chrome/ prefix if present + branch=${branch#remotes/origin/chrome/} + branch=${branch#chrome/} + slug=${branch//\//-} + echo "branch=$branch" >> "$GITHUB_OUTPUT" + echo "branch_slug=$slug" >> "$GITHUB_OUTPUT" + env: + INPUT_SKIA_BRANCH: ${{ github.event.inputs.skia_branch }} + - name: Compute release metadata + id: release_meta + run: | + tag="skia-graphite-${SKIA_BRANCH_SLUG}${TAG_SUFFIX}" + echo "tag_name=$tag" >> "$GITHUB_OUTPUT" + echo "release_name=Skia Graphite ${SKIA_BRANCH}${TAG_SUFFIX}" >> "$GITHUB_OUTPUT" + env: + SKIA_BRANCH: ${{ steps.skia_meta.outputs.branch }} + SKIA_BRANCH_SLUG: ${{ steps.skia_meta.outputs.branch_slug }} + TAG_SUFFIX: ${{ github.event.inputs.tag_suffix }} + - name: Create GitHub release + if: ${{ github.event.inputs.dry_run != 'true' }} + id: create_release + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.release_meta.outputs.tag_name }} + name: ${{ steps.release_meta.outputs.release_name }} + body: "Skia Graphite prebuilt binaries for version ${{ steps.skia_meta.outputs.branch }}" + draft: false + prerelease: true + generate_release_notes: false + build: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + needs: prepare-release + runs-on: [self-hosted, macOS] + strategy: + max-parallel: 1 + matrix: + include: + - target: "apple-ios" + artifact_name: "skia-graphite-apple-ios-xcframeworks" + package_root: "./packages/skia/libs/ios" + - target: "apple-macos" + artifact_name: "skia-graphite-apple-macos-xcframeworks" + package_root: "./packages/skia/libs/macos" + # Note: No apple-tvos (not supported with Graphite) + # Note: No apple-maccatalyst (not available with Graphite) + - target: "android-arm" + artifact_name: "skia-graphite-android-arm" + package_root: "./externals/skia/out/android/arm" + - target: "android-arm64" + artifact_name: "skia-graphite-android-arm-64" + package_root: "./externals/skia/out/android/arm64" + - target: "android-x86" + artifact_name: "skia-graphite-android-arm-x86" + package_root: "./externals/skia/out/android/x86" + - target: "android-x64" + artifact_name: "skia-graphite-android-arm-x64" + package_root: "./externals/skia/out/android/x64" + fail-fast: false + steps: + - name: checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Checkout custom Skia branch + if: ${{ github.event.inputs.skia_branch != '' }} + working-directory: externals/skia + run: | + echo "Checking out Skia branch: ${{ github.event.inputs.skia_branch }}" + git fetch origin ${{ github.event.inputs.skia_branch }} + git checkout FETCH_HEAD + echo "Current Skia commit: $(git rev-parse HEAD)" + + - name: Setup Android NDK + id: setup-ndk + if: startsWith(matrix.target, 'android') + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 + with: + ndk-version: r27d + + - name: Set ANDROID_NDK + if: startsWith(matrix.target, 'android') + run: echo "ANDROID_NDK=$ANDROID_HOME/ndk-bundle" >> $GITHUB_ENV + + - name: Setup Ninja + uses: seanmiddleditch/gha-setup-ninja@7e868db0f3406270dd46e1dac26c65f621456723 # master + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Update depot_tools + working-directory: ./externals/depot_tools + run: ./update_depot_tools + + - name: Apply Dawn patch + run: | + DAWN_GNI_FILE="./externals/skia/build_overrides/dawn.gni" + if [ -f "$DAWN_GNI_FILE" ]; then + echo "Applying patch to dawn.gni..." + # Remove the specified lines from the end of the file + sed -i.bak '/# PartitionAlloc is an optional dependency:/,$d' "$DAWN_GNI_FILE" + echo "Patch applied successfully." + echo "Modified dawn.gni content:" + cat "$DAWN_GNI_FILE" + else + echo "Warning: dawn.gni file not found at $DAWN_GNI_FILE" + fi + + - name: Build Skia with Graphite - ${{ matrix.target }} + working-directory: ./packages/skia + env: + ANDROID_NDK: ${{ steps.setup-ndk.outputs.ndk-path }} + GIT_SYNC_DEPS_SKIP_EMSDK: 'true' + ZERO_AR_DATE: 1 + SK_GRAPHITE: 1 + run: yarn build-skia ${{ matrix.target }} + + - name: Package binaries - ${{ matrix.artifact_name }} + id: package + run: | + set -eo pipefail + ROOT="${{ matrix.package_root }}" + BASENAME="$(basename "$ROOT")" + PARENT="$(dirname "$ROOT")" + TAG="${DISPATCH_TAG}" + if [ -z "$TAG" ]; then + TAG="${SKIA_BRANCH_SLUG}" + fi + if [ -z "$TAG" ]; then + TAG="${GITHUB_REF_NAME:-}" + fi + if [ -z "$TAG" ]; then + TAG="${GITHUB_SHA}" + fi + ARCHIVE="${{ matrix.artifact_name }}-${TAG}.tar.gz" + mkdir -p release-assets + tar -czf "release-assets/$ARCHIVE" -C "$PARENT" "$BASENAME" + echo "asset_path=release-assets/$ARCHIVE" >> "$GITHUB_OUTPUT" + echo "asset_name=$ARCHIVE" >> "$GITHUB_OUTPUT" + shell: bash + env: + DISPATCH_TAG: ${{ needs.prepare-release.outputs.tag_name }} + SKIA_BRANCH_SLUG: ${{ needs.prepare-release.outputs.skia_branch_slug }} + + - name: Upload binaries to GitHub release - ${{ matrix.artifact_name }} + if: ${{ github.event.inputs.dry_run != 'true' }} + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ needs.prepare-release.outputs.tag_name }} + files: ${{ steps.package.outputs.asset_path }} + prerelease: true + + - name: Upload binaries as workflow artifact (dry run) - ${{ matrix.artifact_name }} + if: ${{ github.event.inputs.dry_run == 'true' }} + uses: actions/upload-artifact@v7 + with: + name: ${{ matrix.artifact_name }} + path: ${{ steps.package.outputs.asset_path }} + retention-days: 7 + + - name: Package Graphite Headers + if: matrix.target == 'apple-ios' + id: package_headers + run: | + set -eo pipefail + TAG="${DISPATCH_TAG}" + if [ -z "$TAG" ]; then + TAG="${SKIA_BRANCH_SLUG}" + fi + if [ -z "$TAG" ]; then + TAG="${GITHUB_REF_NAME:-}" + fi + if [ -z "$TAG" ]; then + TAG="${GITHUB_SHA}" + fi + ARCHIVE="skia-graphite-headers-${TAG}.tar.gz" + mkdir -p release-assets + tar -czf "release-assets/$ARCHIVE" \ + ./packages/skia/cpp/dawn/include \ + ./packages/skia/cpp/skia/src/gpu/graphite + echo "asset_path=release-assets/$ARCHIVE" >> "$GITHUB_OUTPUT" + echo "asset_name=$ARCHIVE" >> "$GITHUB_OUTPUT" + shell: bash + env: + DISPATCH_TAG: ${{ needs.prepare-release.outputs.tag_name }} + SKIA_BRANCH_SLUG: ${{ needs.prepare-release.outputs.skia_branch_slug }} + + - name: Upload Graphite Headers to GitHub release + if: ${{ matrix.target == 'apple-ios' && github.event.inputs.dry_run != 'true' }} + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ needs.prepare-release.outputs.tag_name }} + files: ${{ steps.package_headers.outputs.asset_path }} + prerelease: true + + - name: Upload Graphite Headers as workflow artifact (dry run) + if: ${{ matrix.target == 'apple-ios' && github.event.inputs.dry_run == 'true' }} + uses: actions/upload-artifact@v7 + with: + name: skia-graphite-headers + path: ${{ steps.package_headers.outputs.asset_path }} + retention-days: 7 diff --git a/.github/workflows/wcandillon-build-skia.yml b/.github/workflows/wcandillon-build-skia.yml new file mode 100644 index 0000000000..4291236c5f --- /dev/null +++ b/.github/workflows/wcandillon-build-skia.yml @@ -0,0 +1,188 @@ +# OWNER: wcandillon/react-native-skia +# RUNNER: self-hosted macOS. Shares the `wcandillon-self-hosted-macos-build` +# concurrency group with wcandillon-build-skia-graphite so the two never +# build in parallel on the single runner. The build matrix runs one target +# at a time (max-parallel: 1) for the same reason. +name: wcandillon - Build SKIA +on: + workflow_dispatch: + inputs: + tag_suffix: + description: 'Optional suffix to append to tag (e.g., "a" for skia-m144a)' + required: false + default: '' + dry_run: + description: 'Test build only - skip GitHub release creation and upload' + required: false + type: boolean + default: false + +concurrency: + group: wcandillon-self-hosted-macos-build + cancel-in-progress: false + +jobs: + prepare-release: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: ubuntu-latest + outputs: + skia_branch: ${{ steps.skia_meta.outputs.branch }} + skia_branch_slug: ${{ steps.skia_meta.outputs.branch_slug }} + tag_name: ${{ steps.release_meta.outputs.tag_name }} + release_name: ${{ steps.release_meta.outputs.release_name }} + steps: + - name: Checkout repository + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + fetch-depth: 0 + - name: Determine Skia branch + id: skia_meta + run: | + set -eo pipefail + if [ ! -d "externals/skia" ]; then + echo "::error::externals/skia not found." + exit 1 + fi + branch=$(git -C externals/skia branch --show-current || true) + if [ -z "$branch" ]; then + branch=$(git -C externals/skia describe --all --exact-match 2>/dev/null || true) + fi + if [ -z "$branch" ]; then + branch=$(git -C externals/skia rev-parse --short HEAD) + fi + # Strip remotes/origin/chrome/ prefix if present + branch=${branch#remotes/origin/chrome/} + slug=${branch//\//-} + echo "branch=$branch" >> "$GITHUB_OUTPUT" + echo "branch_slug=$slug" >> "$GITHUB_OUTPUT" + - name: Compute release metadata + id: release_meta + run: | + tag="skia-${SKIA_BRANCH_SLUG}${TAG_SUFFIX}" + echo "tag_name=$tag" >> "$GITHUB_OUTPUT" + echo "release_name=Skia ${SKIA_BRANCH}${TAG_SUFFIX}" >> "$GITHUB_OUTPUT" + env: + SKIA_BRANCH: ${{ steps.skia_meta.outputs.branch }} + SKIA_BRANCH_SLUG: ${{ steps.skia_meta.outputs.branch_slug }} + TAG_SUFFIX: ${{ github.event.inputs.tag_suffix }} + - name: Create GitHub release + if: ${{ github.event.inputs.dry_run != 'true' }} + id: create_release + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.release_meta.outputs.tag_name }} + name: ${{ steps.release_meta.outputs.release_name }} + body: "Skia prebuilt binaries for version ${{ steps.skia_meta.outputs.branch }}" + draft: false + prerelease: true + generate_release_notes: false + build: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + needs: prepare-release + runs-on: [self-hosted, macOS] + strategy: + max-parallel: 1 + matrix: + include: + - target: "apple-ios" + artifact_name: "skia-apple-ios-xcframeworks" + package_root: "./packages/skia/libs/ios" + - target: "apple-tvos" + artifact_name: "skia-apple-tvos-xcframeworks" + package_root: "./packages/skia/libs/tvos" + - target: "apple-macos" + artifact_name: "skia-apple-macos-xcframeworks" + package_root: "./packages/skia/libs/macos" + - target: "android-arm" + artifact_name: "skia-android-arm" + package_root: "./packages/skia/libs/android/armeabi-v7a" + - target: "android-arm64" + artifact_name: "skia-android-arm-64" + package_root: "./packages/skia/libs/android/arm64-v8a" + - target: "android-x86" + artifact_name: "skia-android-arm-x86" + package_root: "./packages/skia/libs/android/x86" + - target: "android-x64" + artifact_name: "skia-android-arm-x64" + package_root: "./packages/skia/libs/android/x86_64" + fail-fast: false + steps: + - name: checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup Android NDK + id: setup-ndk + if: startsWith(matrix.target, 'android') + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 + with: + ndk-version: r27c + + - name: Setup Ninja + uses: seanmiddleditch/gha-setup-ninja@7e868db0f3406270dd46e1dac26c65f621456723 # master + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Update depot_tools + working-directory: ./externals/depot_tools + run: ./update_depot_tools + + - name: Build Skia - ${{ matrix.target }} + working-directory: ./packages/skia + env: + ANDROID_NDK: ${{ steps.setup-ndk.outputs.ndk-path }} + GIT_SYNC_DEPS_SKIP_EMSDK: 'true' + ZERO_AR_DATE: 1 + run: yarn build-skia ${{ matrix.target }} + + - name: Package binaries - ${{ matrix.artifact_name }} + id: package + run: | + set -eo pipefail + ROOT="${{ matrix.package_root }}" + BASENAME="$(basename "$ROOT")" + PARENT="$(dirname "$ROOT")" + TAG="${DISPATCH_TAG}" + if [ -z "$TAG" ]; then + TAG="${SKIA_BRANCH_SLUG}" + fi + if [ -z "$TAG" ]; then + TAG="${GITHUB_REF_NAME:-}" + fi + if [ -z "$TAG" ]; then + TAG="${GITHUB_SHA}" + fi + ARCHIVE="${{ matrix.artifact_name }}-${TAG}.tar.gz" + mkdir -p release-assets + tar -czf "release-assets/$ARCHIVE" -C "$PARENT" "$BASENAME" + echo "asset_path=release-assets/$ARCHIVE" >> "$GITHUB_OUTPUT" + echo "asset_name=$ARCHIVE" >> "$GITHUB_OUTPUT" + shell: bash + env: + DISPATCH_TAG: ${{ needs.prepare-release.outputs.tag_name }} + SKIA_BRANCH_SLUG: ${{ needs.prepare-release.outputs.skia_branch_slug }} + + - name: Upload binaries to GitHub release - ${{ matrix.artifact_name }} + if: ${{ github.event.inputs.dry_run != 'true' }} + uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ needs.prepare-release.outputs.tag_name }} + files: ${{ steps.package.outputs.asset_path }} + prerelease: true + + - name: Upload binaries as workflow artifact (dry run) - ${{ matrix.artifact_name }} + if: ${{ github.event.inputs.dry_run == 'true' }} + uses: actions/upload-artifact@v7 + with: + name: ${{ matrix.artifact_name }} + path: ${{ steps.package.outputs.asset_path }} + retention-days: 7 diff --git a/.github/workflows/wcandillon-ci-graphite.yml b/.github/workflows/wcandillon-ci-graphite.yml new file mode 100644 index 0000000000..d22e55ada1 --- /dev/null +++ b/.github/workflows/wcandillon-ci-graphite.yml @@ -0,0 +1,253 @@ +# OWNER: wcandillon/react-native-skia +# RUNNER: the iOS Graphite job runs on the self-hosted macOS runner; the +# Android Graphite jobs stay on GitHub-hosted Ubuntu runners. +name: wcandillon - CI Graphite +on: + push: + branches: + - main + - next + pull_request: + branches: + - main + - next + merge_group: + types: + - checks_requested + +concurrency: + group: wcandillon-${{ github.ref }}-graphite + cancel-in-progress: true + +jobs: + build-android-graphite: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: ubuntu-latest + env: + TURBO_CACHE_DIR: .turbo/android + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + graphite: true + + - name: Free disk space + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + with: + tool-cache: false + android: false + dotnet: true + haskell: true + large-packages: true + docker-images: true + swap-storage: true + + - name: Cache turborepo for Android + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ${{ env.TURBO_CACHE_DIR }} + key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-turborepo-android + + - name: Install JDK + uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 + with: + distribution: 'zulu' + java-version: '17' + + - name: Install NDK + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 + id: setup-ndk + with: + ndk-version: r27d + + - name: Set ANDROID_NDK + run: echo "ANDROID_NDK=$ANDROID_HOME/ndk-bundle" >> $GITHUB_ENV + + - name: Finalize Android SDK + run: | + /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" + + - name: Install Android SDK + run: | + echo "sdk.dir=$ANDROID_HOME" > $GITHUB_WORKSPACE/apps/example/android/local.properties + + - name: Cache Gradle + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: | + ~/.gradle/wrapper + ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('./apps/example/android/gradle/wrapper/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Build example for Android + env: + JAVA_OPTS: "-XX:MaxHeapSize=6g" + run: | + yarn turbo run build:android --concurrency 1 + + - name: Cache apk + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + env: + cache-name: cache-apk + with: + path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk + key: apk-graphite-${{ github.sha }} + + - name: Upload Android APK artifact + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 + with: + name: android-example-apk-graphite + path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk + + test-android-graphite: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + needs: build-android-graphite + runs-on: ubuntu-latest + timeout-minutes: 60 + env: + TURBO_CACHE_DIR: .turbo/android + steps: + - name: checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + graphite: true + + - name: Setup Android SDK + uses: android-actions/setup-android@40fd30fb8d7440372e1316f5d1809ec01dcd3699 # v4.0.1 + + - name: Install Android SDK tools + run: | + echo "ANDROID_HOME=$ANDROID_HOME" >> $GITHUB_ENV + echo "$ANDROID_HOME/cmdline-tools/latest/bin" >> $GITHUB_PATH + echo "$ANDROID_HOME/platform-tools" >> $GITHUB_PATH + echo "$ANDROID_HOME/emulator" >> $GITHUB_PATH + + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Restore APK + id: cache-apk + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae + with: + path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk + key: apk-graphite-${{ github.sha }} + + - name: Start Package Manager + working-directory: apps/example/ + run: E2E=true yarn start & + + - name: Run Android Emulator Tests + uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 + with: + api-level: 30 + arch: x86_64 + profile: Nexus 5X + force-avd-creation: true + emulator-options: -no-snapshot-save -no-window -gpu swangle_indirect -noaudio -no-boot-anim + disable-animations: true + script: | + # Wait for Metro bundler + sleep 10 + + # Install and launch app + adb install -r apps/example/android/app/build/outputs/apk/debug/app-debug.apk + adb shell monkey -p com.microsoft.reacttestapp 1 + + # Run tests + # On Graphite we run the Path render tests plus the WebGPU specs. + # ArrayBuffer, ComputeShader, ErrorScope, ImageBitmapBounds and + # DawnToggles are pure surface.eval round-trips that assert on + # returned values. The external-texture specs (ExternalTexture, + # ImportExternalTexture, SharedTextureMemory) additionally exercise + # NativeBuffer import and GPU read-back; they self-validate via + # copyTextureToBuffer (not Skia image readPixels) and skip + # themselves where NativeBuffer/createImageBitmap are unavailable. + cd packages/skia && CI=true yarn test -i "e2e/(Path|ArrayBuffer|ComputeShader|ErrorScope|ImageBitmapBounds|DawnToggles|ExternalTexture|ImportExternalTexture|SharedTextureMemory)" --testPathIgnorePatterns Paragraphs + + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 + if: failure() + with: + path: packages/skia/src/__tests__/snapshots/ + name: tests-snapshots-screenshots + + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 + if: failure() + with: + path: apps/docs/static/ + name: tests-docs-screenshots + + build-test-ios-graphite: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: [self-hosted, macOS] + env: + TURBO_CACHE_DIR: .turbo/ios + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + graphite: true + + - name: Cache turborepo for iOS + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ${{ env.TURBO_CACHE_DIR }} + key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-turborepo-ios- + + - name: Check turborepo cache for iOS + run: | + TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:ios --cache-dir=\"${{ env.TURBO_CACHE_DIR }}\" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status") + + if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then + echo "turbo_cache_hit=1" >> $GITHUB_ENV + fi + + - name: Install CocoaPods + working-directory: apps/example/ios + run: pod install + + - name: Start Package Manager + working-directory: apps/example + run: E2E=true yarn start & + + - name: Build example for iOS + working-directory: apps/example + run: yarn ios --simulator 'iPhone 16 Pro' + + - name: Run e2e tests + working-directory: packages/skia + # On Graphite we run the Paths render test plus the WebGPU specs. + # ArrayBuffer, ComputeShader, ErrorScope, ImageBitmapBounds and + # DawnToggles are pure surface.eval round-trips that assert on returned + # values. The external-texture specs (ExternalTexture, + # ImportExternalTexture, SharedTextureMemory) additionally exercise + # NativeBuffer import and GPU read-back; they self-validate via + # copyTextureToBuffer (not Skia image readPixels) and skip themselves + # where NativeBuffer/createImageBitmap are unavailable. + run: CI=true E2E=true yarn test -i "e2e/(Paths|ArrayBuffer|ComputeShader|ErrorScope|ImageBitmapBounds|DawnToggles|ExternalTexture|ImportExternalTexture|SharedTextureMemory)" diff --git a/.github/workflows/wcandillon-ci.yml b/.github/workflows/wcandillon-ci.yml new file mode 100644 index 0000000000..6300bcb7c8 --- /dev/null +++ b/.github/workflows/wcandillon-ci.yml @@ -0,0 +1,346 @@ +# OWNER: wcandillon/react-native-skia +# RUNNER: macOS jobs (test, build-test-ios, build-test-macos) run on the +# self-hosted macOS runner; they serialize naturally since there is a single +# runner. Ubuntu jobs stay on GitHub-hosted runners. +# NOTE: Windows build and package e2e tests are intentionally NOT part of this +# automatic CI - they are dispatched manually (see dedicated workflows). +name: wcandillon - CI +on: + push: + branches: + - main + - next + pull_request: + branches: + - main + - next + merge_group: + types: + - checks_requested + +concurrency: + group: wcandillon-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + - run: pip install cpplint + - run: cpplint --linelength=230 --filter=-legal/copyright,-whitespace/indent,-whitespace/comments,-whitespace/ending_newline,-build/include_order,-runtime/references,-readability/todo,-whitespace/blank_line,-whitespace/todo,-runtime/int,-build/c++11,-whitespace/parens --exclude=package/cpp/skia --exclude=package/apple --exclude=package/android/build --exclude=package/node_modules --recursive package + + - name: Install clang-format + run: sudo apt-get update && sudo apt-get install -y clang-format-18 + + - name: Lint files + run: yarn lint + + - name: Typecheck files + run: yarn tsc + + test: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: [self-hosted, macOS] + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Test + run: yarn test + + build-library: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: ubuntu-latest + outputs: + run_id: ${{ github.run_id }} + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Build package + run: yarn build + + - name: Pack package + working-directory: packages/skia + run: yarn pack + + - name: Upload package artifact + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 + with: + name: package-tgz + path: packages/skia/package.tgz + + - name: Build dry run release + working-directory: packages/skia + run: | + npx semantic-release --dry-run + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + build-android: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: ubuntu-latest + env: + TURBO_CACHE_DIR: .turbo/android + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Free disk space + run: | + echo "Disk usage before cleanup:" + df -h + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf /opt/hostedtoolcache/CodeQL + sudo docker image prune -af || true + sudo apt-get clean + echo "Disk usage after cleanup:" + df -h + + - name: Cache turborepo for Android + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ${{ env.TURBO_CACHE_DIR }} + key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-turborepo-android + + - name: Install JDK + uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 + with: + distribution: 'zulu' + java-version: '17' + + - name: Install NDK + uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1.6.0 + id: setup-ndk + with: + ndk-version: r27d + + - name: Set ANDROID_NDK + run: echo "ANDROID_NDK=$ANDROID_HOME/ndk-bundle" >> $GITHUB_ENV + + - name: Finalize Android SDK + run: | + /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" + + - name: Install Android SDK + run: | + echo "sdk.dir=$ANDROID_HOME" > $GITHUB_WORKSPACE/apps/example/android/local.properties + + - name: Cache Gradle + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: | + ~/.gradle/wrapper + ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('./apps/example/android/gradle/wrapper/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Build example for Android + env: + JAVA_OPTS: "-XX:MaxHeapSize=6g" + run: | + yarn turbo run build:android --concurrency 1 + + - name: Cache apk + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + env: + cache-name: cache-apk + with: + path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk + key: apk-${{ github.sha }} + + - name: Upload Android APK artifact + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 + with: + name: android-example-apk + path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk + + test-android: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + needs: build-android + runs-on: ubuntu-latest + timeout-minutes: 60 + env: + TURBO_CACHE_DIR: .turbo/android + steps: + - name: checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Setup Android SDK + uses: android-actions/setup-android@40fd30fb8d7440372e1316f5d1809ec01dcd3699 # v4.0.1 + + - name: Install Android SDK tools + run: | + echo "ANDROID_HOME=$ANDROID_HOME" >> $GITHUB_ENV + echo "$ANDROID_HOME/cmdline-tools/latest/bin" >> $GITHUB_PATH + echo "$ANDROID_HOME/platform-tools" >> $GITHUB_PATH + echo "$ANDROID_HOME/emulator" >> $GITHUB_PATH + + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Restore APK + id: cache-apk + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae + with: + path: apps/example/android/app/build/outputs/apk/debug/app-debug.apk + key: apk-${{ github.sha }} + + - name: Start Package Manager + working-directory: apps/example/ + run: E2E=true yarn start & + + - name: Run Android Emulator Tests + uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0 + with: + api-level: 30 + arch: x86_64 + profile: Nexus 5X + force-avd-creation: true + emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim + disable-animations: true + script: | + # Wait for Metro bundler + sleep 10 + + # Install and launch app + adb install -r apps/example/android/app/build/outputs/apk/debug/app-debug.apk + adb shell monkey -p com.microsoft.reacttestapp 1 + + # Run tests + cd packages/skia && CI=true yarn e2e --testPathIgnorePatterns Paragraphs + + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 + if: failure() + with: + path: packages/skia/src/__tests__/snapshots/ + name: tests-snapshots-screenshots + + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 + if: failure() + with: + path: apps/docs/static/ + name: tests-docs-screenshots + + build-test-ios: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: [self-hosted, macOS] + env: + TURBO_CACHE_DIR: .turbo/ios + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Cache turborepo for iOS + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ${{ env.TURBO_CACHE_DIR }} + key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-turborepo-ios- + + - name: Check turborepo cache for iOS + run: | + TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status") + + if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then + echo "turbo_cache_hit=1" >> $GITHUB_ENV + fi + + - name: Install CocoaPods + working-directory: apps/example/ios + run: pod install + + - name: Start Package Manager + working-directory: apps/example + run: E2E=true yarn start & + + - name: Build example for iOS + working-directory: apps/example + run: yarn ios --simulator 'iPhone 16 Pro' + + - name: Run e2e tests + working-directory: packages/skia + run: CI=true yarn e2e + + build-test-macos: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: [self-hosted, macOS] + env: + TURBO_CACHE_DIR: .turbo/macos + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Cache turborepo for macOS + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ${{ env.TURBO_CACHE_DIR }} + key: ${{ runner.os }}-turborepo-macos-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-turborepo-macos- + + - name: Build example for macOS + run: yarn turbo run build:macos --concurrency 1 diff --git a/.github/workflows/wcandillon-test-package.yml b/.github/workflows/wcandillon-test-package.yml new file mode 100644 index 0000000000..aaf4b82e74 --- /dev/null +++ b/.github/workflows/wcandillon-test-package.yml @@ -0,0 +1,92 @@ +# OWNER: wcandillon/react-native-skia +# Manual-dispatch package e2e test: builds the package from the current branch, +# then installs the resulting .tgz into a fresh Expo app and runs it on +# iOS / Android / Web. Mirrors the test-package-e2e jobs that used to live in +# CI. The macOS test jobs run on GitHub-hosted runners (see +# wcandillon-test-skia-package.yml). +name: wcandillon - Test Package +on: + workflow_dispatch: + inputs: + test_ios: + description: 'Run iOS tests' + required: false + type: boolean + default: true + test_android: + description: 'Run Android tests' + required: false + type: boolean + default: true + test_web: + description: 'Run Web tests' + required: false + type: boolean + default: true + ios_use_frameworks: + description: 'iOS framework linkage' + required: false + type: choice + options: + - dynamic + - static + default: dynamic + simulator_device: + description: 'iOS Simulator device' + required: false + default: 'iPhone 16 Pro' + type: string + android_api_level: + description: 'Android API level' + required: false + default: '30' + type: string + android_device: + description: 'Android device profile' + required: false + default: 'Nexus 5X' + type: string + +jobs: + build-library: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: ubuntu-latest + outputs: + run_id: ${{ github.run_id }} + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Build package + run: yarn build + + - name: Pack package + working-directory: packages/skia + run: yarn pack + + - name: Upload package artifact + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v6.0.0 + with: + name: package-tgz + path: packages/skia/package.tgz + + test-package-e2e: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + needs: build-library + uses: ./.github/workflows/wcandillon-test-skia-package.yml + with: + skia_version: artifact:${{ needs.build-library.outputs.run_id }} + test_ios: ${{ inputs.test_ios }} + test_android: ${{ inputs.test_android }} + test_web: ${{ inputs.test_web }} + ios_use_frameworks: ${{ inputs.ios_use_frameworks }} + simulator_device: ${{ inputs.simulator_device }} + android_api_level: ${{ inputs.android_api_level }} + android_device: ${{ inputs.android_device }} diff --git a/.github/workflows/wcandillon-test-skia-package.yml b/.github/workflows/wcandillon-test-skia-package.yml new file mode 100644 index 0000000000..c844f6dbbd --- /dev/null +++ b/.github/workflows/wcandillon-test-skia-package.yml @@ -0,0 +1,500 @@ +# OWNER: wcandillon/react-native-skia +# Fork copy of test-skia-package.yml. Only difference: the package artifact is +# downloaded from the calling repository (github.repository) instead of being +# hardcoded to Shopify/react-native-skia. Jobs run on GitHub-hosted macOS. +name: wcandillon - Test Skia Package (Reusable) + +on: + workflow_call: + inputs: + skia_version: + description: 'Skia version to test (version number, "latest", URL to .tgz, or "artifact:RUN_ID")' + required: true + type: string + test_ios: + description: 'Run iOS tests' + required: false + type: boolean + default: true + test_android: + description: 'Run Android tests' + required: false + type: boolean + default: true + simulator_device: + description: 'iOS Simulator device' + required: false + default: 'iPhone 16 Pro' + type: string + android_api_level: + description: 'Android API level' + required: false + default: '30' + type: string + android_device: + description: 'Android device profile' + required: false + default: 'Nexus 5X' + type: string + test_web: + description: 'Run Web tests' + required: false + type: boolean + default: true + ios_use_frameworks: + description: 'iOS framework linkage: "dynamic" (default) or "static"' + required: false + type: string + default: 'dynamic' + +jobs: + test-skia-ios: + if: inputs.test_ios + runs-on: macos-latest-xlarge + timeout-minutes: 30 + + steps: + - name: Checkout repository + uses: actions/checkout@v6.0.3 + + - name: Setup Node.js + uses: actions/setup-node@v6.4.0 + with: + node-version: '20' + + - name: Setup Yarn + run: | + corepack enable + yarn --version + + - name: Select latest Xcode + run: | + LATEST_XCODE=$(ls -d /Applications/Xcode_*.app | sort -V | tail -n 1) + echo "Selecting: $LATEST_XCODE" + sudo xcode-select -s "$LATEST_XCODE/Contents/Developer" + xcodebuild -version + swift --version + + - name: List available simulators + run: xcrun simctl list devices + + - name: Create test directory + run: | + mkdir -p /Users/runner/skia-test-app + cd /Users/runner/skia-test-app + pwd + + - name: Create Expo app with Skia template + uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 + with: + timeout_minutes: 10 + max_attempts: 3 + retry_wait_seconds: 120 + command: | + cd /Users/runner/skia-test-app + echo "Creating Expo app with Skia template..." + yarn create expo-app my-app -e with-skia + + - name: Download artifact package if specified + if: startsWith(inputs.skia_version, 'artifact:') + run: | + ARTIFACT_ID=$(echo "${{ inputs.skia_version }}" | sed 's/artifact://') + echo "Downloading artifact ID: $ARTIFACT_ID" + gh run download --repo ${{ github.repository }} $ARTIFACT_ID -n package-tgz -D /tmp + env: + GH_TOKEN: ${{ github.token }} + + - name: Install React Native Skia + working-directory: /Users/runner/skia-test-app/my-app + run: | + VERSION="${{ inputs.skia_version }}" + if [ "$VERSION" == "latest" ]; then + echo "Installing @shopify/react-native-skia@latest..." + yarn add @shopify/react-native-skia@latest + elif [[ "$VERSION" == artifact:* ]]; then + echo "Installing @shopify/react-native-skia from downloaded artifact..." + yarn add @shopify/react-native-skia@file:/tmp/package.tgz + elif [[ "$VERSION" == http* ]]; then + echo "Installing @shopify/react-native-skia from URL: $VERSION" + yarn add @shopify/react-native-skia@"$VERSION" + else + echo "Installing @shopify/react-native-skia@$VERSION..." + yarn add @shopify/react-native-skia@"$VERSION" + fi + + - name: Show installed Skia version + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installed React Native Skia version:" + yarn list @shopify/react-native-skia --depth=0 + + - name: Install TypeScript dependencies + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installing TypeScript dependencies..." + yarn expo install typescript @types/react + + - name: Install Expo Dev Client + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installing expo-dev-client..." + yarn expo install expo-dev-client + + - name: Enable static frameworks (iOS) + if: inputs.ios_use_frameworks == 'static' + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Configuring expo-build-properties for useFrameworks: 'static'..." + yarn expo install expo-build-properties + node -e " + const fs = require('fs'); + const cfg = JSON.parse(fs.readFileSync('app.json', 'utf8')); + cfg.expo.plugins = cfg.expo.plugins || []; + cfg.expo.plugins.push(['expo-build-properties', { ios: { useFrameworks: 'static' } }]); + fs.writeFileSync('app.json', JSON.stringify(cfg, null, 2)); + " + + - name: Prebuild native directories + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Generating native iOS directory (linkage: ${{ inputs.ios_use_frameworks }})..." + yarn expo prebuild --platform ios + + - name: Install iOS dependencies + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installing iOS dependencies..." + cd ios + pod install --repo-update + + - name: Start Metro bundler + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Starting Metro bundler in background..." + yarn expo start --dev-client & + sleep 10 + + - name: Build and run iOS app + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Building and running iOS app on simulator: ${{ inputs.simulator_device }}..." + yarn expo run:ios --device "${{ inputs.simulator_device }}" + + - name: Wait for app to launch + run: | + echo "Waiting for app to launch and stabilize..." + sleep 30 + + - name: Capture simulator screenshot + if: always() + run: | + SIMULATOR_ID=$(xcrun simctl list devices | grep "${{ inputs.simulator_device }}" | grep -E 'Booted' | head -n 1 | cut -d '(' -f 2 | cut -d ')' -f 1) + if [ -n "$SIMULATOR_ID" ]; then + echo "Capturing screenshot from simulator ID: $SIMULATOR_ID" + xcrun simctl io $SIMULATOR_ID screenshot /Users/runner/skia-test-screenshot-ios.png + else + echo "No booted simulator found" + fi + + - name: Upload screenshot + if: always() + uses: actions/upload-artifact@v7 + with: + name: ios-simulator-screenshot-${{ github.run_id }} + path: /Users/runner/skia-test-screenshot-ios.png + if-no-files-found: ignore + + - name: Print test summary + if: always() + run: | + echo "================================================================" + echo "iOS Test Summary:" + echo "================================================================" + echo "✓ Created Expo app with Skia template" + echo "✓ Installed @shopify/react-native-skia@${{ inputs.skia_version }}" + echo "✓ Installed expo-dev-client" + echo "✓ Framework linkage: ${{ inputs.ios_use_frameworks }}" + echo "✓ Built and ran iOS app on ${{ inputs.simulator_device }}" + echo "================================================================" + + test-skia-android: + if: inputs.test_android + runs-on: macos-latest-large + timeout-minutes: 60 + + steps: + - name: Checkout repository + uses: actions/checkout@v6.0.3 + + - name: Setup Node.js + uses: actions/setup-node@v6.4.0 + with: + node-version: '20' + + - name: Setup Yarn + run: | + corepack enable + yarn --version + + - name: Setup Java + uses: actions/setup-java@v5 + with: + distribution: 'zulu' + java-version: '17' + + - name: Download Android system image + run: $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "system-images;android-${{ inputs.android_api_level }};default;x86_64" + + - name: Create Android emulator + run: | + echo "Creating Android emulator..." + $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd -n test_avd --device '${{ inputs.android_device }}' --package "system-images;android-${{ inputs.android_api_level }};default;x86_64" --sdcard 512M --force + + - name: Create test directory + run: | + mkdir -p /Users/runner/skia-test-app + cd /Users/runner/skia-test-app + pwd + + - name: Create Expo app with Skia template + uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 + with: + timeout_minutes: 10 + max_attempts: 3 + retry_wait_seconds: 120 + command: | + cd /Users/runner/skia-test-app + echo "Creating Expo app with Skia template..." + yarn create expo-app my-app -e with-skia + + - name: Download artifact package if specified + if: startsWith(inputs.skia_version, 'artifact:') + run: | + ARTIFACT_ID=$(echo "${{ inputs.skia_version }}" | sed 's/artifact://') + echo "Downloading artifact ID: $ARTIFACT_ID" + gh run download --repo ${{ github.repository }} $ARTIFACT_ID -n package-tgz -D /tmp + env: + GH_TOKEN: ${{ github.token }} + + - name: Install React Native Skia + working-directory: /Users/runner/skia-test-app/my-app + run: | + VERSION="${{ inputs.skia_version }}" + if [ "$VERSION" == "latest" ]; then + echo "Installing @shopify/react-native-skia@latest..." + yarn add @shopify/react-native-skia@latest + elif [[ "$VERSION" == artifact:* ]]; then + echo "Installing @shopify/react-native-skia from downloaded artifact..." + yarn add @shopify/react-native-skia@file:/tmp/package.tgz + elif [[ "$VERSION" == http* ]]; then + echo "Installing @shopify/react-native-skia from URL: $VERSION" + yarn add @shopify/react-native-skia@"$VERSION" + else + echo "Installing @shopify/react-native-skia@$VERSION..." + yarn add @shopify/react-native-skia@"$VERSION" + fi + + - name: Show installed Skia version + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installed React Native Skia version:" + yarn list @shopify/react-native-skia --depth=0 + + - name: Install TypeScript dependencies + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installing TypeScript dependencies..." + yarn expo install typescript @types/react + + - name: Install Expo Dev Client + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installing expo-dev-client..." + yarn expo install expo-dev-client + + - name: Prebuild native directories + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Generating native Android directory..." + yarn expo prebuild --platform android + + - name: Start Android emulator + run: | + echo "Starting Android emulator in background..." + $ANDROID_HOME/emulator/emulator -memory 4096 -avd test_avd -wipe-data -no-window -gpu angle_indirect -no-snapshot -noaudio -no-boot-anim & + + - name: Wait for emulator to boot + run: | + echo "Waiting for Android emulator to boot..." + adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;' + echo "Emulator is ready" + adb devices + timeout-minutes: 10 + + - name: Start Metro bundler + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Starting Metro bundler in background..." + yarn expo start --dev-client & + sleep 10 + + - name: Build and run Android app + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Building and running Android app on emulator..." + yarn expo run:android + + - name: Wait for app to launch + run: | + echo "Waiting for app to launch and stabilize..." + sleep 120 + + - name: Capture emulator screenshot + if: always() + run: | + echo "Capturing screenshot from Android emulator..." + adb exec-out screencap -p > /Users/runner/skia-test-screenshot-android.png || echo "Failed to capture screenshot" + + - name: Upload screenshot + if: always() + uses: actions/upload-artifact@v7 + with: + name: android-emulator-screenshot-${{ github.run_id }} + path: /Users/runner/skia-test-screenshot-android.png + if-no-files-found: ignore + + - name: Print test summary + if: always() + run: | + echo "================================================================" + echo "Android Test Summary:" + echo "================================================================" + echo "✓ Created Expo app with Skia template" + echo "✓ Installed @shopify/react-native-skia@${{ inputs.skia_version }}" + echo "✓ Installed expo-dev-client" + echo "✓ Built and ran Android app on API level ${{ inputs.android_api_level }}" + echo "================================================================" + + test-skia-web: + if: inputs.test_web + runs-on: macos-latest-large + timeout-minutes: 30 + + steps: + - name: Checkout repository + uses: actions/checkout@v6.0.3 + + - name: Setup Node.js + uses: actions/setup-node@v6.4.0 + with: + node-version: '20' + + - name: Setup Yarn + run: | + corepack enable + yarn --version + + - name: Create test directory + run: | + mkdir -p /Users/runner/skia-test-app + cd /Users/runner/skia-test-app + pwd + + - name: Create Expo app with Skia template + uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0 + with: + timeout_minutes: 10 + max_attempts: 3 + retry_wait_seconds: 120 + command: | + cd /Users/runner/skia-test-app + echo "Creating Expo app with Skia template..." + yarn create expo-app my-app -e with-skia + + - name: Download artifact package if specified + if: startsWith(inputs.skia_version, 'artifact:') + run: | + ARTIFACT_ID=$(echo "${{ inputs.skia_version }}" | sed 's/artifact://') + echo "Downloading artifact ID: $ARTIFACT_ID" + gh run download --repo ${{ github.repository }} $ARTIFACT_ID -n package-tgz -D /tmp + env: + GH_TOKEN: ${{ github.token }} + + - name: Install React Native Skia + working-directory: /Users/runner/skia-test-app/my-app + run: | + VERSION="${{ inputs.skia_version }}" + if [ "$VERSION" == "latest" ]; then + echo "Installing @shopify/react-native-skia@latest..." + yarn add @shopify/react-native-skia@latest + elif [[ "$VERSION" == artifact:* ]]; then + echo "Installing @shopify/react-native-skia from downloaded artifact..." + yarn add @shopify/react-native-skia@file:/tmp/package.tgz + elif [[ "$VERSION" == http* ]]; then + echo "Installing @shopify/react-native-skia from URL: $VERSION" + yarn add @shopify/react-native-skia@"$VERSION" + else + echo "Installing @shopify/react-native-skia@$VERSION..." + yarn add @shopify/react-native-skia@"$VERSION" + fi + + - name: Show installed Skia version + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installed React Native Skia version:" + yarn list @shopify/react-native-skia --depth=0 + + - name: Install TypeScript dependencies + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Installing TypeScript dependencies..." + yarn expo install typescript @types/react + + - name: Install repo dependencies for Playwright + run: yarn install --immutable + + - name: Install Playwright dependencies + run: | + echo "Installing Playwright..." + yarn playwright install chromium + yarn playwright install-deps chromium + + - name: Start web server + working-directory: /Users/runner/skia-test-app/my-app + run: | + echo "Starting web server in background..." + yarn expo start --web & + sleep 30 + + - name: Wait for web app to be ready + run: | + echo "Waiting for web app to be accessible..." + timeout 60 bash -c 'until curl -s http://localhost:8081 > /dev/null; do sleep 2; done' || echo "Web server may not be fully ready" + echo "Waiting additional time for app to fully render..." + sleep 30 + + - name: Take screenshot + if: always() + run: | + echo "Taking screenshot of web app..." + yarn playwright screenshot http://localhost:8081 /Users/runner/skia-test-screenshot-web.png || echo "Failed to capture screenshot" + + - name: Upload screenshot + if: always() + uses: actions/upload-artifact@v7 + with: + name: web-screenshot-${{ github.run_id }} + path: /Users/runner/skia-test-screenshot-web.png + if-no-files-found: ignore + + - name: Print test summary + if: always() + run: | + echo "================================================================" + echo "Web Test Summary:" + echo "================================================================" + echo "✓ Created Expo app with Skia template" + echo "✓ Installed @shopify/react-native-skia@${{ inputs.skia_version }}" + echo "✓ Started web server" + echo "✓ Web app accessible at http://localhost:8081" + echo "================================================================" diff --git a/.github/workflows/wcandillon-test-windows.yml b/.github/workflows/wcandillon-test-windows.yml new file mode 100644 index 0000000000..ef9e44e0bd --- /dev/null +++ b/.github/workflows/wcandillon-test-windows.yml @@ -0,0 +1,24 @@ +# OWNER: wcandillon/react-native-skia +# Manual-dispatch Windows build check. Mirrors the build-windows-library job +# that used to live in CI. Runs on a GitHub-hosted windows-latest runner. +name: wcandillon - Test Windows +on: + workflow_dispatch: + +jobs: + build-windows-library: + if: ${{ github.repository == 'wcandillon/react-native-skia' }} + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v5.0.0 + with: + submodules: recursive + + - name: Setup + uses: ./.github/actions/setup + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Build package + run: yarn build diff --git a/.gitmodules b/.gitmodules index 561c25ba38..7ce029cf77 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "externals/skia"] path = externals/skia url = https://chromium.googlesource.com/skia/ - branch = chrome/m147 + branch = chrome/m150 [submodule "externals/depot_tools"] path = externals/depot_tools url = https://chromium.googlesource.com/chromium/tools/depot_tools.git diff --git a/apps/docs/docs/getting-started/installation.md b/apps/docs/docs/getting-started/installation.md index d11f7d223a..3920306319 100644 --- a/apps/docs/docs/getting-started/installation.md +++ b/apps/docs/docs/getting-started/installation.md @@ -23,16 +23,7 @@ yarn add @shopify/react-native-skia npm install @shopify/react-native-skia ``` -This package uses a `postinstall` script to copy Skia prebuilt binaries into the correct location for the native build systems. Some package managers require you to explicitly allow this script to run: - -- **Bun**: Add `@shopify/react-native-skia` to `trustedDependencies` in your `package.json`: - ```json - { - "trustedDependencies": ["@shopify/react-native-skia"] - } - ``` -- **Yarn (Berry/v2+)**: Make sure `enableScripts` is not set to `false` in `.yarnrc.yml`. -- **npm/Yarn Classic**: The postinstall script runs automatically. +The Skia prebuilt binaries are delivered as regular npm dependencies (`react-native-skia-android` and `react-native-skia-apple-*`) and are resolved automatically by the native build systems (CocoaPods on iOS/macOS/tvOS, Gradle on Android). No `postinstall` script is required, so there is nothing to allow or configure — `trustedDependencies` (Bun) or `enableScripts` (Yarn Berry) settings are not needed. ## Using Expo diff --git a/apps/docs/package.json b/apps/docs/package.json index 405f5564f3..f1d2cd5bc8 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -31,8 +31,8 @@ "react-dom": "19.0.0", "react-native": "0.83.1", "react-native-gesture-handler": "^2.24.0", - "react-native-reanimated": "^4.2.1", - "react-native-worklets": "^0.7.0", + "react-native-reanimated": "4.3.1", + "react-native-worklets": "0.8.3", "url-loader": "^4.1.1" }, "devDependencies": { diff --git a/apps/docs/static/img/lighting-image-filters/combined-lighting-fire-ice-ios-graphite.png b/apps/docs/static/img/lighting-image-filters/combined-lighting-fire-ice-ios-graphite.png new file mode 100644 index 0000000000000000000000000000000000000000..714926460c59f96088dda1015442619dc108680c GIT binary patch literal 244421 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
kkzoy|pQ^5>6dJP!Pl`dRcZnWC-4(vv<} z7_8PWZa@sKFP0p$IXn1U+aKTm%ORVDul}#2cPri{Yo>ziZTDLk7^JV>ncMNtQty%n z!={@S7tFjZ3RW711KxZ!88;ZwBJ22|Guw(iMH7DVANQ}9w8hA--#cI~x)*A`f#WHQ zGLN?mGS4lgh0i8;m4uiF?wq%tajBoX)70~t+nIc=m44l1uKPaSwa~&chyCr9bvc$X z8`JMzaX#WF;IsW*=eGnpemftLG+Ul)aN(NFV%lt8Z6G zWO95&%-of@iA%O~(UJSsb0U+i#}iMFt-pEpc>Kd-=B6Sv*I;qq@aEycxMf!SU}8qk z1KFKl1?Mc<=B^BI%w*dOk9Ot+T?jJfM6TofEk+hE3o@^8n-z7JSaIxz6V2aQ_O}}x zDx|y4z7T~R<}#f7E&2VHuV?R1y4Xh##vh(5IBa~o%RqF+VD50_+z!{mrtyv|!cXJl zCk{t$pk43n3=1;Op1$-+}!?Nwswb@%{mrA@v$xbWF39|e*f8Zwk-QxA!E7|YIHgF`f?1Ts)NRF~H zw-z0Zl}YHmZd^BN_Szm<04Jj?#M7!j8DQ~uboMRnbK^$I&RU*pYm(jnb$j7YegEvr z3<@i>#pU=BT+v;*QR{L}{2b@8|IpY((9f2Ze_j3Y>hpCuX5+E3uL@_!?9Vm4Jw?ke zep~qV+~TW2_pF|5%h%}*N4wk1H!OCU%v~?EnH`zCEqWUxtFb(HqvV8W(ksq#anGV7 zXUa+VR@ZGZHOrvaujfqOFglHcGB-_Uls=F#H!W&s z4QF2t7jTxt-(*|gohTcQ`nyHwo8M-4IDS6&rf|nzS?29XkJ--YiASPZ;iT6c%ff8x)KF9w?$&=w<<|JT~vi9DdcjIN_Y+%zWC+04C?bTf8-r$%M(FgoCk2hJ2 zn~irc_sN(Bi@Rt4ZIQRwEMqMG`{GOtQ}&zfyYbwzoHrl$$HWguU8vYWqXqdN+n64e z>ptr`aHS-NqpTIW&eqeXt$d?p`_0da#BTeEb6dI)$H(vK5c1!a+e<50soi)dgHTN-2d>$B$ua+iW8Ss+!|aW>)o=NIpCo3MT(G@6kz11UCfGNg zIh;t2I>`UX&sXnE_;C`WW!puSbcSVrg1P8zq^ww6)?RXv-U@msgKH?urvR!i@6*>v+N9-FuR=JWKnPIRtI zPIRP0x^w3xX4>rV{=C6^(bB`qMfcq8Eei5`Ci~)KndPtN>bPC4j`efh;+_{}=;4xg z!v)=0l&wV1>CvJ8xM zUtD&5atjV|;>AS1Z`Zr=J6D7@=_Tz3bN`lOY3b`$c)z#T;1D=#Jn?2HL7(f~i4(C0 z+}`xgn~#TNe#*D-wwOIXe0kPscHeMpf5NiPyY#}`{*0cBlW~1!p>G_07jp* zbs&fIkX${W|Jg0dmK$sSN_5nf%P~(7-6O8Dp5uSS+>-WZ*V#^lLWvF6VyX0%D;JD< zL1e>i`!rEGk&|=caJs?V>$$^!k55mCWJjhI9*?y?^zHG^*I%S}?!Mh#XgeqR!1eaa z<}`!F3$x*iF^k)|v42C{&+D6vv*w;iJ@LnA&k5_{#1mGsYe}94r6E)8(-Xog=+Eo4 z&UORa!ulfmUaNC%&to_l?l=&7R%yFCI;mMSsgHP~D|=*@=-)Wv4Kg!6M|s#{ZN7kS=70;0IZ_WU8)Rg8F5z#{cZZ|ACIWm(Bu$U1IUZkg<-5_kv)(WM_4n?DKV6+(e|vt+i#BlJZh@$OIKU(T`5o<6Z@?!?2M%g1vf4`e?t`sCrHTPr=uY0GT) z+odv>($&vDX+3VW)Kvg^u)BZ!Xm_9J`lpeHxzT3p7GpVyvHK?YmPgRPiKh)j?{|rg zMuQrh-3sZPJXdaUB!NSaxn(;X({sJoMiM#^$+^xzg;0OV^3aoPi1~}*`;%K<3~SLd zIXQ#k9tp&6VUuC{iLkl*_j{kO&xxG9G7gpVYs~Ay54zfg5Tx7JIdxvVvc-1KwW#jG zi_r4xzk+o) ztPe`GT6b;`iY@H+%@V&OBxEjm%(6o*MEAN&_#Dq#A<;h(2v;F?!}sYXAgM!aa#cu= zBQhj0luHxRTYE~LAnI~Yd`Sqd_ukFko(u3XiuA#+IC{VFj{9D&h4&-bT^DWBU4wo$ z8#g=9b@lPL7ULb8+}m^7p8`j(4sE~97%#peWV$SV(9h00=AYmxyYY6ZWZ!Vx>iYhO zFImfO8<$~1Xz{-Tkf8Gm4F@sq{4s2fbv-EA5KQR8h!%)fhh z|Cgc}?>{3kp=R&=3ayn}di{e^$py_?#Kr$QRKxm=R(MoYQ+=i6Dm`f@v~frx zI>kKHPj=sSHo&j+Ro9b=D6ip22(l%^bORC+Nw7gW^+9L*pYeIlIh=!MK<7eqD|Q$Z?kF(~!hN%X6@O>k zGvMm4XP0pMDIS*L$we#tw_X>Nv5Cw1nGnBidgsL^S^e=NY~viWLw4gPIb8wcH$F(e z+;!>wuE#gt?~KSvxLHQilXZK*#Ql2_VRODvb9W{(Av)j%5oR*&_%Cz$5dLK$W;G=2 z%goqz<3|t@L?3it6pu%?6^eUa&t4P$Wa*He@UZM+wG9`2=eOAVxuV&-WczIBY$Mk> zZg^qyKG|yRTW#;kC2qn6QO=uN+^%qLuWx*Xh&F&s$&#Pb2ZQVZNs8{p$ckqj8i+_b ze1`4?^6wOtc=>kydcbb@+Cg&%@G_SY$0UXDGbGA~6&Qw--X{ zxm7vdNFE4PRxd&o15n9Kee_5 zz=OKlPjv^Z=N!uHyktw5$~@bIJ2*)jaBOut#f@FIKgV8vEo3vl$GA`Nq*+S0q8jvt=ubaG8+pWg1|>eto&R3ABxoQ;kgm;4l$ zLwXD(+#Z1cuck8qu#`n3-_1Ry7y;t;7WCO8G6mW>=@P+h}-_qS$d+ej(?Y(yS8$0t4j;|gsLd9C;B%DwH}*=?9p8&?&@zR;PF{<3*@Kil7Pz@31rhJv=!YBfrbGYz5xVeAO&CXBb&rcM8Z#I6Uj8ND_Fezyeo#%=i z@->8LaHP!aRX6>(g=J6`qP=ghc?0Q28jg+}eJu=#mRX)_H$YU0#N|H1V?AmRB*^?O zNXlN6X5Q{y^PJwYc9Mc1%SK=ipL4xV^z(6~PJYqb3V({ZI{|WzxzH);d`_facjlYk zfTG&!Z^7BunJ(uzYfYo&f0$?<=$_y8mLKZhn}0Y1b%4+uq{4sX_J(r}=5`p&0(yN> z!6zVBA)HB=cQ5=TUUmeu`;8-d#U<99-%kq%Ux%Tsh4j-QmI$G*MMup=@1v4cD?1Ed z5k<-_RqGjD-z4ak-#PjYy|=9G$cy2~mn2#i{@TKXTe++>4G{KD0|Aopz!FCwz(wEY4e5j1U-KRD@ou-+YtHJI<1q| z>xRJjN`x{M0l96|I;WtJ-*ea~S-03@_VAg5=FPMF%?-hEp2MVObO*>3dw}WQ$#NF? z>4R75(+6$l^8LDuZ-4t!+}su7ES$*kOK94+78|aghC+`#;Fg2D7TkcUQetM$2hnSH z7UrTZbTVJf(iUTVHybWKoE4#J!JbVRUTytk;M3~KjwJWzsG}rqAC7t$XLOEcFzcxA zt8s*i4gFsj5K@MA1%+>k$rP6jPJ&Ny#&&57jaSh6z>4vh^*j^`kD z=H9+3x)Pp#dizA=gFV*`=Jr4In9eJCAd4UFI9jq`wGFLciW*7-`z)4vyh~osIdQv^ zT8|S*rAc@av~u*kF&$}pKZ^njas*wmXO&4m28ZP770p`>7DKCRy*!YICh3yfXhu! zTrZe{_2DK(J4zzpEQt6m8w+<6+FO!G7XO_*ERDo1 zH@xg2Q5AN0A~_bw$Y}!@2tlQvo(R$>b63UzmFp(Q5BQBYc3(Vt#9z5=G6NSvVI-eVCa&*>l!bKI`CsF3aISl|oxU`5i=gE$ED%^HD)?M_7hjAgUppQ2l*?whcsnFS5vH_71qw znK&IqWQ8raOL)}!#qhJvSDn{w(k&2?H;nIp9eu(Toe36((j#mVx$gE&6h)#!gHm0M zQJHJ(&dp(Tn(C?Li{l4w8or^q&aof9dm`FVa$sE$I_Y!t;0yF6QFIaLSF;GxYqBhT zU&`77-{Bs9b4i!Zo*`H3@eY7M_8JeT749%8+%dp7h0iv<9sl?Ee&n_F-I-1?7rNVp zAEcv8gSsMedY?{2BJkcpPV;#bdu%-Fwd?I}ll0C@&%42f0Ge}uFO}Yf>hn?S!FaQG z6G)Tze(^7n7^O$Om@v+&~+CSfa>8)i>S2(`<{mz=sm)%>q z^3_`#HcXz`Zm?zjYxT#gq4WDnybaAh3cb^E?R-?7HEa2QD|`Y|Z65n5n^VLyX*NR1 zE~7_zT`4v~9sQ9HZpv}xqa0j$^TI|*9=(FAlmQuesz1es8uKyIzEh_38a-+;dW6+R z1Un*Bm5-!yK34otKg_F1(}Ycr{wN(eFYumG{ghaSQ-_YJJ&WylB`r8H>#2gqr23~u zm(-3-UiB?I%EzUuEKxX}-1 zN|6}M;Pth5Q40UsM_=KS+1hXuR;{F(?daW{H~apt3Z#qz3OgtDO6zjpP4_GrLI^Xi7Nn|bY$x?3zG-5-U5k8Cu-^Qz(@DK_kR zAu`51^E0=6Fx`V&_849@}gRL^or&Ko{!0%9{(tpd!|08}fG_|SVlO48( zI1iq&*E+>O>+A{ZCS76`>AqqqQ&Sjtfp%)D>AW`4MC+?v8mSoLWT}(pjU{5X{WeYT zQ=#1!flC_OMo~UBnqpAaf;~5dK6_L?s>hWJ+cfkAV`KH09eu_~(!i@G=lNCF*eHhI z{?MUpmh2vU;qNmzoY${&(+;NfDpv!w-!2zPM+*7`o`F6U>W;C8c~z3#*6e|4p9N*E zy4h|h@5At+%9_*4%QPhu2Yb|Js7R28Ha+>`jHgkG>t5{mQ^dK&Nqst$hf_OK>(@U(<$7s_|W&30cS}E~c8uH&l(UqzEvjNV<0)~>0M!r)0LRBWP z8Ja`}k96{MWsUSl*X%7=%Vx@U?R46aN+zq+zabkv$trCLHd0r{`vN85bW^8dX+t~= z5fQj2n|ivOr2R{tM7LjiMmux17vMakJr%GcTl0)rq253x<^MFLux{M(l&mp+N|xGZX=tjs;Etr>iDt@9lPZzl%!`~?hb3|5)jsH~ z${MWO6EbZi*`*3I;bR4#5EEY)b1df5^6{dBpz6S`Wwe7vDSx<4F3gND<**tGkRb_li z>qhO-U2O5$lwMA1*N=cF*%Jqw(pC95?yk5*p5*%$(+Kn^N9Bq0aT#Qn z4(TTT)k(V{@uS2dR*}F{nPQL47_%r%~Rw~q1!jKFHCeCJl4oQYF2t6o*tkQE6;fzqu));17@^2Ij7E?OrX zdNN^^89!XDdOrH9pZtJKl2?6j@^P^=ENX95dPP5eBBNN`%>icW`IMpdChBpE6 z)Pi%hQVjS`$|pq|n~STr>gm=90R#xX4dgm2hozg)e8d-lr#@VYYkZ1WhRwIW@<}sX zizXzN*bRZ0luuMXGeiv}BAPt&xy$peFqSY?&nqiNI1I(Z7Gu`dGHJ~%e>1kkFW7|b zyX;bIM|VMQuv8zH2wTEoTDuN)ReH@_Q!DuxHX;vN`C7{VYQm z>84My&s~CNbHo^*3SgROgeN@l6DXiG1)oR*5@XQF#F1CSh%VV!OwoqtRNPX>WZT^G-8jj+q#!BgmD4^LaI`)Ax#F{cbstKSI|jUWqAiwm$5j*Bbc%%agVI>m4XI+P)E}|HDmXB z4t;&vL{ieew%P%>zu0CIo8^&Gh1GE4!s#pj-$w0UmcQ1w`9(9@tUNH5{L#vrc=59l z@8*S32(W>1aV~vuW=gSH`-46%Ar$bumlQN*osY`QdFglI$JHi@v#}78@+J#AY(hJL zu$B*s6SRNoKawFDYbLQZ%W50;h(iRm()XwZ6;9YHMO*_17Fgj4f_!<({MeEj9gVIX zTAp0~jiNtO|009}@>T8Q?XA5FV&6YYeZU)Ql zVfDe=cDt6J>;xNc<)t1p(P6o;4Zx+*qvdZ>#BE^NaU#r(x8a8>Glr7aPV0rdw=Gfe zh_wZeeOB3Pw}m<Fn}+{b_Rvv?wJ3OUjxq!S zpH<2lY1TN$YfjCp<1huO)lk=uP{ULfGzc=p4x=~y$HH<|xIW!GEl{U?s z&i{B|a`~z<@X_)^jWzl{qVb7ldTO*`E8i&%0XoiJT&4r)pKaoMy%<6p*(Q?uTu^Wz z*?U%b`zxO!PU?uBmG!{K4!{W`hc(3#Am1CYi!DyTLRrGeB8f#gB-G8X;L{$E&p<=- zEgzTf#0hZu7IIq|f*_6f0PTNHd(?!V-8yVUJ(5G-Vzp0E2xwDb6KqmThlH zcq~Bz3uFhJS~&*6sF@^*00k{s)(+w}Vi~DF4CkH2`Xy}NA}ItEt4L}KWyiC?bE^v-qq}Zke&#@Gy{Wj`_u{LLa>o#zGzkj^_C}&!kB8g^bz9kZN zr#0U-a0{z6h2_x)mlITFQ&l==)@U+nSb?J!D4Z?P=^MA0Ur5-zuy@V z0x(3|l($LtevOy{A$`pP*pcb?Tge~mNglZ5&d}0y z{|miQo;X^js$5zF-_tFuVEYkrUlV4+a)dfhg0P^asl%s7euTmhoDSDGTT1}vS|-cW zx(aC=-C9sn#@ky#Twem7fQ0jBVztQR&6+762WFs)DlUM=gc|)$IueqlOi5CQg;Vr2 zzWfi`QzlppOkKH65>NCtvc&MHr#x?19bS(wMxN*a^0{U=YdZLm4YgUA(rPP2I$vIH ztX=;*BD5id=SKD9CocHy^>aNk$kR5|e_4QPD8~=pm@<%RLp>4-V!^R9N~W%)3%#zP zzus_kf4mYF%&*Ys*LzaYj$ys$zG~d$o;V;5iU?s>fP)msA zPI_vBiSv&h>(!wdjvEAAl==Fkj-B-GTkLFdI zH5GmpY8TWzb1y^D2UNfj09U%=T=*?F4@$s@}`dB+e;w;9KcS^;|( z-w8<-LcIISm^+C2$9HW$1-VKrfdmBCV0jDSX(bJpk(RNL3|Q_ML@a6qG*9J^P{0WM zsDE(8kBGpzfXupYcTt`)k<>z-jl8Peh6pF`@%MvgY}MRo@#0l^2zD3o|81Xal z7^&3hKw@CPi);Q4Ui>}cr>w00E(C-rsi}HiG}2ZOGEhd~39%{Ib9x(6?~%z#@l2}N zh4P6|eMx{PXR;h|0A-3}AQ@Pxi2sJt_|IQ!k|9 zOOU7Xkf+c9EL9j5i!1Ywovvkr5qTbWv3`&$j8T6J3fI3rfp!Exw^VSNJk;OYgrhtJwe0aq~4>Q1d8i9&#dWl$XU z`K-L0SOd&?cMU^pb}1+$#@Yx36@Rw2a{v2g8KIB0|M{D@VBT?;Tj7p_rC2RIzTg1T z#ItzmOCmFq_>F_K!1~a9&xSwoDI)DbHi)y=pcp zEb3!PDky;w-bj~JQI<&erWa4CYag}njsa-6giA(gxq`|E^cic7A5Hb$vOTQ;i$Uu} zfVhomr0w?~z2)!Tr}h{A}m!Fyf?jO%3Ol4CYOsjqr^&;yTM=XfYFi)-a7SfU(>xYc zvnnP=(#IcIS($*pnOy`rOO2yb>ObgugH0q@PEmD(=iZ=lZkSS)w=h?XkvZzyyDDsiL^v2 zKV!mDGm6F5FpGLmF3q9&fM9Rn7EQ)V3p(|ff$seNfvncCGBZBYo7eP!rK){kr#Wq} zj@5pgq>2e(@*1rrD!!yPn&I?}*T@d9YgSc9kAw*&s%A;!gFNg!f{toYY?F+ngcsi+QAaViCDYWaY0?4$UDdiHZd=q8q2+AhkZP8G?Eb~rn)**wF~HI zQJhfH`ZV;07CezFsC(3+p?9!?lT?3|%6l{t*S4kyc{A9WWbd>60nETO8|sLGM9%}S zDZaK}_osl{d7gb#x&O$|JRFTVOC}XZ2ULctu=WPFsY_Cw8bGfAq#ayMqo7vqgvEFo zq>5WAXFwQ-Ikfs#o|m3K$WnSYRUlLiX0D`YKU&FdUcIXtoXPtrT;NhL?yratAJFwm zMiclAgiEMriZZFfg||_=1KV;-H)%_KEVo@BLoH#KHcreOid@^{TzOzfTBj71bEAK} z@wIWvJQYhaaTygPX7AZT#iGRI@47cQm63v~;3Y|s?pwPre2YoAx@gDckDSrEE3Z%b zZ{%B3sS@Q?!Jf9}XX;(aHE9S|E3ITxmS>8KQ*|2zRTaaPxx7+;+o4Dm!(sGf6 zy9u%x=zwTe9gYKp5gd-wgVg1AQ6@P0%4UBX}^E;#zhVRh@>jxJt;O z#Y>he7Q{1WO|*v8PAx}!R~h)RJqD?CW7Ob_WtOfTyUQ%>UieH}6Uen!mr+Lo{Bi|n zSMKzutU!&pwT%{QJ`BGkFr&&bFx7*lTxyhLr+2GuDMh-Y;$|Oma~Qk5AF$Pah&1o& zWXzo-SRZQF=CD+3(M`|-iO1gvxwio#rvbxUCf~jF&~N>1)*PQQT}pj}UA=oJTc};x zz?D|wldJUvbm||#5NWOIUAbCG-dJVDm{WyNa{;*6rSjP#s4}fPz@DcUOKmmb4470G z$pGD=rX%oG)!x-F;?_~k7I@4YA@uLctf@SJ=c|5DBu{VEi+5u!(z86|Wy`1`HvmTk z^0hET6%>EFWFTNm8G$ zZU&{aDBK9}YY2XWP27s*P8!bzjtRmKR$!>k)_j@BE0s3bDY~X&0(Lb>eH(lmq~Z|m(7pb4+tAgFyLRh$3~ zQ4=5{{Hn85n}Ig!dw=nPu`~14%_$~Mhy~8@Lcv~d-d${tBu~)&WlCKMuz&`6wgm!T z<$`ZUhPVwr1N&(I02gb3?-cw+Zy)jMmwK~M`+m2G?nMCxQ}oW%widisZmoHf_9cvi zlHa4e7i)1TV(a6)1K>HvNEpMs)K1fmeG$pg5clE9&mbVNI3~oyTEYE?Ow=)1?o2^_ zE?pms$h+WBD55wrS#{0Q693T?CfXgjl2PpZ;Z|&;=;1YhSK>dFoL_<%j$U&vpm zpX_fPTN-9H*(Q`bYBXw2<>0E zAzK2$4%k~Qi>DwvOIFl}hO29HDQsR_9SXFB1k_`zhlXg$=m{000`y{s*KG35)lKZ?6H{J&nhe(1Ejunkw7t@ad@xJ(O^c!i zF(-Lfwi8p}fy9&Wi*vU6n2BH~Av&{a?1wTlc$$J7bS1K{EaZJ0J8XQ_4 z^jZy7E~!WIJXc!;X{z$&z5E7m8!D6}160RnV{Xbasjs8ACR`j0zSxD~;JVD(Mp7F> zyea3TrVMP*lkpH1m23Nm1rca%uRzlRa$zbZvMw(IAj~MRwLEQW?c1NflR3?CD z`i96bWTFV4f6J%g9}S^LZHDbgT4k&4_bHxCN0X70E}lt_ZB8XyPZIfgs5w+35r>=YeYDhHU%>Tm1!eg zQ(vkgp{%AyAtQ^Wzm7&AB_R0^L@$ME>Hvx&x-eh?dSw+#2_+_dh7_2kryTNtxImAQ zHQ+dqe?%GLZLf?T=|SW5-=GmMp)!MoZ{QJvItTX%O}HMb1hWu&*i11BNNrU=tR*5B z;=z$Q(oTYE^_0q@YN`4W2~0%A_{(WjWxTrjfgFspGgsi!;M!36K)zvrk)5W?PUEWZ zZcG#Gona<32TzHU&A8$;EjG3ch>^SHj-D|QR9dsVB6y7l)Zh3+>PoAk)i?DTciTu9 z9Jnr&w~-%`W#L=JR?w)}R&`}4Mv{o`Y*0n6Xx2Y^tXHoyYfNm4#t)8wY2Xph^pXku zL)hnEwYHAm?V~066&RN!5K5?UVjb!(9)mQb9w3^Goy_+%t4`H^^xXdEGd$VqW~TJWLWijUm{EXrg>U5>mOF1F`^L zZ(f6opz1+ow0s}UbdxS}z+3fXfBsk^mQ-M2BL^X?$X|X-YEEw}ku+QDj;c1$9Y#+` zMx9`0X_GYz0Xv!@Q60nIAGGaIJYft;S0c}y97T2LzzAUTY(=vj6*d=SexTp&XdH~P z> z5LIO;uLde6TZ7HSRFzXIYzT0QM9Kew8ImLv69`qaLADC?m2-#MIhR%YJ7j)PMCKZQGswnY1c-S0DDRTR9)BbwsVHQPWgv@DW-`O5>erZ?BJ>f3o!nO4=o5^) zEzX}o9e*f}MomhKJq(hdj{7Aj^n5j$h>>I>emUaM@N$8#Lm5lyrnFW~P$A+4Lv5O} zZ`2gk_6lQx%M1}Rse+vjWeC$WRk{D@&qs@diNY3*r{F7tGCNIJmOcYpi$ylvS+N`8uib0Gqgtv>z39X*?gvKk9z^38DR7?i!vJ;O? zwhSc>`4k&8huZMvUA`4VyvBG#Bn>C$6(^M^?Jo)TI2eMV1M43kpj78-qQPlL0;;@6 zTr@itRI!rL9#p-2mkXxl*P(n%>@?hiNk%O7A0(=83?rR7i-uk@g*wi)`m4;i9hrzRYNr8-_6D=D+v&tP5J&p?*$njM@}WFV+FEvk&y zeePN$?i+nVy~euh+WqovkMhz7T&aEBd1T}AGHDarURC)(syJz{PG!j;i$jy@LX}~> z%|v&qVzR0QzQqERifXM>8R~Bm>Dg-MHDyL)mg1XWj3Ju*DnglAg;B6Z1(R59Dbx28;QO}mwR6dY+Y@+p1ulLI<)Vq`8c|pw2r(TrW(5D576CEOY?MZ-iRA0Td@ri315AbbV;=CPoORmV321(c%aIH z^o$%PzEU?Z=nsJog|t~;|J0TV`w_X$Bb+V33QBK4N<2d>r_a%ScK>d%wOWrJaH#tc zw8asemBEM!FL z?SM2wsfE-D5i8*{Yxj_$VmOM40Htxy)g29}M{%QKzX@g(KA7U@dJ*=sRj~o)`;*2_ z4D1Z1sV4Gf^2V0GaNVTq)lK2iTe?IO!LDL|1A$8g6_SKVD5yNpoT~}r%U?lQ(z5G9 zN5Y2wDYk0@&V3yG_}n+fD7m)YHI^1AG_8FrhX_`^TDG z3f<5!c5As%P#dpx9egIW8S~yI)D^PSn^Ce`Q`+F8A*_Ml;e(VrC4jK=Cao(OTORax z-`nvOm`#e=QCNx&D!Ok79Pa+IQVD_njdH38Q-&}u3y%8z@)dM8&;#nq#SE;y4T)g; zB-jO$Y^L5|uCU8wxufuFr?H%GR-Kmq{-<>YW{$f(IzF`>P$p8%Lw1@yrYZT6;esaA z0T<5NQyWyZ$-7mTTQui|LV2{nW+)N>3Kh5r=?GDMYPW0+`p!9neE=- zueu1tIkB^N4WTQ?mw(uxwWf-d4nC&ZS7W(K2j7Ak-A4nvRv%J>>=o@;ymPXcous-u zmZsxq-A%Rbn7PmZcOCVasd~m!oR_G=0t~cf6a%y2in&+6K|~CBel-0K{+%KZ>W6iNKT z*C>U7aYTM2TO4iDF9}9Q(%5&2b%~|g)!~yoN~6BUEW9VmyJN}XV%`3MGfC=qnxFwP zWV)n&z-x%VDpjxrzD0Rn4YY{iO4Y^cW+~WE(dDm-V(2q`qP8`arbt5M);xLGv}#S? zF<1YcIpZ7n@yh>Vjm@MEq^y+a9#Mwc@0Qb=9QLf zn!h69aU%jXLK2K9fq`b#Rn=uu7ebL^BpxtP5uxDL20|26E+mN*o`u&0MFw!y~Fn1%N@PeEA0Jm2^7KV_g z&0Pz5|D_c$*5zY_csL2WN zDpAoK5M!qGjE#^-Ooi(ZlJf%hIB=vbj!aT=a*kltHY=LBCRGoxL}q0)iB4{&YByd3 z+HJrhUS=t92_D#@xh>tiU(Qr7_+i0x0}^qT#gz}1uSd$+7-syze~cD9&?jwLC?iVC zM1UPIsK{_h*+JP92h?K38jJOO!3AxUt%pcNtr5C zcMV4uit4cXa*KjJ&vU~d2GU%}nyj@LNJ?)p0jN%6LLY`16#7vPY*-F^jqH=uPGRim z3~F+|x#}Cd-L;`AMuff~S8V-g`1_O@|h+)z)<(Szxo{yd%)^?^AhA0 zBWaJMn`nWjuqh~%YgV}KC*Zb2JZL6C)c{m}cBC0h9zo_ft7@ZJ#sZA`)DYzmhNENX zqD)wI5fC^BiJyccRbTywHGqLV^@O_JD4f8l&Y-#3dUFxnEYFbo;~KoQ$tcF^;ikV9 zuX0HjP7-K|SIHO|OiA=Dsr-^z9Ry{*MtmEpPhDA|M@;CnilM2K(_k{l(g2i46=`t2 zDdZFc@4XmxJVn|BiCu$;1n~}>x6&1s+z)LYOAq`ap z6B-pIkCw9oMmNwDX*5mkf}sR!_jf3tHIt2wHe9M)PS*nZvYB$a88_+|6b)c6zA1rv@w*SE6x?_IN%y;2@rtJ#4N`(A1Y1}H{#|3sVLzT z0->&9&Hwb!5&W*#;cKh!0b1Ko$WzV`4B`%M5*441w2=tW;<3BxTP>P!po3?v!>l_p z7=S_8izuB)QGi)vCwD=K{M6ekt%vB<1a}!2{!3&b)zNyWO8_@i~OrY4O%K(O; z7N8%Zi5@QoEZt12>BM)1j#%iQApiw%YJLTRucOjFN#J zN->gP z#RA320gndVaRw?4Af)_={EhrE%odwcW6LwRPCm85p#q;RU%-^_ zh0)b2B#lz}OzL#A^p;c}(b$3MgJNrb&Ml{Y=*Zu zH%g#6`OsEmX0+#LcHC4Gi4iN4fjLv*V`n6v`81%GVMSep2eQ;Y6uPI$p=LDCD?%Hz zau2)o*2nAoSgP0ol!g@1tvm%;&0KM&`T>TegTnT;wMp z3ZN3?ZpoMd(y~84+Mpjh!3^H5j9xj8T)6&0WrrL?aIpi}Z?##)sAiVJQufuMP4QJ^ zz!CzF)aMBYtSJH#UNFq%f+HRcyztClxzL=A$v=ZB(~V4=Q)5c4Dwo5kWbVoXm1(m> z&CIUk(V35vl$e{CHg>)SGb?C;84Ui2DJpqLnjZ`~HmEASi;gfxTE6h@tM;o`k{M|H z&6F7mod?&ln63;YDe+`>EnD2oCDNRX;x=2S#M~j}J+IxS7+3N9j7W9%ncd%g^QABO zoW!A`t_=PrzWZL)_|fok^|%?|CIwjxL!xvVqAbSFn53w_PW%vJ0WTuy)2^8 zTA~DZpA|F}{Kv95FB+mWLL{xR*7*v&7mPz%kE?2>BkfaUFg!+63z1So1PUghm`Xe_ z@j`zuG)v*6Ifem2hM?vFca2{A^Blgv7t^#zcC zh--i=se-ABO;VX@zNob3(7gAX&}OVOZB9j%ru$3swxIsGZ-4&b+77AwE=HtWBLtm5 zs>W<2u{vIWu^dZ@C%{T1RKmX`T`kfakU45TWGt%I`!|Tq3=~9!|A(q~fod{M(?w^k zJ-rJ=@9-Ju`p)KE3DS=|8>NN>>`r^9AedeH^QLKuYoZ-|u~& z_j#W8{eyry{b=N%TB2CtHoZqUl0^DLau11AOHL1kFnl1UjbQbUr-hnEelY;u4xX(| z?DQ0HOWCKue*u^KbgpM#U>9y3Di_mx(Z!3_%@fiZmkrQ}$Qxn&>m>DSyUk#+9|qe( zYTg(Le<#l$gTWdoFu>&7#Weza+0h~fl2!l3E&da$p0lV7E-kzUY6?pn2@ zIxW+6%Yht!f2@|>;BMH@ps_I)u75_oMP>Rw7~6%mueWZq0v`X5D|Y8m1BlP+6l8p4 zc5>q!c#2P}U|hf-f&Pggh!dbgQ_t(7L3pO%d!g9I?(dKO@5iMMUr2TMLWXmA*aeE) zh~5T~v=P`CB4@Q}dfXZyfkq>T5#kR*r*A7^P4T4#XY+T{=fZ!_a8%ib(UTI*Ds`M7ns&!I8VgF?xh!H2C)EwfHUE#lW{Fn|A z^)rZ^@v2Bo8g+SWF0F#i9CN$}Mu3T7nwZm$>7C>STB&Pe{bNrH{{#4{54`9CN&(Cr zPyBqm;8$D>gFfrQ zkl& zgWA@7bZ9;NXiQ>mR}8e0YQGCIIn;Ae;FziZ%;;W23&jm_VQKD2_d5(I<{s zWKnKzDMnNVNau#NwD$t*euCaNpwvht6-m}dcCl#J_%_XFH~iY)facw)%$Dm zT^QcS$POEAIMYj|qAxCTpS|R{H@MTkj+lW zyC>Vq;A5kY!dk$~A^hbgz31G+_53W1nKWsl4l?ArgB;(u2a|Pr;y4&suDXvgEzo|m z-p$V(Qyf!VIeP@f@=Eh4?>-nlz*FUrm$yfa+G&gpA65?-z24wo1I$5EP%I=U0<#dt zlIUGM!RDYgG}~DUbyGskPrP!y7ks-ylXgDVHt4v(2NuZt^TxmZI#N|P_=__?jW+*B zH>C*}|1vJ^?^6EziNnA7`af_$bH4Ipv0|*uuBxAqQ*3M1_E^M;m5TQlCvmzf1^&s4 zRZ7i7f7!Yp&VyClCw=(3?Io2mhg?ig2TA*xNaLn3$G(A5K*qbs4_wjT-r6L(Hp#9) zGMTLo*9cJRVLuQNq)~}qkd7SU(Y(8%7!R8W4K+!w3@ezWF=Q!gooiT9wB0``r^bNM ztY9v|WP@x6@rLHrW?(VL$gjF?UF7KH2n{2QTP~hz$iW9E5qCKSm-8mfk!)8+Q4;Ff zJX4R(`2zb@Z>K??pUxb_WN=-6?3FYSH4AtjUE#uhO3iKnElho?a%V(qw%Cx~G&M<_ zXq|k3{Hb$wE?xzsWOuk1nq$&!hEAzCEIWOK2rS#~H`ragOac?-$2J&XOk^btv=tE1 z2JF@kn^{f%CVhp%=3E>eMt#T+REOye6j5T}#t*pQal(mo6gg%bI8XJX5n$?slXJ17dKSn zA*)<`lJo|tD(Du#955eliU@j-4TQ?`US{H{u9|(4gwFUIwW&ELo5~>DL z4~E`(M!lRjhi}Qpq(|#^!D^y%%;LmRJd!y5-y8Et)Dfpo*Anm<?D^09g2-gz;6L6|M~H#X`*1#EFZk zc%6jTUkGES>z1T=)xB3IxAhbXE|UhEgqu;)6T`L^!uHW0yLL9q`e7pcG&P@|2~`d;=P(qTJ2Qd57pI-n&)JB^0Ytig<7KcIi) z_-)~kmrW`J)ag+%?|$RB=VJOw3`v63ZBTvE+G&Gl$UFNILiICKD}F~s0_5uK;pOAs zvPyDkzK2bi8>^3=T&Wupdoq@2KI{OdT1EaAbrd|E4KZlQzv&JBJXlokS8E``1%FWo zJ7;DEfZ4d+C|5%E#no4(&!<=5L9$%@ejnNaupSy0t^wLGM+U)VCzLv$UYhTkm88r$ zkXtyR6*;UAn**qKZfyVXUPQ5ZW=&a1zneBm}CXo?rW?P_g;oPb_ zbIJ{4+@jL7>tP+D>~f>ph4iJ_*FjaS-^?cd)$IzUf>_e7L7- zG2nWJv`^|N*TX+3H=Tj`^$rw{^c6x@j7?=6xr^Eg$}6q?WZSWc_A+l@>k(7dvr|i? zwkjym7B{RRs6}Hk^yRrm|MNPCLkXj{Ubg3g&3i$yfD@f|yl}KDZC-Y=H`Do|^Jv%G zc$0jjjrsxHS7wE#roLv?S-m|7%Jhc)rafKkufZtO&_#VUFvxs5N`Ve(4Z(j*vwvshpLNKAs>JOGQ@2$Gu3-ae3@@4KR^$+n8^{sGfh36&S`$egNL=BSWftX;OH9G_-_;y{@&3 zeYUNEcFh1RPaIhEL0DDQQ>3oGsURqg#|8d`aMdN>DpjN6gUFW(CgkCYftJ1s;e#3j z{uJ#N49i7v>2pJ>oA&EI4im$UJ*=;0jvoW$@E2EhrA6C%SXb%_F_B(=nqp_e(UuM;ShM7pz!>Ba~#U`_dYdIcIna>eUhziU`;BoJ@gL)6+|63|DW z9$A7DB=h`lj`q`SKb|b<@<9!BliA)Mf6|L@+?PN)9`XZ}_t`Ki>?Xel9){;U{)Kfj zdmn}_1s_Q!z*a~pNJ<$-yH2LTw}Pj=-MN=sCwzqbG|1BD5!7F|VLos0KvbH6b@hD9GBf!>Y8De*4W6^*t=0!w6mf*z3ajiD>5M z!L)eB7IVeEC0NvzHXXrsz2*N5`d#qto=!o$|ASDmgV#}XiHQkdEVjRt&7Zg(?i7B`hdm-&mIzhE0YjSi^@bg zcREV#Y$!_c@cUa8sU!Aukzp&AV9*KZRPJY?^xgvvyd5$-T!~{IA2LEVNIW^&(SuIp z7?|P{4`LID#x8h_a)0AnGrdY#0YvsDtFU%(GdwZE zLFVXSJ_|3L!1zHXf!d4vIt;rsI!V#$5DV$ae}e#5TQM0vWkXOyWUAb^9BfpwFwUq0 z7>9@pFzzCuNyQ;(|No&$jiE|x_t%Jd$PUt?{Mg9Y@~RVMj_T|7H27!JDlp@w;TCSM zbQ~(SQG9ALk2zW#yk?Irq|`wT!QE<=<4`cIN8-PMxNzJmTy@_nqzvUrSIP_s`~DRC z_QBzcdP+YR0aOIi2j2<$n0|aUNe;e3LNB7UJNDWP)f^);MlKL8z7P4eI|xkpFbfy6 zg_sUrZ015mKKi&2IoZ8|xy@_87M7ULE@reJ9{6D6SJuUc=NE0`^NEDuT zA(uXnT>5tfxb#;@QQZYPMJEg1DnI57w=hfz9x=(T=x1d05Wn5Ld1Nd;sihc{su33f zDIX6vEkB;IY5;Ue%G?+W(;PDYWVQHegcw&Gbd6?Wu1d2L|J=YuPPA=S za<#Jo2#SZ!i@E9Jpcf_26WyOwNx-@+e8n|?GCqYg+yd`=xHLg^F4!zh-M=DPFr?V5 zO2q51HLzKaOdFSf4AaeEHErm^pD?Wvmen%{HnF9pFE~yPl=R_2ZFuG^_!B~W{qmx! zJRgmWpG_KK9{SZ`i9xO;c!TJGh)zHd(5G06aEQ1H!dVms1_uwV4Y_vIWVnl!+Aw9r z#)l_Rf=ShgoY*z7>+ms5sTKFIIER&Bh|AK7lskFW7}qV(U`{Di5B9VR9tZXoHnWRe zc!_BW4yW~uRrsT~RK^F>rU!6m&~6k9G_H)bar>?~hLfqU!y~d@x0kKr&t?s=s>HmG ziCRBtxK5(i$0NQ952ttnjP-E11!Fc`XcO(knMnGSi|CMqqFc2aDV?WiE1hi21Pc;cMuC?O!;Je&9P$DO@dWiq?*F=N`!@Uf~{(fA^#BiR zms{fB@zBQ{CB$o@#odY75FlN6f;de4q;!dB{CC;r!D|GV@&H3&cSCc;`3`e6QCw1W zmZ0qSoIaalz0)Yo#nPgyEm1p&Dhb*wV!ueCfMUCpm@YyO>RUQ4>_2^0{m$LU9ewdD zG0$2!-(5ues2b3nPFbNu{jF)1hZjjNX@rD{NuFvY*NUwN5$Go?6IF85C|K(1Poc-W z#H@Cf3cMM8p(#6<+e)xR=ocq|@%KV-rjSWN4gi6bD+lXb)yPMNU7$38J!_CdL8n~g zfH9%Q>`)1I!Xb@nb{ug@YQCWkx;XlH$;6Arzry%fe~^a}%AW=LM}jX}7T)bz2|c7` z^ai%mX}sT19l~jM#ngw)=NIXZFEXEsptfgP<~kcq@&(Kv?DICOcQc%1imgHN0fyY} zjF`!?HU^F*lBQaIDtFR@^`Gd`%TVY|SsNAWUnPbsd;H!j%_V1Z6ifKJQ}2uVVJ^>| zl(|R37W*Z11=l^;zeuKV3Hf;YCCr950r^qxmrYrZ`|76Ls*V=z6zmsvc zR2E3S_kT9Lj`)k7zo-iF8&3X>8LSfD4^}{zCuVx<(xZb9GZSedl?0+;^?|i4if}}s z?IhDS5XVz^6pC1$@YA|ktx&i4n|(pxjgmzsV*)!+z$!?g^UR0$GgKhi4w0Hh?;F)* zmfEN&f6aQTikbxAUjGMXjES+KFsZ0Afz43s{1~HBGj(xdgb6p==06I{p~O!_V_4O7 zvLTkupJrtF^^OdF>7xd*3M__OC)cVX2Yu--DKe!$0-%7?P_Cazxg4W$R62$wR8%Du zg>Wod1=I%vH`zbNopv7r;Qx#>9fi8JnA+3He$`{Ijj;7XM8=XA$M9G!;1Yx1NX56Z zcs2vq>KIP36;W}qLuCvK|H_X)c~q$|tn^ zgK2RbRgsou>n&7bELLwHx?+!v#q}@L#uV1~vVw0%qq&NQm1;+C409B43w$Txhhqv? zou&R7#~M{#oTM6z1CGG=1^N!*psCdQI2Hb*Ogs~#O3CDumWfrv)Jf(9Y&eyIL0=rs zQJ!MOQ^qy00FK3KhFChT759Q`Tx8j51l@l+ruI~rUu88MT>Q0Z?JS*)kGh?mUxhXv zhCXE$A9l(Ee-ms53-tmt1)UAQ{L`tXdOw^Y zTDwD6>*xFVh(&g(a!|qplLGR!S3jqpsZ)W1lIpm{jaWF0`0>v%XbFH11 zCDh~T1;r)0-+SIPKehI*=T&wfnx6A?h#C%Vs6C7CuGhFbj2rm@8w-tz9_ygbuDTDY z$!3Z7yh1CBtcRE;C#o@ZL~u*N0PAt0IPXDtV|q~Bvlxu#V7YA=9q4c0Me{V|{rKKC zr|0*ze`+Ev)23kpXWJqe6@w_n#kuVyop@HCisIu_2uukquea<&W3S_4 z(zC6q9s@2C$5zaY;g{{#C08Yef}b~P!8b?K zx9D%$yT;AkSp{uf_k&-CUYlVD4|qDPp|Q|n&a_*Yj6Kh#!R>+iRWoKGc?C^czy((p za&e&MVP|o^%fgJ+>SVc^@zw*o6+Mw~WmUCl;YeC0d=v`*5mTdDMo2xvS)Fd`>GjXk zAEHCea*jNw?-4E)=D*TUZr}a#laK-(>hl)u^A`W}68t{jmN?tAU*@jI9CaVh0Rz}B z*e^<^psKNA+XXwkv(4JnCqA+ebHe)~UJbyoRY6b6wZa}U+Q&ZdD%VOFLN%2@Cu(w{ zHACK8_PkgAnc#!YMON^{C6(I(lmnNX7@Iy^ZvoeqYVB!6R@TY1j%p>&F{4yPf!vy` zEk<;PQ@)LdZULux!X>p$$Y6N7C7CTNx`Z5zUw3@WT#@iXzY_&=3)Fk!Q3tm?QvKr*hR+q504zQs z4Ow6fWOSvwq+AJy{*LDHE(jTE!r+rTc7JzI6ufZR>rWd0?;VZ z%OKRKoI1Im?f+x{u7{mgQn=`9BFRB;>-sg?{!Y}WP9rK30R=Er_XVGBc3#>|bf8#& z+Wp3;k+s>0ZIG`LlOi^U3b%%;7JQfVWT(*@6Xbyb+^^~o9L!HOm6z~cTmoSjE}*L? z>J4*X5vTz?>lrkTL^0AjZmEh=tSDj?yi#^JpNa7aKncCv33r^!pGgYYRTi*Q!eQ<4 z!pn7qKsq3jn44qVtG+nZa7wJoZ6uP@>vDbQXY8TSQIs$CtDS{P&5lAezx5HCEt;Je z!-^tRt)jP+ZN)ahqQgvY8mT{!r&tJ8Al}c0n46vaOim%ELNnfp+6X@yqSc5_ct<+E zRPO^R3*?gqMbsbXvXBC1=Zjsp)^Uk7u4zHwH>g^*-ps_nAy4Py(4F8m`h(!psSeY| zU(<`S^(b#%M#Dt+)6OqD4asjJ_n;B^bz1l&k@*)g)gB$#sepHcyEZx33c5aQO0*FJ z+3)86?L)R%d_@Q@OLpqi(h_KDY(k?Hq?nnqoMmS`Ihy}#5LQBUSyX__vBFe)3)}ZLC|F0;iYUff5iDPeo{QO68E)9o|NEZsgKy& zdwTKL6hr)defgz*i#wyDDT&D{&3%QIH?MmKcAyv5`(?3EuXL{gu`h8N9J*cp&-8OF zCpOg-Da9ZN^!=(RzavAx3pQ;h4h$8pj4IO%l__;I4xK#ct}MD<7soE8AaYZD{4Ux> zm9r9byO!nTaYDb_8;;$lE1@gq4$~_U2m@318cz3#cO&>S`UgKIU*5@|SnF6lm+y); zzhCb04BVC}=j#oAAW_E5LTus=?MI4h%G6xIi@Mb$v@LY+GhM`y>nQbOp3N zVhBMXB5cwA;>6*IS15{_w5_*4vE7C%cVzJl5n`&O0B0UD9Bp)sR4PR2qH&pbQjXYd zip(ijdsL57k0f1FeM_HQ5@l{_y2N>sZM2>6w0qmJBUTV8ZP9szOCH`<|ASb1MzXb6 z7_C@{8P)8d9fuU!;E5#q8!9UJwz2a@C)}qO27SO`@F!lj-|W1>oEMWEN=+K_bat0c zri;+|R4EA1fjSjGJ(?dqTc#8M z%!O)8N@ph@Vp8l;hI6_pGKx!J!L2sw`-rg}qZ+cDK7#me?p*%F+=|VR&MDdfcq;(2 z5Zc*|{|xaJZ@CjjxERO-G85%q^)6NA*xL2I=%Tp?E!>04MdM9o{sE8bsu)#m09hgX zlihK5y&0w1mfGIth;vGrwgrQK?&>{KIy=SvkfrAL(V}>)Bhp3$zOYYmRU;TQs{~x@ z(YQW_zod_v!T4Q_X50tU2vv+Et0`ZN$Kkknn(K9d2ROp?(i9^qgs&WZ0@8n}#$hqc z^}u!TF~yG)W33lz1}SEo(skxUp_tS->LetyV(mb|e}NAIs0$gPk={>#>dnNe;kBG; zQ}9Urz5loxc5qtnkS7n{w0Nf`JP#arwAXXTNSgdf+T7qY-Wr7LTWy)c(^P@qD z={RWM2GBrYaJ%0=RL9Zp>i*MY@MiFEQ`cie?s?b)5V=kH!i}Mz(Yx4^pR@51b3XXf zz@Hg6(92%WTkf}le?@;rf7WRwA>6^dFL+4llgUb?WbBxQk>5}Y7{W*8F`-Hc#ITDY z8I%#YdgZKVxOL566`W4FRneKw~QN8KCgjYn(}pYr1Z3Qrgax z)c1NnehII-rAY}(M*t&M{WMxPt;7R#_BX*IWx#BA6by74xUW*?IY4C4C+qz;s3_f> zLz;x)*$J6eQp8amPAe7Is7V|tD6$(pMLk78J%wV93K3k4YKF{EEGE_wjs|<< z!#%{Js)*v3uK&S|0KWPrfI-FLy*N`9o{qeYzele-8(cfLuIxHdPbGT_+!a^~x64Zo z`fmcMPwdX~me+7)+)(s6L)R5e+Tc&oOrp5X)G@Qbn?;{w8PDLT$P|$R5*0}vZjx@h zoymmJ#R%y<^90=nsMoA;d=uqMWOd=SCg0G}rC3Uawyn&IJ3!J1h9TY|n%Gk4V1h+{ z$|S$5Ni&b$Y4yaGBu&cIa>Yp9y*suOf|Z`b+7@-unGsFwwJa;}igWn1(pi$!vLuPO zoL4mC*o_!#*y@v{yYfK)4P-2FZlPz$MKtDwuv3 zz*weUmR70+i(o(o=)?q=9DM`N=qtZeejS;i21Jx$5#wEhWl9aeN{ubW&v$0vLl6wl zvHkCJdKaKsr!jaqK;B+6h}R0_O~F<=wGsH#GaTH9VQEu`JDMD|=K`EU-*_%~F9el= z)HQ7VfR-_Ra3kf&LOlJEkGZx~w?%!mWg#93m>53?Q%Tc>9TuqNsNItu$scz8fK1)* z5~bvnVj>_+IVcF*YmtZ31`c^C_hh0>NQB25cRkNiRvfW=Z3k&WN7kk1U|>ve!`$?Y zI+Y+oxGTNw+AJ0Iz*ZxAB0(D>=Iq(iq;d9d9(#Hv9xh(;ODr6!x%t;b*IcL z%`OVF<>1w;!|-CrtMd??yGIQipa>^v8F7NJX1!MtoN#sV_Mnzw25PgfGq+B0&yBc_ z47X^}+GRPH;LSqU*Lyb2Q*!Ux-RGy8Y+s(D@kKctVN1{K@~I?%6MH&PaoJs+S>_TN zN6%=lu}9bktgI;Y?j@CsPE*NG_?X(jYgYjlCkN9?^Bn*hA33BP z@R^s&9o5j-Y`s(h8@&!tR55rp9j78T-8hD&xweTsBxkBB#kzU?JaDE&vLsbe6~!xU zz-2hDsnnEdb^v_nxZQtpp>fWf3KEVY3LVJL>HUEZy&YKv?e(6GP#y$|3PG?h_#pHN z{=qXKM{IZEDpu1+*D=5WUUF;T^j^H_1XODW$_hZ<1?*3TfKi&_;T-_u5RI{^z9DbX zCuWk&H@lB!i;Rft_z9<5!*cSCZ@~kR^nL2r$)o5nQDEI)$q?B7Qe8+^N9yH zhtoE22N2m<)N~|QG0YlI%(>#fx2$s3B{)UB><3xmMr~!=4KP1-L+vW3q`0M3893H+ z8SGlplB->*$*BfmgcnM*qq7Y5>GA>>4BQ5{bz;$>;~MS!`8XQ}l@Dvik!29i(K^bJ zp{r$=!r1CBLnmFQ8ZJUhT@E6MA$%`@v5Jo-1S`I96OI!?I2`pn9Pxl;Hd9Mr_4hAc z5ZKW|TfnSknriXtwOTsa(*17NcXf2ZZ|tNzrf={u%%krFbJ_J>r=cM$`9L!DjknZm z!Q@901D|JpVhbIhO>)6AKur0nVV;*cX2q9$5WctycRDO4)=V-S2@Yeu!a=}4M|8rC9;OI*|a5a^dgVux1 zx$kElZ`}bZ4jHL=n=o4q_Gi|VXnsw9%_Jk1%+C~ucgg<6q{{BVg%Wy+7 zojskKj1`Lw=I%4=zX)E|2sa|>v+KY8OmlF0Ouqh`mIa=%6Dgwr|KKabCvBl;LSIO> z2I0z1hWloE2N*2)lNEBNNA$w1l}o#ha9D;!Z6u#S!97(Svn8YwY1jUUL~J7HeN5SZ}&1IB~mguA1y zw%cqmZJM~Fi`^k@GH|69jib8F>4{ZvZ|Bkup@M7k9P(c9TC(~i;4^6lF9#VyNYB_$ zFYu3al`L@Q8F0d{Cgk}y?T%`^uj3|QARo7#r-{%Ep+sh;Ytq@JnjJPCV^GOl8K{(( zNgm;YXG5Ef{zN&k1)o%<7zk-hfH%MlpVPrS&QMW~>8`I$4Z^^-Ks7y%gz;OFFt8;z zdCDDXFwF(0yXS1)Xlk-;8 zQGF_5)XehV!_NFhJuXOWf_NDswv}no2ul;qVva|uw)8LgQiHAN8tqegcrQocI%h4$ z`3*qC>WNi%EQV1CmKp=9nB+2J+)_|&$h3A$Y8qI&0nl+nlHw#63gLttBY0eET%0Bi zr;i~;USXJ<&nOj$%LUF@7cbUEF|#1+*v5iC{|ZB|pft?OCni#mF( z`4Zi|-jHhzYJJRncHkeW{ejxx<>0N(rOrEc*St9oBn;V&^j3Htt(4Qjsn7w1AUPv7 zg?SxL#WM_xN8yb=AK!!PnB^q#8@rh`5^;Ko;Sz`{NI>{^yFvX`jJ)g5D55Nr|$^nwO8O%%f+HzKr{tIwd$K$Y|WFL$lW`*a5D{ zB6}Q@Q(}szP3{btJemXARroN%APjX)rfrFTUFa+vdFJNvPo5`h9=F zOCNoRv$*mmuKVek&L#Uh`HtUuEv$zU3Ogjj6%jJ%1r1hZI5HScuza;g69MFhfuS%% zM^6Pp_XeCr_t=_jtPt!!L&~WtR;Tx|FmMam|A3$cZ`H>QmT)JH# zei?Z6}J*@mx_IE)x7M%K0%~da#S|pz{!> zE}_4{MlY3&`s3ru^*^kdo?3##2wP-_b+hKZE+-I%Ty5^271ITuht6BNQ#bmTJEhe5 zso*=zL@=!&HyQ7RcncfqRwY}-eHur!_hAV3=-P){1L^ad+2kl`Yw)V3u_+s-iIT2> z$AKf_4hT*7r1!T&Edig&g)0TVi7*26!I=V0uQjLiRCW|Gj;C9i(pP#mAA|yZjp`8+ zH;cIR>p+hpc?+MUS&wS7)n}i1?w+C0s9U{KDp5U1KZit89Eeem+-XhAvD$V{%5$Fh z;uOkrOY|hjz{^;4XIjBSuTwp;N3Ph7TzUmsMJ@dLD_FUtpC|4e9R^oHcT`}HB#zkD zgJV+;I%1s}Rtc4cF6TIO@Cu|12G%L10B&;$SYlkT1{gMzO`vT4Rl++I*1h2CWM?6T@K0eHQqQ$)s{ z*Ti^gyYFgh%)-+5l}$_WwByKKoy_F_n)NJE-6Ph=?o}kkl_>FV{bg28uC=%cTT!X6 zO|hDs+~kQBtg&u)9~$p)&I65;F1|($03tWgYHcm4Ej%1Q6 z=0roViU$!*+Vyy__ncB!^#a8Q=yt*y9A=mdyMFEjkGVzThy^_zPA}H)U+nXS;Qa4= zZl5COTw$qz;mRFSLR0+>NIbOaHX!P|p{UVdpW{_lpq}}>)3A7ugtrAH@?sD#_-!{W zg5!rSavqA}rE;2W%!;1ye%vVS5ij+Kk%hG{V>X$6ko&#j%~3fc?CdyCC|38p9|Ljk z37<3yD2O~5hlYfhmoSjyy!`S2HfIqs@5o&!)?o64Gj-pM9V~ea(R#uyx>Br$*1E^l zN9)@n_KKgg?n@3_@ixb%mUv5S+ngd}BV(t)*Gf>u!IJE84?fih0;I*TJiuo5p2=9I8q!Pbe8}PI}*?W8Y^9Rk?d7E{o~M zS6{Mr^bHB)G3;_Yas1Am$iTIij%uy_JC76!A_HlVkJCP-L`!VPqyXC*s^M5Wd8)%` z#ijll(j;OY*LACWm2Xtt!m1_^!(8S^66rN}9;+@cDohy7p2KW_(}Rj|^b!F}D8BLZ$wXqDz>5rt8z7v7 zskD_%I|cYYY1kw{k_Tzn9Xg_KUkM+!R6saCSxe=&$y}AE9q9wQxArd8Dk^;+4@eQk z)$f*#itnWgbI0!>V;hC(#&*ZBr>;tCYl}R$bX5ofrU$2f_P|urBkH+n=Iqu9cZ?`^ zlwG=;$?cmGgG;@EVOE=0dWrsMH{jm-``S(^vx7-ri_>AH1Zj75wa!@yHCgAnbzFxu*OnR7ZIrGVp#Ey2NQw!P$j#0#HxFjkv%tZMAF!58+*p#dzPPJkTCI zx@_MO+}E-yTQ!rtzo`Xh>octE>71=HM6p>N30o>d zM~;xcFJ4OdA$$Gp(@hYvkQk6k8eF1Hurj;tG~^aR#yO8}D#N(vo_I6G%)IP5j5A(l z0Uz>P4jA_|=1>Z)@12$;y?MqbvYkNag!4BbV&5rIbdBF_bE3sAH}$F_i?6>E#6cv3gN6OKspt_!Y5( zG05co@Wb)v)4Tt#gXn9l^bV{%of2$juq<~7BP2?6k~ifwdm@| zqW9|>!YKs|D_ZrdnnZWzUiz#F1e87x@d2uxP)`Ddqp}UzLkSrRBh9DP^6V(EcD^B4 zV+ioZ@N*ea2}p!v`6KBg@w4tErnQ!Loz8humGdN=yqnkmTW*U%W*NM5I6-vPWXnMI z9%-D(8WeK%Zc(`w@&84xK`b&3-Cbt!pR}d*rJ`-Zz*sw;2lnB_U%T6?ls41PL3c@2 z=lYgex_)nl@iwN$sF`AIFpVw-Bl;4CRdnm=)=sR%D6dCOtbkPv#yg!{te?ZuE!9=R zNP%Td;Y3f!5%blB$PzH|Q8xx~1>)Fx#=tQSq{KqxD$-JyRnFf--Sx9MM#Eet%tx6h zxhvQQeyvQ2#4-oq*V;u2WzH+loM*F8R;xW72d8s49HCvN?$OW_%c2oTWwK+c!(EUI z>S2BglTSIxe$ux0Xc8Oq;Z?vI$Fq?EJZEeX2JlCBGh+gGDr?3v<=9jYv{$t6M0-{I zT+#iu8K4h84|~z_Y;sT7#}anLXbG9E_a_1iIw2GYgBvd&?l>U+hre8zG<@(l7`^+` zf4FHr-x~3j!!h!De{oxp`-r$P=gBwUXDc43o>)l4tI5Yzp2?A{)R8jLlR8*&4YIw8 z)1Xw;ZGu4);LFy#y+ClHMyUc>EBN*kAQ*SX)(qo8Z+k3l;wp{?-cOqs=`rI?x}e}P z<)!Cb`>4rirU~u?V`q#;N33^#WOnc*T)c^@TnkA|lb$(LM2?#W2k8)1taC`6Ql8Q7 zsAR?*)h;QjtI?s8q~Lyl=Sm~Oq+}L+BH;=PwfN7h`u;_GUiZ1Khd%nL=TJb7pzo)% zH@;*A=FMwa-EHf`o=k7|U@#-t6Z&v!+P%;7A?9N*1m7aLXGhK}9z>_mmv-kq5AoPz zxyO^Ng4#9=p@DcPhJ=B17h9rT@}a`^>Az)R*#8+&-AH3#X9GkA7;wQ;yv8xoT~G^_g5BT+dw@VIis z)9ioXtnBlYXnmq0sZ!dceO`i6x(p4#HX=EIZA|W^vV@ZQk*vNmurWcWIGVqQG4uz2 zVK?!Uy@#;uK!08(TNszGrZ7L%`t)#Lk?w-x>mewFuL36);$&g5mO@{HWh%vJM6DcM z?M@wd6@JAHDh;$CjCzII1rH3b@2Sd?l@)Sj1f7jo?+y!S0sTFis>y z$_|v(7Q6{?C6sASp4!;Rna(OOOgpevyRJ*IU`&PsI(kI2kJ;B!pYr38Z&mNb__x~g zuoKGv9M-v5(2)5cr9kt-mIP8^@jg~h9jqc)BulDkQuqdl7p`T7^#*d{Lm8g8o@LLR z5tR}uM%Q_E7BWOGZWnqbcq zS+kqs_d;tg6#`s}m%x6VI-_(irM0LAZ5eGtwv;C^w8>v{kFD|u*CLy)*U{NV7AimX zW0o+hi0baN3g_AY-qivOUg5NWxt>G(8sr$ynUE_FUkbOMJub`^IcA}zLBy0iLBEEZr^$R&`?quvsqt1KnhwG8-zXV&@OE%Ii zzLx|HDZ!o@_iNHjP&cR>i48)GBj+8pc;e)lZ(PNH?U*qvarL|VbP3B$a&kHnc~%D$OgtO9M6dg<%C&&*H+xL)U$~phbPUAKMZBUK9aujrorDVv0*7k8D*Ftcgur4o3tl9~ zDeh;Lx?Z%M5G_qf+V~G_@ltK`wX8l?b86cFtEsI1_E}FgXsk&IIA$*^@KdeCI}E3J z=z-%YP>u#OoH*^;SYW?s|7D7eYKr4a=STBkYbYe0JpkcN^qs>+2Dr$!fU+VSVlns? zmcJ?uJrY!jawx?_1v-ojUa71k;tm`B2hdpa^lR+BIST;!5nj16)wF&$*n`85Hp3s; z9$4JJ@n?E(AbrhIAX;;;VQl}SU|M%eAeH$PS)~F1^59myqEd-@Q_VOS6$x6gOBkwv zOYsbqfFVeL#)kWu(%jKVaIw(e;d_cDZ70ucoA5x63}bYH3(YW6d!=D+>o9%t!QsiK z1B#1P65@jJW|%y=Mp{cIeUak{Fhsv0|$)Yy?+1IR=G*_s3o>9fxf3Y>*<+5 z4UI(s-6{3t()vaVbH`IRG`gipNo<&ohb5}0rV%RapmmD}WpSAb$&*8(I z;B0WBvt<3eCy&Nvfr9KccZKIQgBhWMEc$5hXbvWUg0t}VgVV}dBu;#g^spN3aAv#% zCKINIAzKaN%mVQN6?3#VwgkIBqo7WLll|WUeXvDv_Wr^>^h?+=gmhzs)8_~%7l`bo z@6$wS`Lsu`s14gsp!y2DyPPjV&$B%HwyA+NJN#JZ{TUKp zo-S+2M-Gt=`x}TcZIk4JxgDGedV8nm2BLH8oWj__Rkto^ zGs#UD4c?q@XgdW_;>)p74|WEmh}4~Q;B}lE~%TzS{m`8hhiyUIfxDz*lUh|Xed&Y@SF&}m{nV#iVezdT;L3PX3uFmNzuZ<+|F{U4#M(Lg<& zN+#GPuse`PAF|=_KMwuYb4cwz6yydz3q2xJaWkQ7!V2A*Fpx!^?ZW)ljy}Mk8M|{B zwgE#POaoX-k%q)hFuMk-8oGMm5<-2!w}asV7*LF7O0+~rW}`7B_&$6YP7(4&-;@*E zp1K4hytd~ckRdAyu)YZK+o;CZ+iv^NK?&o8FcN~DoeRqpJzmu#hez7ns@|W|*P5hS zS&HE5=Dv-|klMVtkG@dtUYerWeUDi8p|`Qk+$VKYD`AB~H|L`}sA{|m#F^2}1&}UX z1>N!y=H}Cl$TO;_K_7C7jc5ISiVKLIMEG+f2M5owk`xZ@)0o0>#+F}#+SbG3m8OtR zDc)Ap`8R{}AQGT&IxFijS6WLfg`9O}l^pwv&hK#6aI^2DO$DOvCYT_2YRks%05|Ya zu>13nIb<|Xn`*J>BzSWDXMxW#n6d5v7lTCqYrC^!Par<{Uvi9W&7MvCnfTCNZIVOl zO9f^^i0nvR(rW-<@D#`qf+)dH;t&4e{e>8kboPsk3oQ+_KAd)jj%JqXY0YZ3oxrK%ogEX=6$QG-h> zfgjVYWy~KAvMcLT2w-2($KVAKlLoGhs!9SgHhWzHy&0eSqj6VL*Hf@E*@pr*rXh1(ZE(FheUyyHbg*=2jl6pE41J^=* zyIUB%3>a^q>ID5!yo!{Gt)}Rfu4vF=hvT_TiQPib=?VEr#5b%z`;oKB-f8acB@5lgNJG8`Zm zcI-dj$|J}UIubzW2~0E($7_bhBEUb&FR92|mec3K!`q4msLYChCh$2@3__o-XhXgk zMM>>PzIo4Mg&d7xW@MZTOs1*Ba|?@f>ep?W_mrA_i_H)+NWx#GUbodxR9MXB;Jc>j zJ;44i!cw4SMCMf-rx&%xmu^_)~ zMHScyE&*<#7unbo>=sVmxh8ae?^@{Lmx`i~x;-D~KJip$k7jb(3K`y$Q>sTJP!7yZ zk>^x{!qRbB+a%XB+j}~(TnoN&T=p`x6y&5pp}x92Hdohzfi!!>W0urI&5W{y!t6}Y z9~STVA&o=0m}#Y6;dB`TjNPyZ4TBRK#F;Ty;Pr-0{;+L=YXk}hkgO=~fpbO6jH&jQ zx-vAsuTk=_+{izGjFfT$sAhsCzCuPT!Xr*%7;MSs>K5V%lli^71H!%mSO%!(eEXX- ze~T6&*{lM(|1#M9h>YDSyD~O@)d|C-7jN7u$b03RWa-52~3!^ceI z{DvpHmX=h`+omQ6cAZBXOzegx$av}>rrP1q^2B=EZC{Rgg^%gUnZz8`Rc{>!jGEFS zIZ*mtjBv*Ts+B&a^zzyi5T2whMU4@b%ci(gAFYKBtM=v}0{r`-!)gaR} z!0A~{@1j4jd0tI5ffOJiPmcc|f?wOGy1k)H(?(a|m3vXSUcXKrfG`trZ`Mr7FEM8W zm0id**kv|twQURD#`Gz+vfog2rJDQgC{$<{D!bkW&MbD1WT}YnTa5`4{Df5M;gNxb zAB!r^|2q#4j3ZG{S!i6R#4tJ&r+|)pHT{3@UuZp&TXN5V;N3bqidI*kZYyfko_02i zV5>!@hY@BeaS&ca{frIW62H_08CxLio7%>EBJnP9p5#W0VZk?wqzbL0J?Xmx*5xt# z7K>b|$cFh8+Sx6;8NTIhB-!h*_QgKl;s2;}9}wY3#Ms<9R_6kvJYa_>Q3nZ$U5Yle zf@kPwP)_AI&+7o9gfiejWQ`}HH5u(2>!%#CU}eM$zx0<~D%X-m*MDmU##)k87fgB6+}fz7@CTc_I;D(4<4kkalZRq(sE)7rCI zumZ3gX*jUlc91pt4AWn`|g-qmsm56fks}N<74mGd;9S+Q#DM| z6JilIjo|%Dp;eaJeM@3#aGYm83l()?(SF9-AnY2TbTH@RypP>N&`I|bl%$2hNR@(j zsQ?a1h(>i8!`6Da1eilF*G!`00;vG;st}Y}g=XMyQNsy?@6gG_moUa0Rbwn8E1?TCj9-LFhHrG^Pph3jOQN5`w)|V>CxOp> zDhpl){>qDu3}Y3Ryx^c_9J4C*ZPuEVitzyGjbV=9;`FeQ6BzruREJlaZQGy={roO^fsdU1ds zSX`g;O#2mGnGK=>W5v{YIw8QxWX{tH>Z4AV-C5zW;B^Pg;ijg*PjUj)feX5R(rehL zVzP-Ro<^H~3X>IPXib|^RWpV&;r1dWo1FQXM+w(VWB{A<-I1cb_m=X&NumfhJ5U{l zGDgZC*ot44CA2$$dCs6N5XPtd^cewCSK_&?yrv`6*YrK6ZI7!N+;C&x%Q2Owx$)9L z+Zk!%l&q0^AV($Js?eIbrAs(-O^wpxuTgy)V;&8)>hOv-ngAl|Lhv;NPa zfOpQ&aiEQTWGU7*((%#`Oti&r=6lm-jX=sz6DfK(^9)P2yyJ(2Yh?>>=rbkEc#vTI zrsb=qyLD*Wz~z`?GyciKp8Dc@I?X6D4&Je)G&knrW&GArv_wciu;{TL!h`pCNBB$TNULn3{EDlsfN|45A-{eN5o|eNiFh80Q*f zSSwY!g_jwA7!iY#{bEk!#_uBodjlVs=S@uuXS$jI@|S${wBTX`Y9Q-)A_@eW9 zXpKFs-%!)vFj)w23psd&5-%Bde6yKb%z44jQ2-uF-1|nbXb*Kb_-?&_1|C>YNcOaO zrV>MK?vb)YlH;eAhmM}QyUFrMp5=LUVVT7ISN}w;1%aN;x-jdl)7wbFr5{Ml9STKw zG*es>xe`AfR-Ep!UL5~_nR*wnrtW-g^z1X=JoQ!(w1Sc?6K;ZHNFapC(;RqexQGa- zXwhZJ!E=xc=+^yS%^meSgZ?!CUyW!ih><_p;NKdCw@c@3?0K z(_`6=&dPw@qll6uOcG75BCq?=gHt;HV9R>$}>4|+1Y@f(Btn~}a zl7m%@(_)|C8v3pG44Ek8 zXpAJ7%Lp#E346y8str&B4h*iWn39;A(O<#l^+Ms-BwfgQ3kbmWZRm_>Mifd{Oqarg zbgL%|Yv&{zv?U29wWxvg?8b+vOE)ee@^^VpuK$(&LPamR^4JV8LJS3TWSslw9wB1; z56|BdJ0g}yN`wh1FmMX5cYlES{g~{1_6!EIsSX~QMghhoc*6n_XOI-zOGMqi%qzML zSr++cfaW=_VaM8GU+`&@97s>E*?R(Qm8yn~rXPI|)WQ7WZRRQN(L5PQvGGS1qa_y-IUHPY>>i$Bbo*8iGYFd*&W;opVCmYCbArbkBGbx4@-l;0vh`blf7#r)lVn zdY{Q086ocT7Q>Pw&h@J8qWx9UEUm%*3w8V;^WI^Ij5kwl_73p-ZJ2__fD*loZkE(N zm(lwc4yVG@BW}NopN8OrJ|S{awHW{?D*a*C9}uN%9fYX554?AB6*AVpdDZih=i@?l zf;Ge$OAIALGr~#kT@q*jVi7CDQ?$v}8`(-;RDvr2auSq-!n1;c z;cN_NA4W_%d69QHHoEogFSqp#ZGOZHNQir*4t+q?o-OL#Z|rJ~iYsk%iu9#AGX}Bd zqo;$z^xLRiO8V8!YVr7DPZB!ysukOJtToh?)`*ZJfE;lxjkyZr{|=mkxxW%b(_>hK z9ZluMWE7u7AMAo&4zcAp;;f*r1-e?kJTC<{1Ci(;?~ZDLG%Q<-(TlFy>4i( zMI+l2`(VZ$=zxPGzjuy@yuYZ{avX$kIS(w4Iqc& zl_juPnEOL_aj$g@d~5KXK={D8^|Gp?XZZpy#37(&7j%`-KZYGr9k5+P0UwQ|)86u9wif-mSuN`S1*h)aAir?d`;eh~YTXNg|INGqjo*tu%k z_$$<;CGq1d2K7yKjs0cGzQ^B1Rn8--e?fvz<2gem*ABXBr6&`9`rBC@X1B~KlvZ(p z5a2@ErB3yTr~g()0=7g10{ZZ$)JIAf&9GImirjAsRK{1nv1v#JkDkma3VYg$yx_bB z;n88SIyP4+%B?ZjTYb1%o#|O#C+L-nhkw9$6!rkq=DhCU1iif$Na^A%!QP4oC{g-s ztZp}4=_O@53k0xHxMD1$j?)!~4BE8jTK0^}h-KlDCATuXHx%oL-{YqwuDRZ&tO)&5 zUCDtAtS=yDReJXaF#I^v%>%6Ij>7B^8yErbzc1^E@K4(ent`vmvQP9EeBCZ15-=#! zG0+7S9{j&kHaP-NGf=f%lrIyLti16NJwaNiGp1Y<3Hot{XPB{w#xY^(zyVO6O0-2^ zIANIHG`NxF8h8GlDZ!-iJ&QdBd>nww8J?&np?^5>Qm|0Ll(pVj58Dv9gh}Vv^W`ko z5#P6DCffn9)}Qd<%6OP~)xqoYJ>gkWbNXUAx+=_Umr-=;0tyT~FnL;@S_2kS@AB1R zXK&){B<3tpXowF_n>z#VZAN-kGuB7SJG?U4K)nD}WmOc60Pe{`dQnR9%r)wmD5<2> zeZ|=^AS|BjD29)V+Y&MDoS@fwH#)HOS^k3J=bN==gC-7~7)Zk6c13hW>z$>W9b_Nc@4HV@feSM&eF#En@!JX*e_*gVZ<)=xgXT z=kM|Emxwm5aN|QIj*Ztm4S;vRY^BFwndZIEML*E=uYwv9;`wbGu#F{?76L!<61%UJ z`&hHmdYfqD8*!mwGb_bYj`zd@%~>dXp(FUO!Uw`s9>93Q09pK14L+Xc07KzL-NUwl zC$I2TMQ_heGF5_*cBSeWD6d%y25NARqf;k}nq@clxq^W@1MFe%M1E+Si`NGLKA>+h ziiC{Ka&V#K0^?=r35};z;Os5%#3tw$nKZ!rdg0Mw1U_i%sPqAUFVCXDkyM#Pb7=JOJM{jIj{Fi3B8U@_h^TlATG7&PXLh zGg5SX3vl|gzMvKaqPj@cgY?^{~p2p3%CD^r;pkB-=Ds)6hA7_>UDb`3R7U;^fB^pGiSD- z$f|>ikOz4`@ufeEiJ?!!@y+H{qSb@v!c~I3`ObwP1Q9;)?M1&eoc4r$Js#*A+h(XX zW74ST@+r1eG+HuD zz@+XgVg51oM^FvDfO2F~0Mbkv`mlv28Le4FkO^W(*{!UkBq@%SjKr4+0V_Da02gf> z=*|$A!TP&*cv2LN{Tsu!e3w5O-2#uA%krGv>)v0Ix43wt=OuU{%eOMUJ5}+Y9K|yE^svDbEd5#Hc z|1IA_HQl!@FF&r4O69@ytN$hVC8v>+8GdtCT#!O zDTuKFCIEK^AsNkYL|8_5gdVMysSPw}f`H<8_&oW(z5(xt{pfbp0LpR!EbMdEPS>I2 zOs)VGO^9QF+U7k-b!NQ-TqpY8A#c9(qPyNWKIF|rUwm*zoT8r*!un?t6LFG`<3QV4 zlyw@g3-l5dEN%5Z{^2^z?84~~)h1GqFBt;`eH|?nDg1r4=MP;NQ2^dDW}WS9C-M)1 z_2|!t;!C&gc)Vj;)K8OWq^}xYoGevm3eLgR^t532ZCoy}F5kIO@mKc5Zp_9~SEDpI zu@)m{2B=H}a?6|*j%z$m>>_>ejb_n~*A2TA3I5k^TMgPa^HI=O^qb1e6|ACdo;`!k zr4&f6^bTdPSivDFD|Uu9w@a_{M9S3SC!qN7OsM0X z6<0EY9jc?KV4rTs+`b}E@?fX!*5&G0U6!f-iU?Br^xz%TBd7*cMlEf^#2Qv>KZF@DqCZF%Px(wU`P;@saSYT7)AfhqR*Yn~C+y7=*uK6Uk|G1A) zd8+vt4Z$bc@l>yfn(B+4wd+;WRgLlf=o_lnYtX)Zs(I@Dtv8>pUH=DIDgK_7q&U8C z#ccF&@7czg9r)0v-qMsHpdq%wK3Sz5$wd}SK0NOP2xJ}m5Yt6&Ea0)_c z?DV=Sgr5-MScx*=@`DFYtWF5p?3*7rML?lne6afmumbIc%uQhmVBZKEC_Q9;1C|TB-tLeTzKd0j6!`QS2ZfV3YdsjxO3>@%(EjO-JGswf%sG4S zckXugRapdTSbncR0s-aUe+|>mtEy2wwOziF6#D8|WN!_h+pjv3D~!U?Iu`BBz65CCP|?aU8|}THphT@Z3>X zL7++IXUt>RT8A5B?v)RQr>CD*!Xy-~RFkuil(SYI5T{L9f{Ci#@uiNrh@pd>?q33G zh3x9IS^S{q{+neM>n-+_X{_g%IW``?*8gL)4vt9E>AWx8j>b?FX48v4o z41_8?3<%I)_!_%ZRFM2Y)J^q})P|GW0&MkEaSQyMVJut#ts#N0yP22=9XQoPFqqBb zZ@BMrI&NO`qMG%^s5qz|73(W9=MsAnT}2iPKZFDps+I|F1}0^dtYOvO+cc+9x{aFB z#=#MK$qm#m~`L;yfz!SX*tuHKR2pnOttZ8g317i#KEYvSZJ z9@KEKSGn=@L;`ArI#bIvLp6Q;@L$>ZUa;r%E!S^Hst*kP!Z9|)uL*eBDHq7g(k&mA z?^O;x+tSx8m8{(?+*4}3%?IxsWTJ+bMV=2(U|qGnT4s%7^3>a;?pL@LH#%AO@s$X@ z`+VUA%Y|iCDjAl!z<0}o0TwlYI_llG(7aiX?*$_cT{G0>k$T2@lMtOry3ar`8rX?B zoaKTwvPG523^H%Og_8o)MUaMzaig&KPjMx}5ksys2qEgXmOY*fPa5jeCQ#_E;+U>r zxg`6ACb|To7htKCwo_jww?A^zbfpet!;|GlX{tAMs$HAkn|C z=Oq4F!Dj_(BJ^eXrqRtEj1!jh7qIh9-6`vYX0?#zKLEchW^#}^-HoK@;K><`RjbVkiRdxi;r_~fNe`uuJtw!%+4!Xe(pt-vR=Cs!;z7z^#!Gw!$ zs&SOVf|F?sa^RbFPqgtWz3~sMB$tE6*xK}f=efbdAw6U=(3Qldph8E08(nrMdX9UJ zCnu7O5iFv=z!o?hZ~Pz{+1@G9;2&c>(ZE+!2WUrZF!rqvb7&e zFYTri%&F8~j547+lBHciSD1gFxo?+)R)bq3KU$}p4g;D^%?zc>xb1AEjdK&*AR zAqP^7tB#a&-P}(yuqHsv9VfcSK7=OWBy|A|$QK%YuCoCWjc$d&lQ_ql^S*w1C1Uj& z_7>tctfivu5|Z~Gd7`Y_B3@-<$Z^~v?%iMuRS;?yc+a(@DG59K7uXR=(Iz^Eo)t5u z7IVuh>Z9FvoY?qqg@nGYWavC42$CDQ-p+Ala0mrUxvfNG;sB3D!lw)#zvLQGKgc6L%kVtzo2}+z!};hSuCS;AFIQj*U+!N$^+GaW1QgM-&ZkWD6q%_ZOD~j9y}mNF4#$F{(z9 zx-}t#SnTLpNPFRX-e?jD`a!CsbjXqB=SiOj-EQaQ^3HbNBi_@klCI3t&{#TdifnD@ zFK)%w%)*Ro)*kslDF~3XM0#$@I**Hh{E1>}cEZPt2_9OzbD8fHxpU@Q%@qO|0)~Mm zwJdpH(OYX5x0@MEwcaxyoauLH1fk4eifzoj)%I%dcaTFAxQmF%% zpGN%z5+ur3r0EmZJkTr{nCvibXHJh5x=*4HVQye`m-UZnbqG^gg8M%OKhp96@#cpM zGU#{nGhVb0FAl-53KZ5KJ8P&REpqgEG#L-QH=QYU(^cyk^u{lMnOyZo%t%&UFL~aj z5@rTBXm+1#D|;VKT<~vr2|oC5)~Oksf);&Va-zRHS+p%gX&B!vp+^IqkqpFvFS)E^ zaN2=?uTgrT7b`~~X20@Ob`AYQUm3{+sqhoWV6?W?-boY)14q9x31@l45@Tn$-UnWF z+m6?;mrE0JzrCYLfX@zSOyrD|Usr5%L{1!*h+lSL^2}^nMRP%Lv52cZ@K^gD?)uz|OpKVMHa_z{_F~vZ?tu)g7~x%9WXC(X z-(%}bO6mGYoN-NM8sF{ii8GWqOlYltVe(fo{{M9bMK8`E#k8iPLtplU%wdz>_-@uP zD)i^xLk|H|0cwL$FfU#tX;KuCz7Eb(c>F@BZg?WXxh_|zZwN!SJTj1l0s&~T(`Wzv z#~m<>GG$@J^T)_8r|9dnd&Vq4Nfiq7(Ai0~HQU!J99cMI7ziCZZUU4RD_&xIURzo^Nt17#U9Y=CAO@kl1JoWa3l zNZmiidTdt)2L3S1*hfU~d&8jf0QIz>Tld|GXbKh3@QH}}BLqIgnk5)I@G*FU3#RMT zuPpiCW9SQuF@j@IA?Z`Qn{fi9M1ozbD;r3I`M&kwBvX&dGnL)kKY2g4BvAus{s`qdlxU&d zmFTc3>u4+2rFcT)O!MHhkKG7lD7#sG0FnN0RHHlKofFpei$bY4$kT`B1khaM&A>bu!bRcFeHUqrr{$iS>{vIXduX3V#N}H{W8tyBdi_a z%wghpcZ`prQ4d~&}3LFW5E)wMNImD6wHNmY@d2_mE-9I6eS?!NAt<7R;`)0EKnKyO=Gf=>_ zpJVugG0}NW&;-X%m1D#?M_kuF6V8Zg3`TBi3x$0+`^ZT&2iRl-^ubsKkz)r#5J{T3 z7wBMyy4o0!Znzrsm+Wo>B9&3QGXY?_$eh>(51wLS0t`8%rGRbO6Q`BP&xKK8Wk)S< zdg7zhVm$)LO|d_L0NHp^yj*(cGCUui@e&?n)dZRxJc0v`T5AQ5c+_t`309~h`mWN2 ztwK?1H?;@IL*cZomQghJl)WKPi#Zey-q*2=ef=LH>gq|tT(eO(%1mM5qEx5l5x-&( zjx>4@-Scb>K*BM6KH`p20b$BiHLEDJa%1{q_}3lP55v2|y`T{Q|3D_W%!6zEsp#C} zD36HJ()tKH5&jd2`D4Sl$+3(_?$2V-pJEy%%sVJ65sbzp8@It2IOj7RR~@olt&Dxf!0p$ zg7_C)7NPWlNDaS&R0h4p70|FBh%?wK>sE=fSsHkDTDt3D`q5d|FngzpUJl#*?87I~ z)R&ve!g3!0BUCwRm_VvBYBKvyRh@K5u~!xAIcs%AP8##My1nP6#_&*AD@91hWm?RcjopJY4O>)ePC^Wm+b)M4avPJ7i-Kpy}B>z7aHr+DQL0kGp zXAvGD48-E*NWCzO%KMV`WOY?UZ~nY4FTq@W<7d*~Hm&YwSRq3*!WRudFwpOSD75a3xl$S9y2Y(6h#IJeCUBxKY%PrY6_1O?9)~*WSDL_f-3ZPAS_Q{(WMp{o_RCIM4<2$|B`oce z?)}A(X-=lXG36kzS$TI59LUm;qmlLjj1!A1m?mSpjsEMBZfB(r@moZ`UbGk+Je5$y zdmnliHPy*OGx6+d(y9TjkXzX-Ptz#3X5Dy=b-I58G0|Rke^Ytmz^b9dB^hyzJjJkX z)sWwp55 z;~d*EK}9Dvew57^b}2t~)PV0)I6FA2H2-GXZjo86MB&aFZt46bog79CwdhIK1LILFTH2pkg0mc7aKddPv}U9X$d*49FRd5z8uyKMBqrRN;s4bBr;A z1z5-dBQW1VfIgNBrNoRzJjp?j`AqZTo_L?iFg?PVkaI}c<5@G+(

jPrRk;-wid* zc`q7LtSN&Vzoe{sc7oayH{CNMfx`-2X?7xLso`bLEn0>wC}ssCG@_Ovys0+Xu)2p0 znUiHt2ga$fjyn+QXjxkG=I}r)VaB_So*HFr*X4L0&492_39Tts0e~DfrbnM-;aMYb z`+Dl$r?b|Z_fO9eufn=4_Rg*HI!vsu6$@cftw_+neL4FZZ5H#mwati{>Q~0Bp)#Dn zV8HAhYDiUHHG%HDSz#)OkPoM`KziIl6sc{uS^m*rRqV)oVQXPLu7mZO#Z>Yc9XZRx z=Alp;Ha`g|rZ`tjsOubj-$n+);f$AT&qEQ5%gn|k$I}HeS5fu3lPd=L>OfhmJ2~EOW?sIQR+4`a6A%AxP_)Pj4_nbUAm^-v? z_wHXcEU8RO00uGN)|3@zC)*!c9Q!mh8zq?*sZrPO-;WWlz@oT$*bPc*i5*WdfXnk3CXU3G}!@5RH1G+()nO` zSE8cS(^Cotg6+03Yrf;DA&W7jyB>T}I28W7jBu|tGLKWVnLlqc;%DiO{93nj*>+&afX6L~f{C%%^V@qsnsnZy+ zI824``9~Vh?Y(NTXJB(ApgS0L)|n%6NfME{79c(d#J(~DyM7Z%4Wtq+i8gh`f>ok$ zoCs*QY(`&Y-xryi2ATMN_>zCK5P$?N^t`4eNzRtev|}rnd^4V;1BoYRooMI7gvR! z_{B9@G?c}<-}S(c?WSTnfIVNR+R2?D_j9yOv;APgWEG_PU@MujfMpOE1a6+7eQbtn z9At0mo!=~YtpO%gc{e`!$UqF7Qk9;b0!IbNPq;{CI&Als(I~y(WUB^)7+lWaz5*yu z=!eUT9oydBt)6Gol!Mwd@q@PZfL-Y?n`_EhYj01P_fKc{>-qZXx)k)gTJzCvYLlY^ zW%(`P1M#F#Z=K>|a}#VY-R4fLzXTdl#0X3ha6>M-ceYz>88K_fcy27_#W`fGoYX<( z^z|QLnuX1OBxPK%js>{}F}edV-ur&fC>n58Oeh0QZmR24oIJoG*^G}TRu&}*DaHs-Q3_0ysh<3^0yxaQjUA6&h$ zgw9nNM`iSsb)SyVL+#Jz}FubQxDv5QJXM?~^Czey-*<XD>jBo9KXQXyk}N` zcjh!AO4%|1x-|}J?FVr(SzIipr{lV39fY9+DB&iC7S?aS#xY<)2j-*4xAcy}M>zv; z9n7Bpu#o58X&WoX=EN*?+*Z?(;``wCkm1p&<)??R_5od(8*U-_Wz&f>qI!0MTj6=? zrW02UDDXT5W$R{c775+vEloB8pPhvO5oQ*4&B2X6hyt1(XyQ}aMGrbkm=BN z)TIn9xm&o{NyIVuajKXQPY>D*kD#6{YAl1l#Zw^-lFl_QleyZX0V|y35m@BFMs?6g z!WO0!=Gx*v`Lc-*B|Lgtdc}4dl(ogqDg{A{Zk2WenhiB+aYr6(%~q=C9l^LpNHyKT zaqNSwyMPvAi$_Lx4YUiNu-YtfI~z<>4CZknq6?EC(;GGhSdHV95leaAA@M z5o)n5NoaJNvk{(7w>_lO!<*8<{fPNGmN+WMK2CC^2>f0dqYmLx6Tl2{fH5v9# z=OQz(;|GHwnQNEN;m;b$z;Q7edy>9^A=DA`fL3QY0+Zr4S%khAb5;y<_K)vpu3ms4 z)L76JWYN?W_(Z|h0wdLbD`|`$U(}pyEL))~J@=*TSDI=BrJ;-L4Q>@25uC?u?-%r{Ek#t{__npzA#-JMmFzx9HZHOg8pR4JvzB~GL{a>r z+D(FqZW36s@1e}%P9XMcw!^Rr3+~A+$u$$Dp$re4$WC4~g#jSkDAmk~GJ0zxcBBy( z%Xw?;&XlMOFg4>`+A`9i=bi1eU1RUjfT~dNx__CdrWA9q6ER&r_Ln(~v42?`1+RcS zFPN}AHFGEZ+cI6&_YYAH`97N*|x9UnoqimVKAH^RH+Y(s1M8FQ`nb+WC02R3`wwy zEjnWS1U51qgzRSvJV?>CyH2&hK*%bmzI`o@c34Jx*B{FfvA=mI zi~R}2a0dV%4ug#b^{mT$N(pa3Cv3c_kNp?0nIhKcAY~YKG9s*Dw83}Xdl}PcNVBBz z=;A?RySvFW@XT5W=V*QLE!+-_R;m4qSra0Fg6ZzLZv+4OJ4tc*>2UuPU4D3!esMM` zquJI9?NEnoo0(>dHp^FP)wVgFYgd;rHw41cZKhG?E4QE%<2}!Pjj&{>#1-PINBH3) zX0SMOoY@uEt?2>vd=d zi8ZMfCSV1?>Vot@&oOWA4=0ZF7OSgdrIYiu982suH9f_Bswry}g*xlI@X~KZo}b_z zYvMPI7#ImRy16(*(=+c{f}V@r$VNDO4~(kfWCIYY6}r|PHNuR51iIwD$;CqZYj*zk zbCJF5ffzy9B<$qC(@pMZHVRBFkX0d)y@}!Z@3MBF3+Uh`Ap_(RP?|UVdj+!hT8V<@F+I8H%s!M`9H$uYBps_ z7fHPpRP(P3t*y4(mMSGlLodrA2AA-ZiE(rIiW6~f})za zs!oe3JlEV+h!OLl>He(s9WHB}y9FG#5@IoU0y zLD6|#5I1}QpDyTz$z#mlPvf}zHS~h2%;a{&D$MzOr7lR&1zyJ(_o;Vrna%f%Q9})g z?2BI90pC&V!>I2eWSz#QRd0E+p{aEJN3gHo_#->v-N%kVp<9V)wrK6Grz^T)!K`Nb zK&<_c(ytCRAl2;h2%01$g>3blRpE=Taa+swvfs7hPm#K>Yfcv#he?yF}NH4*pef?aD3u2uE!A*-*-Kri0-ZS_7nhfziPfK zBk`Yd}LsK~Xr0vXFOj)_Eu83c(Co+U&G z1GEq@Zc;CE!|SMRl&l((JY(GFJkL{a>9lCZaFK10K#W`7crJNpbtnmqAfPO69}9cI zighfKb8H;J8N4}-Cte1z$`@=rH8fhtT1_~IH<|OAbIFb%wg@dCLe+s)0MYRbaL7J| zVKo?;1Kcn09Av4`69d7j*STWQf-@(u2T@^!uLZjatzD^_^ceG7|0=>dS)TbbLwEvq z&ZRmCaZ2xMgHJ5f=EgF)U_mmeqC_Em1&?^-G@3)5b6ZVx1#Cycqh>E+4d64L`bOJ- z8iX0<^3KZ`Ak{`Gx)-Bk#~;g@Gxw->iz#T)^fJ^)k z%11L@N!d-dS|r$Fi(Teg18eotCbDpsF1&23 zVE9p8&fM#6p+B}_KIs{)?uHK`^7H9d?-|2YQ7ChOE1*uTpGa=EIP$oNNf^yxffsXl zFW^NyWpWZo7*>-iA`}c944=Tv$r7~7z+B6{4~qv?p%4vYH>R(xVx?eV9eI^ET?*?lB2$L`PN_)1 z^4$kW1F$lfisp}pO*X%c-LN1~lG64}1X8!fKEw00U}!p2;uMXbaO&d95tyEOfAiu9 z>YXO;J5*BQrZTLOdF&leeBj+!p{F$PdJ78M_(#ugWX>t-?QgG925rw8T{|3~vBIE> zw7$fBYWX2j!4cs=NpS0K)Bzoe#(K}qLS!kpL}L(%@)q3TFgoun8+aXtv1rKCF!8SL zCVUWGOIOvIGR!?(pQ9jBz~lZ*xA?IP7FEY-5xi&AH-Zu*{xLOz9l&%aF@!3AUHqRv zD^G{3-s~*AX16G<%te4^e#m*o3vD)HgS?V5+Zo&vrhwNeHQn=djj17Sa;ar ziF5&sq!0-i%S6N00^{l^c%z&EMo4JPJl~{)x8eWp+rMOv{PN8&bng_YHnJA06Mm#= zo#DrSkepfl`H7W*p1d|IU)$D`$7I(vZ?Z-D+xS{5$mH95F`4brURwWVj7nH_R(gcw zpyo9Rq0U_RE=@zF1n)MBaV9AgSnqGWE!0`?bQJ3slQt6EfUDdWJGmBXQ{}MZcMC-; zE|bDqNht-M9x0Q(PFv2cxNcDTeZHLXWvi%vU#s+GFyiQabKcotcIuM*xcfR56z51` z<9tP={ft)l#n4#rN_gs{q$vl+F25~pdBv0$cF&A$G_9n}QlEKF*1F=tybF;;^Ipx zvtq}dzDGQjVR80waZ94wUcuB^tLJ;B+PMgS=aQ=3`IW_1>Dev?Z^zRogphotS)*IE zA#9Cm2Jv65JCiw;1G`}9KvtO6VlR?nl}f++*UZk|iznJF7Y^sNFS~SjzHRUG+{dNw zFQ=*OF-P_ul75Bdj;enS2($6=TYU%7W6v1ixqI@yznJe)4x1X(hBda2DxEgwd#;L_ zl*5o}z{gDh&NGHntHu;Dc1oP{^T3y8DQROEIs4qA_b2Wp=S%7sy1~4SN*Zw)&9t2D zN#aOy=jS@7WTFN$zVJ)-)1J6iMUH1dII_(Htb*o`Y67^Qj11)E1f=IYT!#A_ISR8F zChxPm(*3Fvw7gH*yQ-(nuXF{${!02jPYH%?rw_~WtER2|bmgyV{C2!92+_$Q1><|- z{U0*IDE;+blYTK>aIj&5SIUST{Pdiw!X0YEqdzVVN^4g7LnPvY;IKM_NdJnw**Fh5 zsxc{i^VTxTuv{y3^<>Et=&?(xV8@i15$l%`jHft(Ug-V`aYe8ivE&NmVsQWhsSBRk zJwsB!K^!GjBt6^h5e6slF`zvmv0-V%FTBJ7JKOEhDX~E#_d%Z@`@K)E!8=mQ+pKC zZS)@&@}(}J9*~uQt3hCL0+8`Wr`Y!OuBohiKvj7ds>ztE1<&nMmVcJ^CsBE}9oK-e zW8Mm|I#WR9*ZC2E7oI2N82XdiRra}qqX%t9Quy?n8rBQTr)zp-5P3` zGOVeB)q1Ta!FL<@YLvPwGMIHBD#g8sN{i{kyICzx8^=I^vXNwYS$eb zpItHXla2B-6PEmD^lp@F?6(&as8w>Pl2pP>4rNW- z<6Ie1rl;N=#YKlQ{Lq#|ew02x3D*O4{*Jf4Vf!0;9Zo*pL6&884KQxP89C!CkLiXXuhAgBAP;0T61&@2s zn0302UAP=qG_dWrl{P5||and#s7zVtaOTyjxNX8J2i2P>?%zpSqM%h%^mK5rH2(@JT+|Bg4r>eD%%?MCGAKPUQQ;I_a_9%4h*ZpDZmiDS1xT)Z8G;SyN)4q=&hGgFp1eZKhJU@ z+fJ(5(M2y@XBwf_zCk54)%nh$v25DdROcx%r3hiw6yj+b=hj?foXvt_F$KDRK~ptd z*kD%kSI-9Ct2W9n)pZBDtb7;Psm4CuoISRVC40B4DjF(loaz z%Mf5oC#TRSJirRWHpiKgBDKyQ`m*#l*vEG^BF@hl`Hqd;orDNlm2c@WGd)ros~U@P z)K4y{E|{jIG|WjM)01@Y7B8u6e8eo3LA%XtnsZ)rj!9j0^fk9~y>J>N=QvjohTxzc zMfo51qXaIU?B`j}-KSFhdh^;WwiqcR&@(3~yzw{;KLj9Ebjd0AYXMT%Nz?!cMmoHB zkkOO$aLSLUl3gcAj=WqL)|<5Ptx(H7HS8m8_V6ChyCf=wI`iOFoa7I2opBW}?uc>D zTjqHQVm;W()ijDXDjji5JKUmc*#1iQc?zQnvllqv@6sD3OkJ`=k&KD!ndu=1kEHB# zo?n|CBt&hKZ}Yr6$79<`;UtR)_m{eo!lbV4ne2%ih2H|(|KXEM@L^?phNQ6#WIrX+ z#r{~DccE8$b5k5>Rsg7i6(8Xw-g=6Wy2h**bv3C{g%_Dn`7^m zRt1`HR9`KY=X}%p(0#VoIH!Ab>Hk4`dBpU{*;}7&EyEkg-rB6*lx5!LtYA;5f;%pO zk|9r$)(j>YlRUq+oZaT>@kiMAoUi<-|RTpKfZrd)~w6Ng^^QOd1T3K+nz}>xatD-UkFr(_Z|Tc z=o$}tzm2yOm%1p7jPgBw&QN0Qdcy=> zZ3Y)sLaRN`5yWD1X>bZxUH4n9hGuK3}pURZ)65NfUdas(>5+VWq;)*5>3Nz3r+477`h2lrq~*LTzbZ-Y&`L za+MNR|F|#us2a2Qik_rp9rYFfth>Cr8UxRMX%Wx&9+h{eBZLO)v7qkWap^$4kbd0z;hM_>ENSFt!PTM zBJgGGyjxK4$hd<3l>Cxw{_Q=0{Ewoj)_BT9qSiXlf zBELZ$?1|dem-QUazb?m<$q2Mm5^F4U7uI-+)=xgS7wvWL3&bfzwP?uxk?Ck@Kg!rZ zN^dO^*v3+y+hcIul0QJP^nnE{UP4o)U&;ED-s;QRtCRbg`_WXW+Apa#ztxx2!kmX8 zOL1f!&PU3m3_sB%jlibQ2Gq}&oa>RC!Ru5s!gysBLZmrhAmkvh2gajZUlMOjxi`9i z%-X62uCHYJd{5CZN>}5Wd%mZkY~|pg#@ZDZ#(E%2jkEDuL|*Tg%ZbPk!EO*>6v!<_ zDyy$>Q(23atBl%X?$@f-Lz}{niixNgp3eFDc`ZqPD9~~9DO0E%+Ge& z*C*^!gb&G;jH;kjD%SVrJwE;XI%1%6%wBEEZ+{ky%ClGGFTE*E>~|K)RfeR5L#I1K zl=GKn#Zif^y!Zx)E51Tzm*3;qLDL+D%=8%Z$-O(JbX4pDaHEmoS6D~3B znx2#aYmn5{uG4DJ0U#@@z%IaE;3Iz6b)Db7Jn+aV_XCsd1mZpyt<|A}(>7m%Jq4fz zWSrDx^n9+Kq$Hi@lkDW^Q4<{Q7m}O25Q&tY$X#3DciQPQm|% zaZZ)AFgOJj42 zId8zX5?GSWLh2&e80Ugr;4H-6BP7rlNARAM#)?d!OC?6gRL%6phun`mQ5$;WhMfmq zRK2r0M>K*)hHk)OX;%jq3$jA1x9SOm%-^v^em)A0CXwYkB4;H2q>!ab4Gtmx-;el(Yve2KjTq;yD45qz`F@=L6MH^_jAMIjV=O@;z}m=H*4J!rW0z&*`+v z=d<(HBIm8kg{)5c${Z8lEIqncWzCQ;8pgv8`N`=q5q@?vP%i4aCSl3-9lHkL!D0{H z&;2Af(j8TTxk3&qA6+hBBCW|^rzJEsd;_$0dD7Gf6h=J|awFx8t1g64IFX;J?Y~P$ zs_~{_SUJ|{uHXk7!zsvGmxD8*&AF{veDr+0#2ora5gZ`On^^I zBri|ti&#Z94Swx8nBG+4$7%vd&U0sRd1?eBAx^^IQoiy$7>a;>{FP9p=hx4M{nsaf=#a40tDlS_)pquKSk=3*|v~- zbRmKIqKkda_3S_YF0Bj=pSFLFy#5OHrf}8ioCMWJ)pL05ab5^u^fesD{$4rTVm=^s zviz@=tT1Z!lS@N$+2{(X2^ftlskX?^YSeG+Efw$+w8DN{Mc*TON@a~%E9OZW%;Hhr zVk$Gm*UD(u0)G@t9QQKMee${c_r;~tb3fVm_Uwz( zC^5ycCJw)FklUdJ9FAj3L6LO8Gw=OWBk|R+pnS}NyIEoyfdd-QR)1&Q!4!LfT0cV1 zS#0vX?1Tk#>;=uPMNGAwMJu%{X(UacY_cu8#>_~TCT~sfP$Hf2T7*Th<5op1q+!g-1g)#?!odc(gNs#%%h(eyz>Jsd<$-aDe|Uo$?J!sOJf4joaZT7>hf?Gtyp3&KkS!;mSQgk z0a;8xengd>U>jx!U&mAw?wsPWMP!cQi%+0< zz@Y0hVF|`WGCeXKAb5xv(AyNB>a=9B0PRqAm>#8;d9e&HC^jSTe>ik~zu))WO!?Hw zQ~&bj|ND#O|0`_lpS7@lBYC7s(%>s>6-VPccmP4*3Rpz)$jk7LfXtXS0BkauW(oYt z{#g>0pqc>kT7>7`TLTc}sKE5d^zSd1EiPYMhUtMw8>2s%bhX*YZodr>CFx+O(sgoT zp-?r{&>;+Hm2R_D+biN56lhSCInoMdyND6Sv32Du&OUdkpC@)EX%+APOkV@sgkfT2 zv0`r|wmpo>Qc=PVGXk#XZM9w#t<^j>$qx_r=UJ!TR@g0RQZCkJ+nS{&dC2Igj1TJC7h08Vtfupt>OBf{zt>`FL zI0{gs&otnOI@5({924POEtiyDQtJT@F4g9BeQO z8~EB_`SV3aX;@xBsqE@OX}*5n3xhPRH*>EW)PMc*z>+S=%mAj)Of5Y6FA^L&v{DJROts=^Gk&Mnn0?kA9+AQ*sy#3jpJb3X0AV=^SKhS z+n*VCE`bHwb;gexoJnd>+lrpEr*b^|wcLKadH12lGP(#EJ*q+77o_f6V(%cMlN&=% z!dMOJrF7&^c^D%=1~mP-6(TnPM#d?SqJVoST147r9|Xl4G{xLo?mXOyQ>v1@==AWm z8|T>mw%uy|&?DYp7P{_BXIuZGZ0$8&yCprSHOw`;wyO=x1D7k(A05j{UI>Pq`kcg&1b1fVcJ`B=M|5_Mw3A8-Ybfh&;Ct%aiebQ?x+$J& zXrJ0J(--GXTYr78J8cE29G$=fleSkCJ-Y15Txsz|qQ1k^ZT4(D4bfokPi*Y{u!$vwjQT!<0^rQow@T6YksXhq!D@HpzB--*_?V{1% zDRKM^$s#xq()Tevn`aDJVdPRwo_QSYue^{ zjnt&o$tc=*Y`oe&B@>%NO5HV$ak=i&WTtNYn#CGK4T9!@`9x$1eoLFo)@ONFt(Svi zqnEq8@Yj$6&*OTm*|-zGbN;~@8G6KzI*e9U`}Tn(97UQRr4HI+o3g@cIqX|D6W@yY z^Wc!bg1uRWsWk?=4St&kLu zAP>_T5R0;55sQhzBr72r4IE=zH6k2z@Q@;oqnKy8Mcxu$K?zwa1-}lY$w^lWH(KxWSnBNa3 z=R$L2Uj{xUr`A6T zPy3>_7v3QOi#9K6`nijJ|L5fLG}qZb z)_f4N_soxef0d7~qrT|#@x>bXZv0y>tZ}IV3C^1-N@?joL-CK6rn_<44?qRa{iH>5 zWOQA<{FBDJnpNY}q_~wn`EOtaSic<(8nflz7m$g&sWb3`@xfaSGw06Ez*}!SXX49` zt~h+_$;zX!mY!S*{+e5CZO-`^V0Ps|;Zj@Dw*uUP2~mG{7xTd#W-|ZQlU=vic>+Go)*Amx9EvG3+G?&d^IpXT-DTj+xS{_^mK*^mX077gzY_gtAR6FcemZtwBdyP0RsNZr=^K5UAnf}8JAwLwqm z{5cK8*J!9QkSTyR%>R z?}?sTcLY{I^;CJJq&ZibOpvssPimij$u8f!C$?qx$1hW~HEHW#1|JFkIJE7)Ehh5L z)1S7$@`rh(RXeli$Q|v|Iyh(4!sux0!iQkJxm6r9affjmt7>wjzyCA|%(oEw3-B}? zN^9+p>jh)L?ipI})19ozty#Ty5otZ+H1*q0b^#e#J)WH(odpeGdVDuE=4YlerlU%$a}`8ytjogu94}fj~joix^@3y)vYf!gME3dF_P*|?<%5}bMIxq zk?<+wp7Yt`JXo5-t({)M`BUuFQ@7zQSuOB>t+dPk*qyRLdyW1mMZ3H0yQlC{ntQi8 zfN=zJ4!1RZ2PAymRK4y4WXGL7DNqbG1@Hfr(R=OeiWKMN-g~!{0D}Xaen_qP-jgXM z>xX-kk)ZD0mHXP=?Nc8|G#q_ghu&NzNgA56y#5c<*%WQ>?fdYF*)34lx9|JEUI*Q$ z{FUmhe!gj5oclU&un9Ih^4_~wSFv6mhL>QN`|md78e#-^BpwYhF3$KZjZ?3_Oy00n}0F z{GTD@sZ+*+!A}bAeQ_Qh{ILcGc4TYv)N#r!`@?(z=gQ3O`TwZ8HE|0V!UViJ^Q%`f zSe>kcUJ3v!A$evWtiYy!0Niv>%bZ*ndH77w>pxGK0dXCM3J8MXQ}}i5>w!hYw0UwX zq=1+I6ee{N@S!h~oKOM34~Q{%mVWNekugdUJgc5sSAXV*)^#oWDSmx_4+tS&-&=L( ziw3m$2K4?flaA!TdLgOv`!7ev*R@QMqLhzS`+F$?_oGhw%4Iu;!h3fDhaQh{s#d;= zEO;SJ@liY6t2oT=}&jz7I|_RBzK!@UPvHF?D?hq0dAsh%s-|M9 z9$+B^X@J3;dxLg3^|wsK&J4V+yD>KDtlAfDs@+qaau1xEw`_pn4sX?s#n53n7r1BH zC(ac=oQ(&a1K1wYOX*Q(e^|aZ>2}1Cmaj*0zRVsu{0XbG@W?X3m(zyR%Z4aLsxv{$ zY03W9dsq3c9O@3;>PUO~o&TAqU*0}2Rp$uj!b98d?kPOXXt=v-su7{z{JK~0F*^O_ zD|0vtu1zDcZFgZQS9fF8Okv<@q!3i(Ktb#F8FlsgkB%1?&2*ie`3BzZ)KdO*G5mL9 zI;-HJ;%8aOhZ(mSX_HTOO&<>Ft?4(WCId-Wb+}>d)T){8TkHqRPf=k`i-y(2VLzA> zfD9w=VClCp_!1s8Fkp5YU@v-)@oJ?B?tqQmr?6=&debM zRgWRS!d7I@*JojM3NJ?tOmo5eo!h8N$VmakuI^X{9b4?v7Up;-C_{XMn4g0y>E zTF>6u1FJiF0Iaj8ACCd+zQx{KQ@~0E^y-}a_~TBV5hnjfd!`x>f1=%4wB>Lc64-$H z-(S^?7B$0LF{pQ@>o}c9_vgM|w;iDN?LDjOAADKe2%GuFeXrjKdGm0KAQvu801Dzw z^Q%SU15m`-tH=BAKE02C_)(AM1j1bCTm_Y}R;!y-J~h_Mo6x|t{?ppClJn8psyJ$m zmqU&4{OrTaypdXf#f(=c!LkGgciqI9V!%d!UImXdXn>jUV9E%~kk6=009NHJ0K3a* z9pWtf?^6p$r*8D$DLCV}^#I-@R9M}7H~k(wllA3&+tfOkVMe&)3=-l@-NawkWdn5m zvF_|t?Di=n=}5zcLq)6!({`8!gP)|_q`sGBBt5%&%?vyVagqj=P|MkqOSPm#cpfP= z6~?yJfF>CDdm&Ih830MA3eNOS)=jMo2{`bo=;^-!Je>OOC?I5NGPmBX`JXMTZcaYd zZMnOy^Ry|Z6UN7*S?9{wd(iKI&^@g~;rXYx&Aqn|n7}bLHo0zP@0qc$SJfj&Mw464 zetcnaT`w4dLWky?p1P*$C-{S@uTp0k=C@RTG;zBDGz>XBjq52K@a&mOGf9mO+EKrw z3^0gMs$lWqmLM?!efD0c!1J0}0b!%QRr;zG(Qi_b29H&G3HktQCV_JIz!RwMF+b=v#-{EX4})h}NB)YkOJ zU9ax$3EXq%i@WzLE)}HR-wpCp?xmVTKfqu(vV3jJ{TKxSO(yMYPG{=Z(CR7mZmKS= zcC4embU1rPawEN8ZAAh*QObv;5Xq>W@1M?%p4pBu(HU=rw6? zJE~f5{AG+7yU&hnW2`NJUT`4i?Wy@w^SS5Yqz|?TCU+*iZeLYD5!YE2R}R-(Qqy=v zplh_GPyP~H{#ulq2G7!53v4YdW(GeybNOsmpt-IbUVjWJY(b09!&9gRj>=&yuc~*5 za{rn!e&6`|-&cLPSP2*4LXmSG{7O_MxLe*;!Y-HyKnnU>kMEm?C22VfX}CrYZ|>Fs zn7u7L4{vvJ&L_N_g5mH5e8eFR3}`ADK~yr5XKvR)6Rt=6&%n#4kA9rmdrw#msXhv} zWEIo`&=YgNuCDwjNKXJ!lhSI^`X43No_hMFAu;s`4iC@&$Huhk=BnV~R!9FC=Tx1E za`?40r$Oj*Kk2-)Woo_l@Si8YeEM(nEg%Le4fm3@PtCXQuh>KSrzLbkDiYGZc%#yN z9{AC#qO?h}^=QkDT~q54=4Ynwv+sTpSX;39_TLg)mVr2UhiNjUf1ZCYrqln({vuWW z)7z7-RWmM-kB)!b*?Svad6EWB*yNzo4-VgEJguA0ovaUfI$fJS3H|;s=p1!mkkRkH z(*SE|cnEd-x(#tzfOy$&An3)9XI5z($&@FoJ%>(V- zvl(v4Lqqy43oq|c{b<)KxHs_@gr$tsa=0x_jb{1Of^S{q%x6bFnf!I;^Xg{CtAT#g zmBVN5rr(aq_~3Ax{JyOpO5*eUgrHvdiSF%Ledo#81&RekGZTXJY{G;i0lVjb}e>>F+8*1dhC*>4(1Gcd45jdTIDbynXSZnBe zjNj4I;4$v29{-Sxz&k2C(;6u{ow_#(wiV?^Z$$iCz)|_DB0=kE!I4{Mx2zsrnRYK_ zPZ|N#0A8jJV$-U_zkZp!_sDW2*E{v)y;err7m{gB+Ns_@k3Hq(e}34&(N4ib3>qKI zKn@08-|W8&pR#s7YT_>A^n;nY;;`G1O=y0TBktu4oF61Q=;&z(|81-e5nKMJw6^W%_Bp5;mPiM55s*0b7 zec^c+4gl#Eiy?20 zcQDA_HRABQCV(jKrUM07(-vtPNE&HhEb=x`(m&`)oBVS5UgxSU(KqkKXj2ch{zz#S z_szRgdUw*Rfs@^X#~mz^w*$+EU=@0w4eL8lHzwD8eB*G--CJjWP|d7c-#JC&fJ0+y zYxITt;k{>2SZknxS9?ErbuK+SH|@}^J-KIwnl2>hM)wh_d*GPmiq7W zpTGTQsEC%YUoS)+NsXL}ow&nnd0jUIj=m>QoUdf#_vM_HqrqtbAa?A}f9kBd1v%~g z;OVX-sW2T{p&j*_f;f>g1GTlhw?C|-5)i)ke53qm*y(a{?omeVX=q7%^1|Oo@9lx` zH=ELAAmD-NsN5Nw8nTD-5cEcOo>>Rt1jX9MC{xYhw%$hcqgQu92nE*{kOtF$^Sh%h zx(`0umXkLBZ@qV)9*Ri&y5R69hbbHQfzW`zG4^~p4fDC?-hmx~y)^|%Y4b* z_zPG;d%iq!>wZ;E?=sNl|I!~<&WTNZHF0a`lk%g~*&nJ$Zci9?&kPtqsos~?lnmCG zqxE&j>-e<(qxBGdX2E|&|8Rp}Z*+D(y!dl_Jp$PRdKOckew%qzk`2nY--7qgyQkJ? zoB`|9zE`zi;Rad&Jgi`T=Fk1%M^ZD|*1Uozq#lKfrh%}1_>Xyzj@~YN0P0RU%1zx9_>p$(K3Gs1)*N}Y zU=GaxZspeC$^X&z%J=3Qe|h%g(lb&2r|SMM{IypV?x3u!`Gh2Q?D(=Qb-bdyt5{Jg zLqFsv@|tdp?_m95ayFJo~AAt+xSR z*rp^!zEu7>&pQBowpu#^r`YPXp^?HY;tr;VYqI~mCoU|+M+6~SJ!5IdIS4fkWgs2#i zPF_{$aa!l>z=(6DH+Md2v*D#X`PA%7*GuQZgookAszaC5ey_F;1y8t=25sn=i#e@c zMsHMj_Ib$)yx5K9FX@^5t8{zjA(gH}6XC|(SXoKPcHfqqocXviudqKven?zi`eWY# zHc!}*q-LwEc)Cih!$rXe9i=jW*T8?MW|bxCN3+?%D7}N3(sh$oVqG4?A!FzMkfRRa z2Vil7+Y-0BLOG-;%NdFs+!|MFrZS~gzYbPek%KzI5<@=Rkwv1`4o+y3rbebG!b!2Q$Vi81}|ddtjIH5Fcw( z%Mlmvpn8)%khe>F{CTjWVoe!`uvL7N>%B^R2o#qz|A6g zPY85iHY*Y9NXdNSqzMAJgvByK@(R`Z3o+5vp%>os?mTEk#pPWNi9pym z_;W%Z1tW%5#buSDV|`eOn#*zi!|C_qqhSSsTstR5qlnV)l1n(w?&b&y`YiUmo7Q>VYLa+`x&@JvlrEeYmc7~P`uo3#eYsf2I5u3)m2R?^ zmC8C&xTH)V^a-(1=?g>N!2Sl`63#0+BQ>X<UB z#*Iu;grv*TT}eeJE{+Qp4}adnQJ0xZ3ZGeIq*;eq+Sk{x_{j6s9%FsDAx?5R#T>eo zF2MNyJ=ZL;s-Nnu!bTRyB|UIf5|mAtEh!d46oCdX4LkTvH1XwTiv z<76y+t=c-vD&yMsN3Yiyl$Xkw9`d3krOL%rVM=apSf)AzNvy@7jwAwCDDpfjvDS3W zidl5ZtW8dA98Pm6+;E~eOPMw;e!rgP7GVpF(F?0S?hA|aU)B%lXl`>7eG zi%Yyav)q@W$};CKPJ1k+KT13z1=at#vWU*SlUw{TENiPj4_eA0mHISHfVNiE{zN@X zvx3=-hertfW!dR2a*ID(#pY6FB18P?NTTo%OB2DjwyG)`qd2baFb=o*;_Aj(Ruaxb zXeu0~!aqev5%k9v#A;Mqg%Qx<1$*^owE;ODjGi+@X{?>CxaHwSLR8+fUbBIC>9TDk zjD5NbuI-**@lap8W$rSG<+~)F+F_|f;Sp&g;E%yf!xA|CeYga{I+7IHjg1OJghKEP z*9=Rw3N?m>LZaBdf3cdI+tirZ5@8rNmvvR*lDirCM3SZ=te9YLHZnI;ZNE@uFi|;p z?!Gh&CGcsFk>QQs?B|Vlzl^C)9@Iw?#}hPjEl$}sU#M@wdK{V0KSo>Pdn8ZvDc|I~ zO~a8+cBZwB zbso>sGtcu+ld*BNxF)%WjFq8;2w4^;*b0wdM8i%)YeRz~P&gJ6=@Py2T!j67G5I)I zyHu4U1{eK$+JN>=lex0epz%GJ0kXk}7b_S{RaKy)i7Wm2|S062*dcQIF)*$(S?WGIVL>#y#N&|+B?oRS8B5~;pW)6K77I%F7`MT!iABf{Oy;VE6A+ZVf3 zLYcYDu8%3jg%3A$G*>2TqEfifBi-hdACeGKd!rwZhMyRwp(=UjmP74+fKDZy5fbf)w1NghDFR7% zhB_2#9OfPws)EUP8RD-z8xiST=_{~hV5UB7yT?L)%C(>Om~bSZR7^@bhr2C()(+3P z|Mgc(b9^a|U?wdFD%qg)M{uB!N_y|Ca1(?U|af(-*_5F ziBzBR7-L9Q?2-)0Qah?8ToOHomRgm{^fB@=V2mWbYgfnWBK3i1B6&yAYKw&I2E-*t zT@nU2EKzMm6J;ia`snrjVpIu390klM^YHAs3l$&b|2`W4w9`|e7KG2;UDRmU$03Xr zVdWfxCie=M-k;pHvzKNeU#8jP$z@*U8_6majt$xtjsn1nAIHu4@AY7vmGp_G>$VKR z*tN}23Be@RT!AC$O*Dt(r4!v7l780RT~@+R^yT}T12btTjgfiw#B5abxOF-2oME^- zu*+PeDDPNLbo16X$JNG!djBskkA}!D>&zCQ1HTtSJir@sn@;(zFNq@XLA76xR7f{T zY5+3{4_b*NLt})5bBd+G5khpWCe||I`_~=8zQ*BL0=sjgJ{wu3RtJ>iJjZo2>#FE# zo!QO%8Q-tw>zPSe16HgAdb(fmc9_Q-iBMFZfh*r6Y{nVBWWcLKV)Pj{Zmq-gFp7MW!pQNwTxq}o_0G)bu1~ya8-&I zT2*?+Zw0^_)OYGo07S86-aNoW^Drn_`A!rNtZnvG-RxTLmU;1fUP4L8!c~|G8H{qD zfa8>ES#K{^OBV(z=q8c*JY>AkFxw6N3@i5R)0>7rE77&_(_O*aOLd)86%15(7>2%O zC$x;7%g~H+{30AtmZ+o?QO!}Cbum`tiOU>Vx*y75&LZr{Nl}NQQC58$Om^;N%X)&hNZU{Z zYE;qY=MiB_9l8sp(~;+%hY>2iRhYiNP=zZK#O3DZ_MFqfh>-JM37(2ug%E;3z_^Z^ zp$jMGu8^`fzp8i-@B$1HwPvj zdJ@`Y$^%-=&Z46SbRAtaDZ!3^7|8)m;VQN)3xMu#J&1E{eU%t>KBRTV1F`U@LZ5_l zYsgTb!R(l<-7t$c%A9p0p=OyW+OkoqW}IM2q0O;958aqf4A&?X#KlNlU(OkNhQk&0^ruC+Yq&Q{Vmp z98+w!OA~*O{0si3rnbej5f58F6K_9zv8_TS;%X zj9xD5!4N0AG_0Jv-ZHxq6o$h1x5c=v^3vOj76|;fRXE_e!5jEdfp5mmmNw7S9yw3h z1mM&%j0VV%fjC^#XGH`;J82=Msa+VbW|35REwD@Y%!OdaHtNuCOrQT5#GVANcsC*J zH;kMDWrBh}lq{suF-pR=17!>Jp4<>qotO_SZA}lse*3AH^)}2qBpq`Fx&Ph~==;jY zaK|QjEct|GaGB~yIQn**?Yhl)eXUoTAvmjGWPbSHgU=JGe%#PO#-{jK&9gh}fR(Ls z^PulvOu_*sV4C(^pHeVpZ_^V{$I z=|v5~fj>^>5Zx40?)G~M3Y;*Z!zmZi%Uvw-63iUOsXAi_S9B6mEnkexw(Ep|7m2!2 z!n}X2MgyS7W7_hB+iWFc%k0Z)ZIuS48dpAvuBL4-waUHm-JXWIlXFe@cD1~iM5%sL z{aAt?lOn=W&{Z6j*W*i3t;Eya)sY_x?OaQ-FCm5%0oGJo%@!PehI1SHF!g|S7{c#p zw;bP1P^TWij*Lhm0BH+-&a!hi^PpfoP=tpX1&sESPofn8;P~|Fsvqc&K?>HB} zg6QfHlAOCVdv)&Ab-nV*dh0jtS`nJ?Tllv=A@}LgfLfu_i3WJ3f^@*3F@(s&vc{Z` zI5EtI`ttJ(L}m7eCA&k*xlQe5GDM8PfRby6ftnR7gy~Hzu_-Qq@BY{14mg=SAi}(B zRJ_P~GPYR~0}7CIuZ{wsr&+FgLQ2U%4(;;VaFrZgiGmJyN>M*b%=}@$+Q0^=YIfi4 z)-27kZUA*vrNaWBW@ZUbU$;i6^-8xWo6QZ?BkuM=jA}F8fv!=~*fv^;+lD2j@qA$^ zinu6<>3R&jj8cgDaI91;z!0(e^`DZ)1y!NR?$~aStN?x|xlOZCa3W#MK)csK&&kjU zbrX8yY~0&uf<11$;N;EQXCFjYccgfSwxzouS7yuHsmit0c^NuW_=)!Bxg=}nbzO&B ziYT2*B_Z@kFMt$xYWP#H6oI*G+DKS{lt!HB(<`m!A{EMbM~Zbyz&;n8B7xXW(S0d^ z>HPFp zvH%T>{%G{F>Zc84T^lQxOMXOza+?0hUSmMiaXm)lV1qL*3kL54Qm z-Jb7yn1d<(OAXBSz*5EqLP9F%jhUAkCC0y)YZ4saOjLb2mu1x}Yoo znv2S4xEtc1M8!Xnh$SvKA^z3D?$GVtPfO^>W8O*t`0T98TM&TW8HR2HaaNAZe>-mY z)w47+0TZ4xjF4ZI(Bt7p1@+Cip`*w%5FRWI@Z}YP5~OfrmWp_$=JCbBWhXxC4>R@o zouGjxu{e86=#jESyR8yd10Ec7I)U5b0=&l#=4}gFU9dP=p;NPJV>B#voE{WBdo(Yh zgRi4R3d@K+T0ztg*HcOyO#)~h)DWqepy3w3j+Ct!bBSHLjH0^nB?dN3OY084%IXlQ z{bYB*rEA1lq$GRWGSKHfR9l(dD)^nw^|_e=GHr#-vBNF$W*%EHly@cT4d_=tttM@A zmlUf#-+;O~j&+>pi|y=p@eh>UxUrIJ*Hq#thPa$3J=9*L4)!83>na~kz5VRVxKEy) z{NF_Xe0AUdx*c6!thQDT51TCtg?9AVPqz4uZX6))Fi)(;HqQUNg(A6YO2V`?vk5)= zT_qpAD~&*J!atqeOvq!pN9- z%ipxthgWws7yH&id0c3$d^{=>c8rr|vSC!3IFV06b=xr;5arRZ4v#QEmaMR22-L?z z$#$HSXx|NH($d)Gk-p^+vD9pCxNbnQs+vcLuIqHce1hh>&Q{Sp;tb93%bMRw$){Tr zda7Q7cvoOFUWX;laZ!drId89!4~0fL3kTa?vlFnGm#lQ~2 z?5DT2$7_mBv=YNgN(O58NLeaB_sKpK8s zN)S`sTtU}Xv@CY0`dKKGUET)T-IfWXadu~d_kC~d+wbASlzWaxxp%%<>AOOhDxg!z z5NwEXfjjPMpd=N?#U7$N*SGVz3flpSPr40SRW8?Q3FHuu`@&44PD^uzmEBB+nugg{ zVPQn^iKzS~OdZv#oDHz-6DC@@C^ott{RDbNvUCjbEyxI*CzgMVH21t#L_HH1`Rx|mq5`G3o7iKk9J8&$t6eu!g0e}P( zqB#P$fJSV8{imfR^zFby{(5&GXUSstK~)BTbUvnx<6PPk{WdPiomUksfPjNoF>>;399nk6Z(C=mEJYJr9EqXnMB=k&q>MgHRIfASM23+5Py_sRaW%a3WunN z><;vb7$y93@m9GWeI`sNX+fYPS!kq4FJ!x+%uG>5&7PTOzX`gOSpk$CnP0d*SOB4605Bk1XTc5(3K>m zID^h8v3W>CMQ{dgoU^|D#)Vnt4#Eh0LnWZp+oh>QwZCVebU#QH@ugP4NFC>0B6MKC zkf;3RFVLn^N^wbN8%%*_iFRXCyhkc5gnU7v+AqQs>^7f&FY{#7`6XUp z4JV_L_yaa$Wu6oc7qf)wT7Cz z!h`L4vwfM_a1mC=sH^d2umfk4_2FuEa2F~G>LF*kf(1)>R;933c{v|e1WvQxmv(CUX7i9IIMzI8#Wj^y<%f#o zL8U#(gWILpKCX1YY7U%8QjlhgBnWWj#P4mU?5m-QNcozQ1__b6X7-!N!K*g9LCBs zX^x6uVgNperCQ>Vmf}j62nw6UgMC0W?<^pB^q`s**rC~7&QPw#>`qF=u~3;K+T0WYTm8dc3oUxH>{!Rj@4ZaW{~*zJ?092M)OKK>FHD`UB6F1P%#{vLq>tT9~s8M8q%j zr_`~9-2^5k~%YI_+Eu<59aQgSJ^00Iwlvf{B?Wx%fe zA{dGrBp=fRGJim)I2%N26YS_UEX(k3RPC(V8WD{8gFY7|RyQnyQ~}j;I9%XurxdD| zO5HFU)5b{z0k2bdv`*0L9YiPtqU;+hJFY=ercTiMlDYsv{%C>*t1k-8g@i@9`=b% z0BL-en~MR^03og&Hm7i}tybe0c@-*w{6(3pW`l--VOEfiAm_gvl3#mEvEWcu$V=6) zPq&WgV%`ni{F;&Ms$Y0jD;Onfr)y}y&XQnVbCS~MRs`t_49I*`bbilbe;|yKHH#Z}V)?%Q-IDz%uW*zJwGzVFVS_pzWgzU+PT+gYJ9KRF@CXlYVND6gso=u^0u+bHS zuU5QNXd^tlO%(M_?XXtDHU_Gp)G7?<+9yM?)I%79Yp2W;fu(qd1&$aFGvLSXpL}n& z9N*SMFmsu!-8-p*NPbrk8wleLRfu=%;5;B7;n*^!F2new1+oCE$`w#C8L%RVdK>rl zGxydp<5#||{k9ClzS6a;-Db_~rAqMyK$h1HY-oG*U-`S8(kmVqog|GkMOlSE?@aW5 z3#T1PEKM#m!#uXMp1_SGjU%KZTy=nI!I_2p{^hD=%e+f7=M!?hB5-|x>e6BDFeub= z`&w8~YQVFF!p?=(*&OaB+uFeB(j2W0fm8mU-O2QyBRLTq7mE_MK!y;Z4r)BWMnu

9=hM5+F_|Bb~^x70K?rC)SmmV_2n};q4}DR$FDT ziqSZ1s*oe;Bzv`oN6m&`Rg8GDTL*jU->YDgUV9Ts%oL$CK@M;L|HThOB29U)M{R7k zDAa5m_U>WkIEl$>&Y^3YFYBN+QFy44buEkulF!Xx^*bvIx=0BSJrj1AixQG_8Qmid zTMtew&{AP>@FFXLD^oMvzjUeM=z`~b`sfB&;BTs#ITV7#TSlvPdZb`0;MP=FjcpME z*v@#{0pe&!viD;9yh#wah4#0AvTeP9?qUMoDBgfJWEyE4 zbtS3rO5Im>V|h%s3b$=MwFER28X0?@d)^fs1P~)!jeW(bY0G+{2J;GGAuNzswKX*} z%NS*i={~Uo;P8p-jAR9I6}$?KuqUS+A4+hfg{$Mi%C)$oFH!56AU$M$WRB-%@6{_P ze8dXvv9+

  • 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 Sm;VF)^P>73YoUB`<^KRA^P9~8 literal 0 HcmV?d00001 diff --git a/apps/docs/static/img/lighting-image-filters/point-lit-diffuse-ios-graphite.png b/apps/docs/static/img/lighting-image-filters/point-lit-diffuse-ios-graphite.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f3c0a9d0227366cdd871be99f7adb32a2f8535 GIT binary patch literal 263907 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 z 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 }JT5HTstj>sQB2#Fmw3~&Rk+qlwdzMVu> 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 literal 0 HcmV?d00001 diff --git a/apps/docs/static/img/lighting-image-filters/spot-lit-specular-ios-graphite.png b/apps/docs/static/img/lighting-image-filters/spot-lit-specular-ios-graphite.png new file mode 100644 index 0000000000000000000000000000000000000000..bd498f5831b3888ecfebf3b153b4a4299d025cf1 GIT binary patch literal 159082 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

    _rEV8T>^ZZed$uhcKE05`n9f+ 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

    ;mDZhWBEn-|1#!H;K#W}a zU(S4bWaS?0MjTB43xa;rT-e5J_|nl`pOk(W`fq1;IG#zXg{HkDa71Cb?FsY?(jySs z1vxAd!+<2tl2LJ9Xxg2B*^wXN-dHWwlEM*N%MP5++XZj-?A(v$A3s1GW}CQ56x}*) zh^wo=QjC%;_1j^%5*pH$2fy#CKKI0Ies2TKlz`_f2GA;#RJ%K;78t7D)y^}Vn(gL{ z;r)I1?-kWzq7UK$MrK~#V0Ej_-dehN(qW&r9j`dz*8wpps1y46U74nVBH49H9sYHk z9R^Q86$P{ke(Lf%P=_6D6*InBE4m@ft`HNJ)_`Ohu+r5{l=XXscOiw)^X8UreyZoe z!_S|dDgQBNKIq7so*$28r=+mfZr}zDyO(@vJMOMgpFMQ;=FOfRuMdsAfq3n4^Rp*0 z2S2!T-IdalH((HK{JY4qa7qLDw%5Z8gJ2^L0Vh6*3w9E!hD>60k)tV2P8aUm$2iXh zhQQeORz8ul&-5bShjI24o`V2G%}^;B7$bfA_}-h(&-UCq@#>TIbmNY)pDS%C zGbQmGn>`(2qss+07zlRh$DMHX29nK~E?e_)*As3^!2P{y?ZS)UIQwhbW-%U)RP7|E zBCQXvDsproahWnOsW{U`)w=Y0Q6!koczIOhYzoKR3vECyvWXUQ0pR z-GhsAAG#onyeFz`FRy}Qa6qLT#%^5t_E-u9FE*Wd^zi+&^%>+{UA)7Sd;8c( z@ZNjzG~S}Tz_~(ihDuxH2qSo|?DCQ!mm_|+j@IaTj(IArx{q>I#5H7FG6n|-OF^J% zjg&n>jLXpf@|&s5pLh&nDSg}=OMXWDrIN6*V5Zp7RDyjWDJvWCQ^mCxYET zr1Neyn`uiLM>wrgfqU4e;fN(mh7LI)XbtIdHzsMS@xa2A86FqTo9kRTQNREVIuzMi z_s+LuyW?*hVXg&r{!h~h9LRq0ecq4v2F~^loCFCWA44{M3CiDT=Lnzbr(smgq1eNR zA0K};74z+>*n2Q2sprgf-jjkSdnfk_={8hQ?5?BCW~g>=-LI;q3~g|PnIC&=X1&14 z#M#?zVLq~IY0^G2K`6v$Dr8D!8Eq-RLDdX>4#QVR;!3tSnub-x3(K3_^(adTsg#?? zuKNLWDIFXcL^mq`=e(y-Yexj3u+aHX@4w?qM=s8F%I8WALy)Pe{DdOzQqkMJia}>z z-Lt&;Mm>GI=Unf{-97hQk-p-RqWT8V3LD3~A_@eq-T`_C^Os^$6XvI2?l`1Lp8jCo zs401Ry-!F=8y{Hcu}okIVmxYC)Lr1Lg4kvyWITWata3`t#MY|}OnQJ&lq_72fq(2Z@Ck?CZT|&6O$Wzt{|iQsCS)$|u5a z?#NFBcyJ68j<8woWh~bNFE>ptthXJXffkPy97uzI|0)$c&a-no-FPZk5?*U5!Q`7M6Er6KuOWSvig*|)z!}ptBPq_qj zGk2PY237cJs&5=4xx-pohZo#9gAwMr)$1Ju^U`+nW7sg|u$LnY*qn{95?G_9O5$x`Fl{q=9o^A9`~0{>{41I;_;7AxxVy2DOykdsSswyg`WeVXia` zLs6PRN(wq*GZcLY3b8n8X4^9m&+K#>tgauQ(|FP%VN$%E6V!Pq^B_8669+5{aN;0v zo=_(xpMI$hLIp^Ez`!x^=79*8j!uq3_4aaeHNlf(s4Oy+@375oZ#6I7T(+h|FtsJU ztGoW4DK)zcDwZ6si#|EC-BXPhbw+tQOZ%zj=8q4L9gZD~MR)0edwux+o##KC=%=29 zo|OJk#})nb1(?pKrOf8{;h~(tP>>QRpSPo7H8Vaj2q@1gBqym-x%s=TLSfWWE({~Y z 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

    Z(sWm>oZ>6z0Aet*q%U4B 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 SeY<{vUmJz75sl%$EBs&KTc<7n literal 0 HcmV?d00001 diff --git a/apps/example/ios/Podfile b/apps/example/ios/Podfile index bb69c54efb..80473dfa75 100644 --- a/apps/example/ios/Podfile +++ b/apps/example/ios/Podfile @@ -6,4 +6,23 @@ require "#{ws_dir}/node_modules/react-native-test-app/test_app.rb" workspace 'example.xcworkspace' -use_test_app! :hermes_enabled => true, :new_arch_enabled => true +# Build the `fmt` pod as C++17. Xcode 26.4's Apple Clang 21 is stricter about +# consteval, and fmt's compile-time format-string checking (FMT_USE_CONSTEVAL, +# C++20-only) no longer satisfies the constant-expression rules, failing with +# "call to consteval function ... is not a constant expression". Since consteval +# didn't exist before C++20, compiling fmt as C++17 skips that path and falls +# back to runtime format-string validation. react-native-test-app forwards +# options[:post_install] to its own post_install hook. +fix_fmt_consteval = ->(installer) do + installer.pods_project.targets.each do |target| + next unless target.name == 'fmt' + + target.build_configurations.each do |config| + config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++17' + end + end +end + +use_test_app! :hermes_enabled => true, + :new_arch_enabled => true, + :post_install => fix_fmt_consteval diff --git a/apps/example/ios/Podfile.lock b/apps/example/ios/Podfile.lock index 667c7f4b03..ab66d2e4c9 100644 --- a/apps/example/ios/Podfile.lock +++ b/apps/example/ios/Podfile.lock @@ -2628,7 +2628,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - RNReanimated (4.2.2): + - RNReanimated (4.3.1): - boost - DoubleConversion - fast_float @@ -2655,11 +2655,12 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNReanimated/reanimated (= 4.2.2) + - RNReanimated/apple (= 4.3.1) + - RNReanimated/common (= 4.3.1) - RNWorklets - SocketRocket - Yoga - - RNReanimated/reanimated (4.2.2): + - RNReanimated/apple (4.3.1): - boost - DoubleConversion - fast_float @@ -2686,11 +2687,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNReanimated/reanimated/apple (= 4.2.2) - RNWorklets - SocketRocket - Yoga - - RNReanimated/reanimated/apple (4.2.2): + - RNReanimated/common (4.3.1): - boost - DoubleConversion - fast_float @@ -2836,7 +2836,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - RNWorklets (0.7.4): + - RNWorklets (0.8.3): - boost - DoubleConversion - fast_float @@ -2863,10 +2863,11 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNWorklets/worklets (= 0.7.4) + - RNWorklets/apple (= 0.8.3) + - RNWorklets/common (= 0.8.3) - SocketRocket - Yoga - - RNWorklets/worklets (0.7.4): + - RNWorklets/apple (0.8.3): - boost - DoubleConversion - fast_float @@ -2893,10 +2894,9 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNWorklets/worklets/apple (= 0.7.4) - SocketRocket - Yoga - - RNWorklets/worklets/apple (0.7.4): + - RNWorklets/common (0.8.3): - boost - DoubleConversion - fast_float @@ -3207,7 +3207,7 @@ SPEC CHECKSUMS: FBLazyVector: 309703e71d3f2f1ed7dc7889d58309c9d77a95a4 fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 - hermes-engine: ad676c360175e5b8af471b8ce1389e6cf4f9e1ee + hermes-engine: 11b010917f5f15150b2c015abddef1573d2bb05d RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 RCTDeprecation: a41bbdd9af30bf2e5715796b313e44ec43eefff1 RCTRequired: 7be34aabb0b77c3cefe644528df0fa0afad4e4d0 @@ -3245,7 +3245,7 @@ SPEC CHECKSUMS: React-Mapbuffer: 7b72a669e94662359dad4f42b5af005eb24b4e83 React-microtasksnativemodule: cdc02da075f2857803ed63f24f5f72fc40e094c0 react-native-safe-area-context: c00143b4823773bba23f2f19f85663ae89ceb460 - react-native-skia: 03e5c42eb263a22f9228d3cbfaa140fcaad08408 + react-native-skia: 3e1e8bfce008b86c45433f3ffc64bdd337b21953 React-NativeModulesApple: a2c3d2cbec893956a5b3e4060322db2984fff75b React-networking: 3f98bd96893a294376e7e03730947a08d474c380 React-oscompat: 80166b66da22e7af7fad94474e9997bd52d4c8c6 @@ -3283,13 +3283,13 @@ SPEC CHECKSUMS: ReactTestApp-DevSupport: ea18f446cff64b6c9a3e28788600c82ecf51bde6 ReactTestApp-Resources: 1bd9ff10e4c24f2ad87101a32023721ae923bccf RNGestureHandler: cd4be101cfa17ea6bbd438710caa02e286a84381 - RNReanimated: 8182ef6e805d04dce3618f1a843cb8d2f9ae23b4 + RNReanimated: c26dfcd831add485c2ed93de9d7bfb90b035eeaa RNScreens: 714e10b6b554f7dc7ad9f78dcf36dc8e3fc73415 RNSVG: 11354d28dd6cb71a59570b68c91ba6772a2d781d - RNWorklets: d9fe4a51421f69ce78bb415a7e0710c15fe61150 + RNWorklets: b89b501d37972e6419d6f87effe41d6d76157648 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: 5456bb010373068fc92221140921b09d126b116e -PODFILE CHECKSUM: 87506345285a0371afb28b9c3e6daaa999c214f3 +PODFILE CHECKSUM: dca89d921c9f2a2d3d405a5fca0bfb60b30b5022 COCOAPODS: 1.16.2 diff --git a/apps/example/package.json b/apps/example/package.json index b1ce2f4c08..28c01b0be7 100644 --- a/apps/example/package.json +++ b/apps/example/package.json @@ -35,16 +35,16 @@ "react-native": "0.83.1", "react-native-gesture-handler": "^2.24.0", "react-native-macos": "^0.81.1", - "react-native-reanimated": "^4.2.1", + "react-native-reanimated": "4.3.1", "react-native-safe-area-context": "^5.2.0", "react-native-screens": "^4.10.0", "react-native-svg": "patch:react-native-svg@npm%3A15.14.0#../../.yarn/patches/react-native-svg-npm-15.14.0-macos-uiimage-fix.patch", "react-native-web": "^0.21.2", "react-native-windows": "^0.75.0", - "react-native-worklets": "^0.7.0" + "react-native-worklets": "0.8.3" }, "devDependencies": { - "@babel/core": "^7.25.2", + "@babel/core": "^7.29.6", "@babel/plugin-proposal-explicit-resource-management": "^7.27.4", "@babel/preset-env": "^7.25.3", "@babel/runtime": "^7.25.0", diff --git a/apps/example/src/Examples/WebGPU/ImportExternalTexture.tsx b/apps/example/src/Examples/WebGPU/ImportExternalTexture.tsx new file mode 100644 index 0000000000..02d72404f7 --- /dev/null +++ b/apps/example/src/Examples/WebGPU/ImportExternalTexture.tsx @@ -0,0 +1,235 @@ +import React, { useEffect, useRef } from "react"; +import { StyleSheet, View, Text } from "react-native"; +import type { WebGPUCanvasRef, NativeBuffer } from "@shopify/react-native-skia"; +import { WebGPUCanvas, Skia } from "@shopify/react-native-skia"; + +// Demonstrates GPUDevice.importExternalTexture with a self-contained source: a +// platform native buffer (CVPixelBufferRef on iOS, AHardwareBuffer on Android) +// CPU-filled with a procedural test pattern via Skia.NativeBuffer.MakeTestBuffer +// — no camera or video decode involved. Each frame we import the buffer as a +// GPUExternalTexture and sample it. A GPUExternalTexture expires once the queue +// work that used it is submitted, so we re-import one every frame. +const TEXTURE_SIZE = 512; + +const SHADER = /* wgsl */ ` +struct VsOut { + @builtin(position) position: vec4f, + @location(0) uv: vec2f, +}; + +// Per-axis scale applied to UVs around the center so the canvas samples a +// sub-rectangle of the texture matching the canvas aspect ratio ('cover' fit). +struct Uniforms { uvScale: vec2f }; + +@group(0) @binding(0) var srcTex: texture_external; +@group(0) @binding(1) var srcSampler: sampler; +@group(0) @binding(2) var u: Uniforms; + +@vertex +fn vs_main(@builtin(vertex_index) vid: u32) -> VsOut { + // Full-screen triangle. + var positions = array( + vec2f(-1.0, -3.0), + vec2f(-1.0, 1.0), + vec2f( 3.0, 1.0), + ); + var uvs = array( + vec2f(0.0, 2.0), + vec2f(0.0, 0.0), + vec2f(2.0, 0.0), + ); + var out: VsOut; + out.position = vec4f(positions[vid], 0.0, 1.0); + out.uv = uvs[vid]; + return out; +} + +@fragment +fn fs_main(in: VsOut) -> @location(0) vec4f { + let uv = vec2f(0.5) + (in.uv - vec2f(0.5)) * u.uvScale; + // External textures must be sampled with textureSampleBaseClampToEdge. + let color = textureSampleBaseClampToEdge(srcTex, srcSampler, uv); + return vec4f(color.rgb, 1.0); +} +`; + +export function ImportExternalTexture() { + const canvasRef = useRef(null); + const animationRef = useRef(0); + const cleanupRef = useRef<(() => void) | null>(null); + + useEffect(() => { + let cancelled = false; + + const init = () => { + if (!canvasRef.current || typeof RNWebGPU === "undefined") { + return; + } + const ctx = canvasRef.current.getContext("webgpu"); + if (!ctx) { + return; + } + + const device = Skia.getDevice(); + const canvas = ctx.canvas as unknown as { width: number; height: number }; + const format = navigator.gpu.getPreferredCanvasFormat(); + ctx.configure({ device, format, alphaMode: "premultiplied" }); + + const module = device.createShaderModule({ code: SHADER }); + const pipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { module, entryPoint: "vs_main" }, + fragment: { module, entryPoint: "fs_main", targets: [{ format }] }, + primitive: { topology: "triangle-list" }, + }); + const sampler = device.createSampler({ + magFilter: "linear", + minFilter: "linear", + }); + // vec2 padded to the 16-byte uniform alignment. + const uniformBuffer = device.createBuffer({ + size: 16, + usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST, + }); + + // 'cover' fit: scale UVs around their center so the longer axis of the + // texture is cropped to match the canvas aspect ratio. + const computeUvScale = (texW: number, texH: number): [number, number] => { + if (!canvas.width || !canvas.height) { + return [1, 1]; + } + const canvasAR = canvas.width / canvas.height; + const texAR = texW / texH; + return texAR > canvasAR ? [canvasAR / texAR, 1] : [1, texAR / canvasAR]; + }; + + // A single static test-pattern buffer reused every frame. + const nativeBuffer: NativeBuffer = Skia.NativeBuffer.MakeTestBuffer( + TEXTURE_SIZE, + TEXTURE_SIZE + ); + let uniformsWritten = false; + + const render = () => { + if (cancelled) { + return; + } + + if (!uniformsWritten) { + const [sx, sy] = computeUvScale(TEXTURE_SIZE, TEXTURE_SIZE); + device.queue.writeBuffer( + uniformBuffer, + 0, + new Float32Array([sx, sy]) + ); + uniformsWritten = true; + } + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: ctx.getCurrentTexture().createView(), + clearValue: { r: 0, g: 0, b: 0, a: 1 }, + loadOp: "clear", + storeOp: "store", + }, + ], + }); + + // Re-import the buffer each tick (external textures expire after submit). + let externalTexture: GPUExternalTexture | null = null; + try { + externalTexture = device.importExternalTexture({ + source: nativeBuffer, + label: "test-pattern", + }); + } catch (e) { + console.warn("[ImportExternalTexture] import failed:", e); + } + if (externalTexture) { + const bindGroup = device.createBindGroup({ + layout: pipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: externalTexture }, + { binding: 1, resource: sampler }, + { binding: 2, resource: { buffer: uniformBuffer } }, + ], + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(3); + } + + pass.end(); + device.queue.submit([encoder.finish()]); + // End the access window now that the sampling work is submitted. + externalTexture?.destroy(); + ctx.present(); + animationRef.current = requestAnimationFrame(render); + }; + animationRef.current = requestAnimationFrame(render); + + cleanupRef.current = () => { + cancelAnimationFrame(animationRef.current); + Skia.NativeBuffer.Release(nativeBuffer); + uniformBuffer.destroy(); + }; + }; + + init(); + + return () => { + cancelled = true; + cleanupRef.current?.(); + }; + }, []); + + if (typeof RNWebGPU === "undefined") { + return ( + + + + External textures require SK_GRAPHITE to be enabled. + + + Build react-native-skia with Graphite support to use this feature. + + + + ); + } + + return ( + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: "#1a1a1a", + }, + canvas: { + flex: 1, + }, + messageContainer: { + flex: 1, + justifyContent: "center", + alignItems: "center", + padding: 20, + }, + message: { + color: "#fff", + fontSize: 18, + textAlign: "center", + marginBottom: 10, + }, + submessage: { + color: "#888", + fontSize: 14, + textAlign: "center", + }, +}); diff --git a/apps/example/src/Examples/WebGPU/List.tsx b/apps/example/src/Examples/WebGPU/List.tsx index ca4d1f9864..10c781d51d 100644 --- a/apps/example/src/Examples/WebGPU/List.tsx +++ b/apps/example/src/Examples/WebGPU/List.tsx @@ -21,6 +21,11 @@ export const examples = [ title: "Textured Cube", description: "Rotating 3D cube with texture mapping", }, + { + screen: "ImportExternalTexture", + title: "Import External Texture", + description: "Import a Skia NativeBuffer as a GPUExternalTexture", + }, ] as const; const styles = StyleSheet.create({ diff --git a/apps/example/src/Examples/WebGPU/Routes.ts b/apps/example/src/Examples/WebGPU/Routes.ts index 66cb2da81b..c4d91bec38 100644 --- a/apps/example/src/Examples/WebGPU/Routes.ts +++ b/apps/example/src/Examples/WebGPU/Routes.ts @@ -3,4 +3,5 @@ export type Routes = { Wireframes: undefined; Triangle: undefined; TexturedCube: undefined; + ImportExternalTexture: undefined; }; diff --git a/apps/example/src/Examples/WebGPU/index.tsx b/apps/example/src/Examples/WebGPU/index.tsx index 292bd85c23..2a95976e58 100644 --- a/apps/example/src/Examples/WebGPU/index.tsx +++ b/apps/example/src/Examples/WebGPU/index.tsx @@ -6,6 +6,7 @@ import { List } from "./List"; import { Triangle } from "./Triangle"; import { Wireframes } from "./Wireframes"; import { TexturedCube } from "./TexturedCube"; +import { ImportExternalTexture } from "./ImportExternalTexture"; const Stack = createNativeStackNavigator(); @@ -42,6 +43,13 @@ export const WebGPU = () => { title: "Textured Cube", }} /> + ); }; diff --git a/apps/example/src/Tests/Tests.tsx b/apps/example/src/Tests/Tests.tsx index fac5c7cf6c..892d5c0fe1 100644 --- a/apps/example/src/Tests/Tests.tsx +++ b/apps/example/src/Tests/Tests.tsx @@ -21,6 +21,15 @@ const scale = s / PixelRatio.get(); const size = 256 * scale; const timeToDraw = CI ? 1500 : 500; +// Report a failure back to the host as { $$error: message } so the matching +// test can `.rejects` instead of hanging on a missing reply, and so the throw +// is not surfaced as an unhandled exception that could break the socket for +// subsequent tests. +const errorEnvelope = (error: unknown) => + JSON.stringify({ + $$error: error instanceof Error ? error.message : String(error), + }); + interface TestsProps { assets: { [key: string]: any }; } @@ -38,22 +47,29 @@ export const Tests = ({ assets }: TestsProps) => { const handleMessage = (e: MessageEvent) => { const tree: any = JSON.parse(e.data); if (tree.code) { - client.send( - JSON.stringify( - eval( - `(function Main() { + try { + const result = eval( + `(function Main() { const __addDisposableResource = (e, o) => { return o; }; const __disposeResources = () => {}; return (${tree.code})(this.Skia, this.ctx, this.size, this.scale); })` - ).call({ - Skia, - ctx: parseProps(tree.ctx, assets), - size: size * PixelRatio.get(), - scale: s, - }) - ) - ); + ).call({ + Skia, + ctx: parseProps(tree.ctx, assets), + size: size * PixelRatio.get(), + scale: s, + }); + if (result instanceof Promise) { + result + .then((r) => client.send(JSON.stringify(r))) + .catch((error) => client.send(errorEnvelope(error))); + } else { + client.send(JSON.stringify(result)); + } + } catch (error) { + client.send(errorEnvelope(error)); + } } else if (typeof tree.screen === "string") { const Screen = Screens[tree.screen]; if (!Screen) { @@ -96,6 +112,7 @@ export const Tests = ({ assets }: TestsProps) => { }) .catch((e) => { console.error(e); + client.send(errorEnvelope(e)); }); } }, timeToDraw); @@ -109,10 +126,15 @@ export const Tests = ({ assets }: TestsProps) => { useEffect(() => { if (screen && client) { const it = setTimeout(async () => { - const image = await makeImageFromView(viewRef as RefObject); - if (image && client) { - const data = image.encodeToBytes(); - client.send(data); + try { + const image = await makeImageFromView(viewRef as RefObject); + if (image && client) { + const data = image.encodeToBytes(); + client.send(data); + } + } catch (e) { + console.error(e); + client.send(errorEnvelope(e)); } }, timeToDraw); return () => { diff --git a/apps/example/src/Tests/useClient.ts b/apps/example/src/Tests/useClient.ts index debb09d74e..52fcf86d0a 100644 --- a/apps/example/src/Tests/useClient.ts +++ b/apps/example/src/Tests/useClient.ts @@ -1,3 +1,4 @@ +import { Skia } from "@shopify/react-native-skia"; import { useEffect, useState } from "react"; import { Platform } from "react-native"; @@ -8,6 +9,17 @@ const HOST = OS === "android" ? ANDROID_WS_HOST : IOS_WS_HOST; const PORT = 4242; // eslint-disable-next-line @typescript-eslint/no-explicit-any const arch = (global as any)?.nativeFabricUIManager ? "fabric" : "paper"; +// Whether this build runs the Graphite backend, i.e. WebGPU bindings +// (navigator.gpu / Skia.getDevice()) are available. Reported to the test +// server so it can gate Graphite-only specs. Guarded in case an older runtime +// doesn't expose hasDevice(). +const graphite = (() => { + try { + return Skia.hasDevice?.() ?? false; + } catch { + return false; + } +})(); type UseClient = [client: WebSocket | null, hostname: string]; export const useClient = (): UseClient => { @@ -24,6 +36,7 @@ export const useClient = (): UseClient => { JSON.stringify({ OS, arch, + graphite, }) ); }; diff --git a/apps/example/tsconfig.json b/apps/example/tsconfig.json index e35cb74b63..3aff833c27 100644 --- a/apps/example/tsconfig.json +++ b/apps/example/tsconfig.json @@ -9,5 +9,8 @@ "esModuleInterop": true, "skipLibCheck": true, "baseUrl": ".", + "paths": { + "@shopify/react-native-skia": ["../../packages/skia/src/index.ts"] + } } } diff --git a/apps/remotion/package.json b/apps/remotion/package.json index acbed1c20c..1a49c9bfbb 100644 --- a/apps/remotion/package.json +++ b/apps/remotion/package.json @@ -14,7 +14,7 @@ "repository": {}, "license": "UNLICENSED", "dependencies": { - "@babel/core": "^7.20.2", + "@babel/core": "^7.29.6", "@babel/plugin-transform-flow-strip-types": "^7.25.9", "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", diff --git a/apps/web-app/package.json b/apps/web-app/package.json index a8e95f96bd..a68779c972 100644 --- a/apps/web-app/package.json +++ b/apps/web-app/package.json @@ -16,8 +16,8 @@ "@types/react-dom": "^19.0.0", "react": "19.0.0", "react-dom": "19.0.0", - "react-native-reanimated": "^4.2.1", - "react-native-worklets": "^0.7.0", + "react-native-reanimated": "4.3.1", + "react-native-worklets": "0.8.3", "react-scripts": "5.0.1", "typescript": "^5.2.2", "web-vitals": "^2.1.0" diff --git a/externals/depot_tools b/externals/depot_tools index a6671ce6c7..f488573369 160000 --- a/externals/depot_tools +++ b/externals/depot_tools @@ -1 +1 @@ -Subproject commit a6671ce6c7086f856322fb3afa9ff41c99d76de5 +Subproject commit f488573369dfbbdd523177b93a369d4096d06e5d diff --git a/externals/skia b/externals/skia index 4502f88af9..9f330f1704 160000 --- a/externals/skia +++ b/externals/skia @@ -1 +1 @@ -Subproject commit 4502f88af90279ad2685528bd3cf7e90ab140f19 +Subproject commit 9f330f1704305686dafa9eeef11de77caa5314b1 diff --git a/package.json b/package.json index f0525584b7..9be177f75c 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,6 @@ "eas-cli": "18.4.0", "playwright": "1.59.0", "react-native-test-app": "^4.2.0", - "turbo": "^2.1.1" + "turbo": "^2.9.14" } } diff --git a/packages/skia/.babelrc b/packages/skia/.babelrc index d25ebe3bee..bccb2e74d7 100644 --- a/packages/skia/.babelrc +++ b/packages/skia/.babelrc @@ -28,7 +28,7 @@ ], "plugins": [ "@babel/plugin-transform-explicit-resource-management", - "@babel/plugin-proposal-class-properties", - "@babel/plugin-proposal-nullish-coalescing-operator" + "@babel/plugin-transform-class-properties", + "@babel/plugin-transform-nullish-coalescing-operator" ] } \ No newline at end of file diff --git a/packages/skia/CONTRIBUTING.md b/packages/skia/CONTRIBUTING.md index 8e9c333c53..b7efb5ee90 100644 --- a/packages/skia/CONTRIBUTING.md +++ b/packages/skia/CONTRIBUTING.md @@ -6,10 +6,20 @@ To develop react-native-skia, you can build the skia libraries on your computer. ### Using pre-built binaries -The Skia prebuilt binaries are installed as npm dependencies (`react-native-skia-android`, `react-native-skia-apple-*`). The native build systems (Gradle, CocoaPods) automatically resolve these packages. +The Skia prebuilt binaries are installed as npm dependencies (`react-native-skia-android`, `react-native-skia-apple-*`). The native build systems (Gradle, CocoaPods) automatically resolve these packages — there is no `postinstall` step. - Checkout submodules: `git submodule update --init --recursive` - Install dependencies: `yarn` +- Set up the standard build: `cd packages/skia && yarn install-skia` + +`yarn install-skia` copies the Skia headers needed to compile against the prebuilt binaries. The binaries themselves are not copied: Gradle reads them in place from `node_modules`, and the podspec copies them in at `pod install` time. + +#### Switching between the standard and Graphite builds + +- Standard (Ganesh) build: `yarn install-skia` +- [Graphite](https://skia.org/docs/user/graphite/) build: `yarn install-skia-graphite` (downloads the Graphite binaries into `libs/` and writes a `libs/.graphite` marker) + +Run `yarn install-skia` to switch back from Graphite to the standard build (it removes the `libs/.graphite` marker). After switching, run `pod install` again in the example app so CocoaPods picks up the matching frameworks. ### Building @@ -25,15 +35,99 @@ And then the _SDK Location_ section. It will show you the NDK path, or the optio - Build the Skia libraries: `yarn build-skia` (this can take a while) - Copy Skia headers: `yarn copy-skia-headers` -### Upgrading +### Upgrading Skia + +Upgrading to a new Skia milestone (for example `chrome/m147` to `chrome/m150`) is a multi-stage process: bump the submodule, build locally and fix the C++ API churn, test the example app against the freshly built binaries, publish the prebuilt binaries from CI, and finally release them through the binaries repo. The steps below use `m150` as the running example; substitute the milestone you are upgrading to. + +#### 1. Update the Skia submodule + +1. In `.gitmodules`, change the `externals/skia` submodule `branch` from `chrome/m147` to `chrome/m150`. +2. Fetch and checkout the new tip: + ```sh + cd externals/skia + git fetch origin chrome/m150 + git checkout FETCH_HEAD -- + cd ../.. + ``` + Confirm the submodule is on the new tip with `git -C externals/skia rev-parse HEAD`. (Once `.gitmodules` points at the new branch, `git submodule update --recursive --remote` also moves it.) + +#### 2. Build Skia and fix the C++ API churn + +Make sure `$ANDROID_NDK` and `$ANDROID_HOME` are set (see [Building](#building)). + +1. Bootstrap depot_tools once (otherwise `gn gen` fails with `python3_bin_reldir.txt not found`): + ```sh + cd externals/depot_tools && ./update_depot_tools && cd ../.. + ``` +2. Clean and build from `packages/skia`: + ```sh + cd packages/skia + yarn clean-skia + yarn build-skia # all platforms, or scope it: yarn build-skia apple-ios android + yarn copy-skia-headers # build-skia also runs this at the end + ``` + `build-skia` runs `tools/git-sync-deps` first, which fetches third-party deps from `*.googlesource.com`. This can fail with HTTP 429 ("Short term server-time rate limit exceeded"). Re-run it with backoff until it succeeds before retrying the build: + ```sh + cd externals/skia && PATH=../depot_tools/:$PATH python3 tools/git-sync-deps + ``` +3. Fix any C++ compilation errors coming from the new headers. Skia's public API churns between milestones (APIs that start returning `std::optional`, `SkPath` becoming `SkPathBuilder`, gradients moving to `SkGradient`/`SkShaders`, new required includes, and so on). The wrapper code in `cpp/**` is what needs updating; the previous Skia bump commit is a good reference for the kinds of changes to expect. + - If a vendored Skia source file starts including a header that is not copied yet (for example `src/base/SkAutoLocaleSetter.h`), add it to the copy list in `scripts/skia-configuration.ts` (`copyHeaders`) and re-run `yarn copy-skia-headers`. + - The vendored headers under `cpp/skia/**` are generated by `copy-skia-headers` and are gitignored, so only the script and the wrapper sources show up as changes. + +#### 3. Test the example app locally + +Important gotcha: in the standard (Ganesh) build the example app links against the prebuilt binaries from the npm packages (`react-native-skia-android`, `react-native-skia-apple-*`), not the libs you just built in `packages/skia/libs/`. Until those packages are republished (steps 4 to 6), the app compiles against the new `m150` headers but links the old binaries, which surfaces as link errors such as `undefined symbol: vtable for SkFontMgr`. Point the local build at your fresh binaries first: + +- Android: overwrite the static libs in the npm package with the ones you built: + ```sh + for abi in armeabi-v7a arm64-v8a x86 x86_64; do + cp packages/skia/libs/android/$abi/*.a node_modules/react-native-skia-android/libs/$abi/ + done + ``` +- iOS: `pod install` copies the npm package's xcframeworks into `libs/ios`, skipping only when `libs/ios/.version` matches the npm package version. After `yarn build-skia apple-ios` rewrites `libs/ios` with your build, stamp the marker with the current npm version so `pod install` leaves your binaries in place: + ```sh + printf "$(node -p "require('react-native-skia-apple-ios/package.json').version")" \ + > packages/skia/libs/ios/.version + cd apps/example/ios && pod install && cd - + ``` + +These `node_modules` and `.version` edits are throwaway; `yarn install` restores the published binaries. + +Then build both platforms: + +- iOS: + ```sh + cd apps/example/ios + xcodebuild -workspace example.xcworkspace -scheme example -sdk iphonesimulator \ + -configuration Debug -destination 'generic/platform=iOS Simulator' \ + build CODE_SIGNING_ALLOWED=NO + ``` +- Android: + ```sh + cd apps/example/android && ./gradlew :app:assembleDebug + ``` + +`yarn ios` / `yarn android` work too. Run the e2e tests (see [Testing](#testing)) to validate behavior, not just compilation. + +#### 4. Publish the prebuilt binaries (GitHub Actions) + +With the submodule bump merged (the workflows detect the Skia branch from the checked-in submodule), build and upload the prebuilt binaries from the Actions tab. Both workflows are `workflow_dispatch` only and share two inputs: + +- `tag_suffix`: appended to the tag (for example `a` produces `skia-m150a`) for re-spins of the same milestone. +- `dry_run`: build and upload as workflow artifacts only, skipping the GitHub release. Use this to validate the build before cutting a real release. + +Run them: + +- Standard (Ganesh): **Build SKIA** (`.github/workflows/build-skia.yml`). Builds apple-ios, apple-tvos, apple-macos and the four Android ABIs, creates a prerelease tagged `skia-m150`, and uploads one tarball per target. +- Graphite: **Build SKIA Graphite** (`.github/workflows/build-skia-graphite.yml`, `SK_GRAPHITE=1`). Builds iOS, macOS and Android (no tvOS/maccatalyst), tags `skia-graphite-m150`, and additionally uploads the Graphite headers tarball. It also accepts an optional `skia_branch` input to build a branch other than the submodule default. + +#### 5. Release the binaries through react-native-skia-binaries + +The npm packages this library consumes (`react-native-skia-android`, `react-native-skia-apple-ios`, `react-native-skia-apple-macos`, `react-native-skia-apple-tvos`, and the Graphite headers package) are produced from the release tarballs in [wcandillon/react-native-skia-binaries](https://github.com/wcandillon/react-native-skia-binaries). Update that repo to consume the new `skia-m150` and `skia-graphite-m150` release assets, bump the package versions, and publish them to npm. -If a new version of Skia is included in an upgrade of this library, you need to perform a few extra steps before continuing: +#### 6. Point the library at the new binaries -1. Update submodules: `git submodule update --recursive --remote` -2. Clean Skia: `yarn clean-skia` -3. Build Skia: `yarn build-skia` -4. Copy Skia Headers: `yarn copy-skia-headers` -5. Run pod install in the example project +Back in this repo, bump the prebuilt binary versions in `packages/skia/package.json` (`react-native-skia-android` and `react-native-skia-apple-*`) to the versions you just published, run `yarn`, and re-run `pod install` in the example app so it consumes the released binaries. Drop the throwaway `node_modules` and `libs/ios/.version` edits from step 3. ### Publishing diff --git a/packages/skia/android/CMakeLists.txt b/packages/skia/android/CMakeLists.txt index 1b085e6c14..0f4f24235c 100644 --- a/packages/skia/android/CMakeLists.txt +++ b/packages/skia/android/CMakeLists.txt @@ -4,7 +4,8 @@ cmake_minimum_required(VERSION 3.4.1) set (CMAKE_VERBOSE_MAKEFILE ON) set (CMAKE_CXX_STANDARD 20) -# SKIA_LIBS_PATH is passed from Gradle (pointing to libs/android/, populated by npm postinstall) +# SKIA_LIBS_PATH is passed from Gradle (pointing at the prebuilt Skia binaries, +# read straight from the react-native-skia-android npm package, or libs/android for Graphite) # Append the ABI to get the full path set (SKIA_LIBS_PATH "${SKIA_LIBS_PATH}/${ANDROID_ABI}") @@ -17,12 +18,12 @@ if(NOT EXISTS "${SKIA_LIBS_PATH}/libskia.a") message("│ │") message("│ Could not find libskia.a at: ${SKIA_LIBS_PATH} │") message("│ │") - message("│ Run the following command to install them: │") - message("│ npx install-skia │") + message("│ Make sure dependencies are installed: │") + message("│ yarn install (or npm install) │") message("│ │") message("└─────────────────────────────────────────────────────────────────────────────┘") message("") - message(FATAL_ERROR "Skia prebuilt binaries not found. Run `npx install-skia` to fix this.") + message(FATAL_ERROR "Skia prebuilt binaries not found. Run `yarn install` to fix this.") endif() # Import libskia @@ -134,12 +135,15 @@ if(SK_GRAPHITE) "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUComputePipeline.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUDevice.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUDeviceLostInfo.cpp" + "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUExternalTexture.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUQuerySet.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUQueue.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPURenderBundleEncoder.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPURenderPassEncoder.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPURenderPipeline.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUShaderModule.cpp" + "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUSharedFence.cpp" + "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUSharedTextureMemory.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUSupportedLimits.cpp" "${PROJECT_SOURCE_DIR}/../cpp/rnwgpu/api/GPUTexture.cpp" diff --git a/packages/skia/android/build.gradle b/packages/skia/android/build.gradle index 437408bb12..ae3a4be040 100644 --- a/packages/skia/android/build.gradle +++ b/packages/skia/android/build.gradle @@ -58,10 +58,29 @@ static def findNodeModules(baseDir) { def nodeModules = findNodeModules(projectDir) -// Skia prebuilt libs are copied into libs/android/ by the npm postinstall script -// Graphite is detected via marker file created by install-skia-graphite +// Resolve a node package directory using Node's own module resolution, so we +// pick up the prebuilt Skia binaries straight from node_modules (no postinstall +// copy step needed). Mirrors `require.resolve(pkg/package.json)`. +static def resolveNodePackage(packageName, baseDir) { + def script = "process.stdout.write(require('path').dirname(require.resolve('${packageName}/package.json')))" + def proc = ["node", "-e", script].execute(null, baseDir) + proc.waitFor() + if (proc.exitValue() != 0) { + throw new GradleException( + "react-native-skia: Could not resolve the '${packageName}' package. " + + "Make sure dependencies are installed (yarn install / npm install).\n" + proc.err.text + ) + } + return proc.text.trim() +} + +// Graphite is detected via a marker file created by install-skia-graphite, which +// downloads its binaries directly into libs/. For the default (Ganesh) build the +// binaries live in the react-native-skia-android npm package and are read in place. def useGraphite = file("${projectDir}/../libs/.graphite").exists() -def skiaLibsPath = "${projectDir}/../libs/android" +def skiaLibsPath = useGraphite + ? "${projectDir}/../libs/android" + : "${resolveNodePackage('react-native-skia-android', projectDir)}/libs" logger.warn("react-native-skia: SK_GRAPHITE: ${useGraphite}") logger.warn("react-native-skia: Skia libs: ${skiaLibsPath}") diff --git a/packages/skia/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h b/packages/skia/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h index f9f8a1540d..cb98691276 100644 --- a/packages/skia/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +++ b/packages/skia/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h @@ -3,6 +3,8 @@ #if __ANDROID_API__ >= 26 #include #endif +#include +#include #include #include #include @@ -120,6 +122,13 @@ class RNSkAndroidPlatformContext : public RNSkPlatformContext { uint64_t makeNativeBuffer(sk_sp image) override { #if __ANDROID_API__ >= 26 +#if defined(SK_GRAPHITE) + // A Graphite GPU texture can't be read with readPixels(nullptr); read it + // back to a raster image first or the buffer ends up uninitialized/black. + if (image && image->isTextureBacked()) { + image = DawnContext::getInstance().MakeRasterImage(image); + } +#endif auto bytesPerPixel = image->imageInfo().bytesPerPixel(); int bytesPerRow = image->width() * bytesPerPixel; auto buf = SkData::MakeUninitialized(image->width() * image->height() * @@ -177,6 +186,59 @@ class RNSkAndroidPlatformContext : public RNSkPlatformContext { #endif } + uint64_t makeTestNativeBuffer(int width, int height) override { +#if __ANDROID_API__ >= 26 + // Allocate an RGBA8 AHardwareBuffer and fill it with a procedural test + // pattern (RGB gradient + diagonal stripes), entirely on the CPU. We read + // the buffer's actual row stride after locking (the allocator may pad it), + // so the upload is correct regardless of width alignment. + AHardwareBuffer_Desc desc = {}; + desc.width = static_cast(width); + desc.height = static_cast(height); + desc.layers = 1; + desc.format = AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM; + desc.usage = AHARDWAREBUFFER_USAGE_CPU_WRITE_RARELY | + AHARDWAREBUFFER_USAGE_CPU_READ_RARELY | + AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE; + + AHardwareBuffer *buffer = nullptr; + if (AHardwareBuffer_allocate(&desc, &buffer) != 0) { + return 0; + } + + AHardwareBuffer_Desc allocated = {}; + AHardwareBuffer_describe(buffer, &allocated); + const size_t rowBytes = static_cast(allocated.stride) * 4; + + void *mappedBuffer = nullptr; + AHardwareBuffer_lock(buffer, AHARDWAREBUFFER_USAGE_CPU_WRITE_RARELY, -1, + nullptr, &mappedBuffer); + if (mappedBuffer == nullptr) { + AHardwareBuffer_release(buffer); + return 0; + } + + auto *base = static_cast(mappedBuffer); + for (int y = 0; y < height; ++y) { + uint8_t *row = base + y * rowBytes; + for (int x = 0; x < width; ++x) { + uint8_t r = static_cast((x * 255) / std::max(width - 1, 1)); + uint8_t g = static_cast((y * 255) / std::max(height - 1, 1)); + uint8_t b = static_cast(((x + y) & 0x20) ? 220 : 30); + row[x * 4 + 0] = r; // RGBA byte order + row[x * 4 + 1] = g; + row[x * 4 + 2] = b; + row[x * 4 + 3] = 0xFF; + } + } + + AHardwareBuffer_unlock(buffer, nullptr); + return reinterpret_cast(buffer); +#else + return 0; +#endif + } + #if !defined(SK_GRAPHITE) GrDirectContext *getDirectContext() override { return OpenGLContext::getInstance().getDirectContext(); diff --git a/packages/skia/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerDelegate.java b/packages/skia/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerDelegate.java new file mode 100644 index 0000000000..553618e68f --- /dev/null +++ b/packages/skia/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerDelegate.java @@ -0,0 +1,35 @@ +/** +* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). +* +* Do not edit this file as changes may cause incorrect behavior and will be lost +* once the code is regenerated. +* +* @generated by codegen project: GeneratePropsJavaDelegate.js +*/ + +package com.facebook.react.viewmanagers; + +import android.view.View; +import androidx.annotation.Nullable; +import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManager; +import com.facebook.react.uimanager.LayoutShadowNode; + +public class SkiaWebGPUViewManagerDelegate & SkiaWebGPUViewManagerInterface> extends BaseViewManagerDelegate { + public SkiaWebGPUViewManagerDelegate(U viewManager) { + super(viewManager); + } + @Override + public void setProperty(T view, String propName, @Nullable Object value) { + switch (propName) { + case "contextId": + mViewManager.setContextId(view, value == null ? 0 : ((Double) value).intValue()); + break; + case "transparent": + mViewManager.setTransparent(view, value != null && (boolean) value); + break; + default: + super.setProperty(view, propName, value); + } + } +} diff --git a/packages/skia/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerInterface.java b/packages/skia/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerInterface.java new file mode 100644 index 0000000000..e905536180 --- /dev/null +++ b/packages/skia/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerInterface.java @@ -0,0 +1,17 @@ +/** +* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). +* +* Do not edit this file as changes may cause incorrect behavior and will be lost +* once the code is regenerated. +* +* @generated by codegen project: GeneratePropsJavaInterface.js +*/ + +package com.facebook.react.viewmanagers; + +import android.view.View; + +public interface SkiaWebGPUViewManagerInterface { + void setContextId(T view, int value); + void setTransparent(T view, boolean value); +} diff --git a/packages/skia/apple/RNSkApplePlatformContext.h b/packages/skia/apple/RNSkApplePlatformContext.h index f24823420c..9ee648093f 100644 --- a/packages/skia/apple/RNSkApplePlatformContext.h +++ b/packages/skia/apple/RNSkApplePlatformContext.h @@ -57,6 +57,8 @@ class RNSkApplePlatformContext : public RNSkPlatformContext { uint64_t makeNativeBuffer(sk_sp image) override; + uint64_t makeTestNativeBuffer(int width, int height) override; + void releaseNativeBuffer(uint64_t pointer) override; std::shared_ptr createVideo(const std::string &url) override; diff --git a/packages/skia/apple/RNSkApplePlatformContext.mm b/packages/skia/apple/RNSkApplePlatformContext.mm index 9f5fda81b3..b7800624ee 100644 --- a/packages/skia/apple/RNSkApplePlatformContext.mm +++ b/packages/skia/apple/RNSkApplePlatformContext.mm @@ -3,6 +3,7 @@ #import #include #import +#include #include #include #include @@ -82,6 +83,15 @@ } uint64_t RNSkApplePlatformContext::makeNativeBuffer(sk_sp image) { +#if defined(SK_GRAPHITE) + // A Graphite GPU texture can't be read with readPixels(nullptr) (and can't be + // drawn onto a raster surface) — both yield uninitialized/black pixels. Read + // it back to a raster image first. (JsiNativeBuffer calls the Ganesh-only + // SkImage::makeNonTextureImage(), which is a no-op on Graphite.) + if (image && image->isTextureBacked()) { + image = DawnContext::getInstance().MakeRasterImage(image); + } +#endif // 0. If Image is not in BGRA, convert to BGRA as only BGRA is supported. if (image->colorType() != kBGRA_8888_SkColorType) { const SkImageInfo bgraInfo = @@ -170,6 +180,67 @@ return reinterpret_cast(pixelBuffer); } +uint64_t RNSkApplePlatformContext::makeTestNativeBuffer(int width, int height) { + // Allocate a BGRA IOSurface and fill it with a procedural test pattern (RGB + // gradient + diagonal stripes), entirely on the CPU. No GPU / SkImage round + // trip, so this works the same on every backend. + const int bytesPerElement = 4; + const int pitch = width * bytesPerElement; + const int allocSize = width * height * bytesPerElement; + OSType pixelFormat = kCVPixelFormatType_32BGRA; + CFMutableDictionaryRef dict = CFDictionaryCreateMutable( + kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); + auto setInt = [&](CFStringRef key, int value) { + CFNumberRef num = + CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &value); + CFDictionarySetValue(dict, key, num); + CFRelease(num); + }; + setInt(kIOSurfaceWidth, width); + setInt(kIOSurfaceHeight, height); + setInt(kIOSurfaceBytesPerRow, pitch); + setInt(kIOSurfaceBytesPerElement, bytesPerElement); + setInt(kIOSurfacePixelFormat, static_cast(pixelFormat)); + setInt(kIOSurfaceAllocSize, allocSize); + IOSurfaceRef surface = IOSurfaceCreate(dict); + CFRelease(dict); + if (surface == nil) { + throw std::runtime_error("Failed to create " + std::to_string(width) + "x" + + std::to_string(height) + " test IOSurface!"); + } + + IOSurfaceLock(surface, 0, nil); + auto *base = static_cast(IOSurfaceGetBaseAddress(surface)); + const size_t rowBytes = IOSurfaceGetBytesPerRow(surface); + for (int y = 0; y < height; ++y) { + uint8_t *row = base + y * rowBytes; + for (int x = 0; x < width; ++x) { + uint8_t r = static_cast((x * 255) / std::max(width - 1, 1)); + uint8_t g = static_cast((y * 255) / std::max(height - 1, 1)); + uint8_t b = static_cast(((x + y) & 0x20) ? 220 : 30); + row[x * 4 + 0] = b; // BGRA byte order + row[x * 4 + 1] = g; + row[x * 4 + 2] = r; + row[x * 4 + 3] = 0xFF; + } + } + IOSurfaceUnlock(surface, 0, nil); + + CVPixelBufferRef pixelBuffer = nullptr; + CVReturn result = + CVPixelBufferCreateWithIOSurface(nil, surface, nil, &pixelBuffer); + // The CVPixelBuffer retains the IOSurface; drop our reference so the + // CVPixelBuffer is its sole owner (freed by releaseNativeBuffer). + CFRelease(surface); + if (result != kCVReturnSuccess) { + throw std::runtime_error("Failed to create CVPixelBuffer for test native " + "buffer! Return value: " + + std::to_string(result)); + } + return reinterpret_cast(pixelBuffer); +} + #if !defined(SK_GRAPHITE) GrDirectContext *RNSkApplePlatformContext::getDirectContext() { return MetalContext::getInstance().getDirectContext(); diff --git a/packages/skia/apple/RNWebGPUAppleNativeBuffer.mm b/packages/skia/apple/RNWebGPUAppleNativeBuffer.mm new file mode 100644 index 0000000000..a55a746a93 --- /dev/null +++ b/packages/skia/apple/RNWebGPUAppleNativeBuffer.mm @@ -0,0 +1,33 @@ +#ifdef SK_GRAPHITE + +#import + +#include "rnwgpu/api/AppleNativeBuffer.h" + +namespace rnwgpu { + +void *GetIOSurfaceFromNativeBuffer(void *cvPixelBuffer, uint32_t *outWidth, + uint32_t *outHeight) { + auto pixelBuffer = reinterpret_cast(cvPixelBuffer); + if (pixelBuffer == nullptr) { + if (outWidth != nullptr) { + *outWidth = 0; + } + if (outHeight != nullptr) { + *outHeight = 0; + } + return nullptr; + } + if (outWidth != nullptr) { + *outWidth = static_cast(CVPixelBufferGetWidth(pixelBuffer)); + } + if (outHeight != nullptr) { + *outHeight = static_cast(CVPixelBufferGetHeight(pixelBuffer)); + } + // The IOSurface is owned by the CVPixelBuffer; we don't retain it here. + return CVPixelBufferGetIOSurface(pixelBuffer); +} + +} // namespace rnwgpu + +#endif // SK_GRAPHITE diff --git a/packages/skia/cpp/api/JsiNativeBuffer.h b/packages/skia/cpp/api/JsiNativeBuffer.h index 283c4b8db7..480e8baca9 100644 --- a/packages/skia/cpp/api/JsiNativeBuffer.h +++ b/packages/skia/cpp/api/JsiNativeBuffer.h @@ -24,6 +24,13 @@ class JsiNativeBufferFactory : public JsiSkHostObject { return jsi::BigInt::fromUint64(runtime, pointer); } + JSI_HOST_FUNCTION(MakeTestBuffer) { + auto width = static_cast(arguments[0].asNumber()); + auto height = static_cast(arguments[1].asNumber()); + uint64_t pointer = getContext()->makeTestNativeBuffer(width, height); + return jsi::BigInt::fromUint64(runtime, pointer); + } + JSI_HOST_FUNCTION(Release) { jsi::BigInt pointer = arguments[0].asBigInt(runtime); @@ -34,7 +41,8 @@ class JsiNativeBufferFactory : public JsiSkHostObject { } JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiNativeBufferFactory, Release), - JSI_EXPORT_FUNC(JsiNativeBufferFactory, MakeFromImage)) + JSI_EXPORT_FUNC(JsiNativeBufferFactory, MakeFromImage), + JSI_EXPORT_FUNC(JsiNativeBufferFactory, MakeTestBuffer)) size_t getMemoryPressure() const override { return 1024; } diff --git a/packages/skia/cpp/api/JsiSkAnimatedImage.h b/packages/skia/cpp/api/JsiSkAnimatedImage.h index 25551b8e44..a7e47214e8 100644 --- a/packages/skia/cpp/api/JsiSkAnimatedImage.h +++ b/packages/skia/cpp/api/JsiSkAnimatedImage.h @@ -8,7 +8,7 @@ #include #include "JsiSkHostObjects.h" -#include "third_party/base64.h" +#include "api/third_party/base64.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/api/JsiSkAnimatedImageFactory.h b/packages/skia/cpp/api/JsiSkAnimatedImageFactory.h index 01f1422ce1..20222c3311 100644 --- a/packages/skia/cpp/api/JsiSkAnimatedImageFactory.h +++ b/packages/skia/cpp/api/JsiSkAnimatedImageFactory.h @@ -5,7 +5,7 @@ #include -#include "JsiPromises.h" +#include "jsi/JsiPromises.h" #include "JsiSkAnimatedImage.h" #include "JsiSkData.h" #include "JsiSkHostObjects.h" diff --git a/packages/skia/cpp/api/JsiSkApi.h b/packages/skia/cpp/api/JsiSkApi.h index f78c64ec77..e9d55c6e43 100644 --- a/packages/skia/cpp/api/JsiSkApi.h +++ b/packages/skia/cpp/api/JsiSkApi.h @@ -2,12 +2,12 @@ #include -#include "RNSkPlatformContext.h" +#include "rnskia/RNSkPlatformContext.h" #include "JsiSkHostObjects.h" #ifdef SK_GRAPHITE -#include "RNDawnContext.h" +#include "rnskia/RNDawnContext.h" #include "rnwgpu/api/GPUDevice.h" #include "rnwgpu/async/AsyncRunner.h" #endif @@ -61,7 +61,7 @@ #include "JsiSkiaContext.h" #include "JsiSkottieFactory.h" #include "JsiVideo.h" -#include "recorder/JsiRecorder.h" +#include "api/recorder/JsiRecorder.h" namespace RNSkia { diff --git a/packages/skia/cpp/api/JsiSkCanvas.h b/packages/skia/cpp/api/JsiSkCanvas.h index 98556b86e0..7cfa9ea2f8 100644 --- a/packages/skia/cpp/api/JsiSkCanvas.h +++ b/packages/skia/cpp/api/JsiSkCanvas.h @@ -19,7 +19,11 @@ #include "JsiSkTextBlob.h" #include "JsiSkVertices.h" -#include "RNSkTypedArray.h" +#include "utils/RNSkTypedArray.h" + +#if defined(SK_GRAPHITE) +#include "rnskia/RNDawnContext.h" +#endif #include @@ -644,6 +648,29 @@ class JsiSkCanvas : public JsiSkHostObject { .getArrayBuffer(runtime); auto bfrPtr = reinterpret_cast(buffer.data(runtime)); +#if defined(SK_GRAPHITE) + // Graphite records draws lazily and offers no synchronous GPU readback. If + // this canvas belongs to a surface, snap & submit its recording, snapshot + // it to a CPU raster image and read from that (mirroring makeImageSnapshot). + // A canvas without an owning surface (e.g. a picture-recording canvas) has + // no texture to read back, so fall through to the raster canvas read below. + if (_surface) { + // Snapshot first: makeImageSnapshot records a copy task into the recorder + // that must be submitted before the texture can be read back (this is the + // same ordering used by JsiSkSurface::makeImageSnapshot and RNSkView). + auto snapshot = _surface->makeImageSnapshot(); + if (auto *recorder = _surface->recorder()) { + DawnContext::getInstance().submitRecording(recorder->snap().get()); + } + auto raster = DawnContext::getInstance().MakeRasterImage(snapshot); + if (!raster || + !raster->readPixels(nullptr, *info, bfrPtr, bytesPerRow, srcX, srcY)) { + return jsi::Value::null(); + } + return dest; + } +#endif + if (!_canvas->readPixels(*info, bfrPtr, bytesPerRow, srcX, srcY)) { return jsi::Value::null(); } @@ -708,7 +735,13 @@ class JsiSkCanvas : public JsiSkHostObject { void setCanvas(SkCanvas *canvas) { _canvas = canvas; } SkCanvas *getCanvas() { return _canvas; } + // Optionally associate the canvas with its owning surface. This lets + // readPixels fall back to a surface snapshot on Graphite, which has no + // synchronous canvas readback. + void setSurface(sk_sp surface) { _surface = std::move(surface); } + private: SkCanvas *_canvas; + sk_sp _surface; }; } // namespace RNSkia diff --git a/packages/skia/cpp/api/JsiSkColor.h b/packages/skia/cpp/api/JsiSkColor.h index 75334fe08f..305a8b8bac 100644 --- a/packages/skia/cpp/api/JsiSkColor.h +++ b/packages/skia/cpp/api/JsiSkColor.h @@ -7,7 +7,7 @@ #include #include "JsiSkHostObjects.h" -#include "third_party/CSSColorParser.h" +#include "api/third_party/CSSColorParser.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/api/JsiSkDataFactory.h b/packages/skia/cpp/api/JsiSkDataFactory.h index 15d6046083..477992b1e8 100644 --- a/packages/skia/cpp/api/JsiSkDataFactory.h +++ b/packages/skia/cpp/api/JsiSkDataFactory.h @@ -5,9 +5,9 @@ #include -#include "JsiPromises.h" +#include "jsi/JsiPromises.h" #include "JsiSkData.h" -#include "third_party/base64.h" +#include "api/third_party/base64.h" namespace RNSkia { diff --git a/packages/skia/cpp/api/JsiSkFont.h b/packages/skia/cpp/api/JsiSkFont.h index baf3a8abd6..be387ed61d 100644 --- a/packages/skia/cpp/api/JsiSkFont.h +++ b/packages/skia/cpp/api/JsiSkFont.h @@ -6,7 +6,7 @@ #include #include "JsiSkHostObjects.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #include #include "JsiSkPaint.h" diff --git a/packages/skia/cpp/api/JsiSkFontMgr.h b/packages/skia/cpp/api/JsiSkFontMgr.h index aec7f266a5..4ce5837ea4 100644 --- a/packages/skia/cpp/api/JsiSkFontMgr.h +++ b/packages/skia/cpp/api/JsiSkFontMgr.h @@ -7,7 +7,7 @@ #include "JsiSkFontStyle.h" #include "JsiSkHostObjects.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #include #pragma clang diagnostic push diff --git a/packages/skia/cpp/api/JsiSkHostObjects.h b/packages/skia/cpp/api/JsiSkHostObjects.h index 756476ffe0..6d8f2c01e3 100644 --- a/packages/skia/cpp/api/JsiSkHostObjects.h +++ b/packages/skia/cpp/api/JsiSkHostObjects.h @@ -5,9 +5,9 @@ #include #include -#include "JsiHostObject.h" -#include "RNSkLog.h" -#include "RNSkPlatformContext.h" +#include "jsi/JsiHostObject.h" +#include "utils/RNSkLog.h" +#include "rnskia/RNSkPlatformContext.h" namespace RNSkia { diff --git a/packages/skia/cpp/api/JsiSkImage.h b/packages/skia/cpp/api/JsiSkImage.h index a269ddd499..377324b762 100644 --- a/packages/skia/cpp/api/JsiSkImage.h +++ b/packages/skia/cpp/api/JsiSkImage.h @@ -9,13 +9,13 @@ #include "JsiSkImageInfo.h" #include "JsiSkMatrix.h" #include "JsiSkShader.h" -#include "third_party/base64.h" +#include "api/third_party/base64.h" #include "JsiTextureInfo.h" -#include "RNSkTypedArray.h" +#include "utils/RNSkTypedArray.h" #if defined(SK_GRAPHITE) -#include "RNDawnContext.h" +#include "rnskia/RNDawnContext.h" #include "include/gpu/graphite/Context.h" #else #include "include/gpu/ganesh/GrDirectContext.h" @@ -277,9 +277,6 @@ class JsiSkImage : public JsiSkWrappingSkPtrHostObject { } JSI_HOST_FUNCTION(readPixels) { -#if defined(SK_GRAPHITE) - throw std::runtime_error("Not implemented yet"); -#else int srcX = 0; int srcY = 0; if (count > 0 && !arguments[0].isUndefined()) { @@ -313,13 +310,24 @@ class JsiSkImage : public JsiSkWrappingSkPtrHostObject { .getArrayBuffer(runtime); auto bfrPtr = reinterpret_cast(buffer.data(runtime)); +#if defined(SK_GRAPHITE) + // Graphite offers no synchronous GPU readback, so fall back to a CPU raster + // copy of the image (a no-op when the image is already raster) and read the + // pixels from that. This matches the Ganesh behaviour for non-texture and + // texture-backed images alike. + auto image = DawnContext::getInstance().MakeRasterImage(getObject()); + if (!image || + !image->readPixels(nullptr, info, bfrPtr, bytesPerRow, srcX, srcY)) { + return jsi::Value::null(); + } +#else auto grContext = getContext()->getDirectContext(); if (!getObject()->readPixels(grContext, info, bfrPtr, bytesPerRow, srcX, srcY)) { return jsi::Value::null(); } - return dest; #endif + return dest; } JSI_HOST_FUNCTION(makeNonTextureImage) { diff --git a/packages/skia/cpp/api/JsiSkImageFactory.h b/packages/skia/cpp/api/JsiSkImageFactory.h index 9661b69b46..e6382c749b 100644 --- a/packages/skia/cpp/api/JsiSkImageFactory.h +++ b/packages/skia/cpp/api/JsiSkImageFactory.h @@ -5,14 +5,14 @@ #include -#include "JsiPromises.h" +#include "jsi/JsiPromises.h" #include "JsiSkData.h" #include "JsiSkHostObjects.h" #include "JsiSkImage.h" #include "JsiSkImageInfo.h" #ifdef SK_GRAPHITE -#include "RNDawnContext.h" +#include "rnskia/RNDawnContext.h" #include "rnwgpu/api/GPUTexture.h" #endif diff --git a/packages/skia/cpp/api/JsiSkPath.h b/packages/skia/cpp/api/JsiSkPath.h index 5e3eeabc76..1b0b8d86b1 100644 --- a/packages/skia/cpp/api/JsiSkPath.h +++ b/packages/skia/cpp/api/JsiSkPath.h @@ -14,7 +14,7 @@ #include "JsiSkPoint.h" #include "JsiSkRRect.h" #include "JsiSkRect.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/api/JsiSkPathFactory.h b/packages/skia/cpp/api/JsiSkPathFactory.h index 09cf7495f7..ec639d9186 100644 --- a/packages/skia/cpp/api/JsiSkPathFactory.h +++ b/packages/skia/cpp/api/JsiSkPathFactory.h @@ -17,7 +17,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #include "include/core/SkPath.h" #include "include/core/SkPathBuilder.h" #include "include/core/SkPathUtils.h" diff --git a/packages/skia/cpp/api/JsiSkSkottie.h b/packages/skia/cpp/api/JsiSkSkottie.h index 73e97a2cee..d6c6933c4a 100644 --- a/packages/skia/cpp/api/JsiSkSkottie.h +++ b/packages/skia/cpp/api/JsiSkSkottie.h @@ -7,7 +7,7 @@ #include "JsiSkHostObjects.h" #include "JsiSkPoint.h" #include "JsiSkRect.h" -#include "third_party/SkottieUtils.h" +#include "api/third_party/SkottieUtils.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/api/JsiSkSurface.h b/packages/skia/cpp/api/JsiSkSurface.h index 343951d279..33e287c424 100644 --- a/packages/skia/cpp/api/JsiSkSurface.h +++ b/packages/skia/cpp/api/JsiSkSurface.h @@ -15,7 +15,7 @@ #include "JsiSkImage.h" #if defined(SK_GRAPHITE) -#include "RNDawnContext.h" +#include "rnskia/RNDawnContext.h" #endif #pragma clang diagnostic push @@ -72,8 +72,12 @@ class JsiSkSurface : public JsiSkWrappingSkPtrHostObject { } JSI_HOST_FUNCTION(getCanvas) { + auto surface = getObject(); auto canvas = - std::make_shared(getContext(), getObject()->getCanvas()); + std::make_shared(getContext(), surface->getCanvas()); + // Keep a reference to the owning surface so the canvas can read pixels back + // through a snapshot on Graphite (which lacks synchronous canvas readback). + canvas->setSurface(surface); return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, canvas, getContext()); } @@ -81,8 +85,12 @@ class JsiSkSurface : public JsiSkWrappingSkPtrHostObject { JSI_HOST_FUNCTION(flush) { auto surface = getObject(); #if defined(SK_GRAPHITE) - auto recording = surface->recorder()->snap(); - DawnContext::getInstance().submitRecording(recording.get()); + // A raster surface (e.g. Skia.Surface.Make) has no Graphite recorder; + // only Graphite-backed surfaces need to snap and submit a recording. + if (auto *recorder = surface->recorder()) { + auto recording = recorder->snap(); + DawnContext::getInstance().submitRecording(recording.get()); + } #else if (auto dContext = GrAsDirectContext(surface->recordingContext())) { dContext->flushAndSubmit(); @@ -102,8 +110,12 @@ class JsiSkSurface : public JsiSkWrappingSkPtrHostObject { image = surface->makeImageSnapshot(); } #if defined(SK_GRAPHITE) - auto recording = surface->recorder()->snap(); - DawnContext::getInstance().submitRecording(recording.get()); + // A raster surface (e.g. Skia.Surface.Make) has no Graphite recorder; its + // snapshot is already a valid CPU image, so skip the recording submit. + if (auto *recorder = surface->recorder()) { + auto recording = recorder->snap(); + DawnContext::getInstance().submitRecording(recording.get()); + } #endif if (count > 1 && arguments[1].isObject()) { auto jsiImage = diff --git a/packages/skia/cpp/api/JsiSkTypeface.h b/packages/skia/cpp/api/JsiSkTypeface.h index 3ab373b009..6e79c325c2 100644 --- a/packages/skia/cpp/api/JsiSkTypeface.h +++ b/packages/skia/cpp/api/JsiSkTypeface.h @@ -7,7 +7,7 @@ #include #include "JsiSkHostObjects.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/api/JsiSkTypefaceFontProvider.h b/packages/skia/cpp/api/JsiSkTypefaceFontProvider.h index 1fa037e7b3..8d4ef8c3dd 100644 --- a/packages/skia/cpp/api/JsiSkTypefaceFontProvider.h +++ b/packages/skia/cpp/api/JsiSkTypefaceFontProvider.h @@ -9,7 +9,7 @@ #include "JsiSkHostObjects.h" #include "JsiSkTypeface.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/api/JsiSkiaContext.h b/packages/skia/cpp/api/JsiSkiaContext.h index fbb4a653d6..7bf494f812 100644 --- a/packages/skia/cpp/api/JsiSkiaContext.h +++ b/packages/skia/cpp/api/JsiSkiaContext.h @@ -6,7 +6,7 @@ #include #include "JsiSkHostObjects.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #include #include "JsiSkPaint.h" @@ -14,7 +14,7 @@ #include "JsiSkRect.h" #include "JsiSkTypeface.h" -#include "RNWindowContext.h" +#include "rnskia/RNWindowContext.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/api/JsiTextureInfo.h b/packages/skia/cpp/api/JsiTextureInfo.h index 762e080c3d..5f0f053bbb 100644 --- a/packages/skia/cpp/api/JsiTextureInfo.h +++ b/packages/skia/cpp/api/JsiTextureInfo.h @@ -2,7 +2,7 @@ #include -#include "RNSkPlatformContext.h" +#include "rnskia/RNSkPlatformContext.h" namespace jsi = facebook::jsi; namespace react = facebook::react; diff --git a/packages/skia/cpp/api/JsiVideo.h b/packages/skia/cpp/api/JsiVideo.h index b5cae9308c..6205ba44a6 100644 --- a/packages/skia/cpp/api/JsiVideo.h +++ b/packages/skia/cpp/api/JsiVideo.h @@ -6,7 +6,7 @@ #include #include "JsiSkHostObjects.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #include #include "JsiSkPaint.h" @@ -14,7 +14,7 @@ #include "JsiSkRect.h" #include "JsiSkTypeface.h" -#include "RNSkVideo.h" +#include "rnskia/RNSkVideo.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/api/recorder/Convertor.h b/packages/skia/cpp/api/recorder/Convertor.h index efd4c61f2f..0e58c16e4e 100644 --- a/packages/skia/cpp/api/recorder/Convertor.h +++ b/packages/skia/cpp/api/recorder/Convertor.h @@ -16,7 +16,7 @@ #include #include "../CustomBlendModes.h" -#include "third_party/CSSColorParser.h" +#include "api/third_party/CSSColorParser.h" #include "DataTypes.h" diff --git a/packages/skia/cpp/api/recorder/Drawings.h b/packages/skia/cpp/api/recorder/Drawings.h index 681555ef91..c5ce24b14c 100644 --- a/packages/skia/cpp/api/recorder/Drawings.h +++ b/packages/skia/cpp/api/recorder/Drawings.h @@ -6,7 +6,7 @@ #include "Convertor.h" #include "DrawingCtx.h" #include "ImageFit.h" -#include "RNSkPlatformContext.h" +#include "rnskia/RNSkPlatformContext.h" #include "include/core/SkPathBuilder.h" #include "include/core/SkStrokeRec.h" diff --git a/packages/skia/cpp/api/recorder/JsiRecorder.h b/packages/skia/cpp/api/recorder/JsiRecorder.h index 46ca09ecd0..742eebacc9 100644 --- a/packages/skia/cpp/api/recorder/JsiRecorder.h +++ b/packages/skia/cpp/api/recorder/JsiRecorder.h @@ -5,13 +5,13 @@ #include #include -#include "JsiSkCanvas.h" -#include "JsiSkHostObjects.h" -#include "JsiSkPicture.h" +#include "api/JsiSkCanvas.h" +#include "api/JsiSkHostObjects.h" +#include "api/JsiSkPicture.h" #include "DrawingCtx.h" #include "RNRecorder.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #include diff --git a/packages/skia/cpp/api/recorder/RNRecorder.h b/packages/skia/cpp/api/recorder/RNRecorder.h index d96331f088..18a4ef7300 100644 --- a/packages/skia/cpp/api/recorder/RNRecorder.h +++ b/packages/skia/cpp/api/recorder/RNRecorder.h @@ -17,7 +17,7 @@ #include "ImageFilters.h" #include "Paint.h" #include "PathEffects.h" -#include "RNSkPlatformContext.h" +#include "rnskia/RNSkPlatformContext.h" #include "Shaders.h" namespace RNSkia { diff --git a/packages/skia/cpp/api/third_party/SkottieUtils.cpp b/packages/skia/cpp/api/third_party/SkottieUtils.cpp index dc763ac08b..98d8156e3f 100644 --- a/packages/skia/cpp/api/third_party/SkottieUtils.cpp +++ b/packages/skia/cpp/api/third_party/SkottieUtils.cpp @@ -5,7 +5,7 @@ * found in the LICENSE file. */ -#include "third_party/SkottieUtils.h" +#include "SkottieUtils.h" #include "include/core/SkData.h" #include "include/core/SkRect.h" diff --git a/packages/skia/cpp/api/third_party/base64.cpp b/packages/skia/cpp/api/third_party/base64.cpp index ac02ac2c91..a89403433a 100644 --- a/packages/skia/cpp/api/third_party/base64.cpp +++ b/packages/skia/cpp/api/third_party/base64.cpp @@ -4,7 +4,7 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ -#include "third_party/base64.h" +#include "base64.h" #include diff --git a/packages/skia/cpp/jsi/JsiHostObject.cpp b/packages/skia/cpp/jsi/JsiHostObject.cpp index ef1654d45b..4c4ee26f61 100644 --- a/packages/skia/cpp/jsi/JsiHostObject.cpp +++ b/packages/skia/cpp/jsi/JsiHostObject.cpp @@ -24,12 +24,6 @@ void JsiHostObject::set(jsi::Runtime &rt, const jsi::PropNameID &name, } } -jsi::Value eval(jsi::Runtime &runtime, const std::string &js) { - return runtime.global() - .getPropertyAsFunction(runtime, "eval") - .call(runtime, js); -} - jsi::Value JsiHostObject::get(jsi::Runtime &runtime, const jsi::PropNameID &name) { auto nameStr = name.utf8(runtime); @@ -86,7 +80,11 @@ jsi::Value JsiHostObject::get(jsi::Runtime &runtime, // Check for dispose symbol as last resort static const auto disposeSymbol = jsi::PropNameID::forSymbol( runtime, - eval(runtime, "Symbol.for('Symbol.dispose');").getSymbol(runtime)); + runtime.global() + .getPropertyAsObject(runtime, "Symbol") + .getPropertyAsFunction(runtime, "for") + .call(runtime, "Symbol.dispose") + .getSymbol(runtime)); if (jsi::PropNameID::compare(runtime, disposeSymbol, name)) { // Recursively call get with "dispose" string auto disposeName = jsi::PropNameID::forAscii(runtime, "dispose"); diff --git a/packages/skia/cpp/jsi/JsiPromises.h b/packages/skia/cpp/jsi/JsiPromises.h index aa3c07e82a..f2ef6cb089 100644 --- a/packages/skia/cpp/jsi/JsiPromises.h +++ b/packages/skia/cpp/jsi/JsiPromises.h @@ -6,7 +6,7 @@ #include -#include "third_party/base64.h" +#include "api/third_party/base64.h" namespace RNJsi { namespace jsi = facebook::jsi; diff --git a/packages/skia/cpp/jsi/ViewProperty.h b/packages/skia/cpp/jsi/ViewProperty.h index 25ae8c0f5b..a361086cfd 100644 --- a/packages/skia/cpp/jsi/ViewProperty.h +++ b/packages/skia/cpp/jsi/ViewProperty.h @@ -7,7 +7,7 @@ #include #include -#include "JsiSkPicture.h" +#include "api/JsiSkPicture.h" #include "RuntimeLifecycleMonitor.h" namespace RNJsi { diff --git a/packages/skia/cpp/rnskia/RNDawnContext.h b/packages/skia/cpp/rnskia/RNDawnContext.h index a12855e224..94b27cff8a 100644 --- a/packages/skia/cpp/rnskia/RNDawnContext.h +++ b/packages/skia/cpp/rnskia/RNDawnContext.h @@ -138,6 +138,15 @@ class DawnContext { wgpu::SharedTextureMemoryBeginAccessDescriptor beginAccessDesc; beginAccessDesc.initialized = true; beginAccessDesc.fenceCount = 0; +#if defined(__ANDROID__) + // Dawn's Vulkan backend requires the acquired VkImageLayout to be chained. + // UNDEFINED (= 0) on both ends is the canonical "no prior GPU producer" + // pattern (matches GPUSharedTextureMemory::beginAccess). + wgpu::SharedTextureMemoryVkImageLayoutBeginState vkBegin = {}; + vkBegin.oldLayout = 0; + vkBegin.newLayout = 0; + beginAccessDesc.nextInChain = &vkBegin; +#endif bool success = memory.BeginAccess(texture, &beginAccessDesc); if (success) { @@ -149,6 +158,10 @@ class DawnContext { [](void *context) { auto ctx = static_cast(context); wgpu::SharedTextureMemoryEndAccessState endState = {}; +#if defined(__ANDROID__) + wgpu::SharedTextureMemoryVkImageLayoutEndState vkEnd = {}; + endState.nextInChain = &vkEnd; +#endif ctx->sharedTextureMemory.EndAccess(ctx->texture, &endState); delete ctx; }, diff --git a/packages/skia/cpp/rnskia/RNDawnUtils.h b/packages/skia/cpp/rnskia/RNDawnUtils.h index 55534d81f0..dffc54a9ea 100644 --- a/packages/skia/cpp/rnskia/RNDawnUtils.h +++ b/packages/skia/cpp/rnskia/RNDawnUtils.h @@ -5,7 +5,7 @@ #include "dawn/dawn_proc.h" #include "dawn/native/DawnNative.h" -#include "RNSkLog.h" +#include "utils/RNSkLog.h" #include "include/core/SkColorType.h" #include "include/gpu/graphite/dawn/DawnBackendContext.h" @@ -206,12 +206,22 @@ createDawnBackendContext(dawn::native::Instance *instance) { wgpu::FeatureName::ImplicitDeviceSynchronization, #ifdef __APPLE__ wgpu::FeatureName::SharedTextureMemoryIOSurface, + // Required to call SharedTextureMemory::EndAccess on Metal (it exports a + // MTLSharedEvent fence). importExternalTexture / importSharedTextureMemory + // end the access window after submit; without this EndAccess errors with + // "Required feature (SharedFenceMTLSharedEvent) is missing". Safe here + // because we always queue.submit() before EndAccess (the secondary device + // omits it on purpose — its camera path doesn't commit first). + wgpu::FeatureName::SharedFenceMTLSharedEvent, wgpu::FeatureName::DawnMultiPlanarFormats, wgpu::FeatureName::MultiPlanarFormatP010, wgpu::FeatureName::MultiPlanarFormatP210, wgpu::FeatureName::MultiPlanarFormatExtendedUsages, #else wgpu::FeatureName::SharedTextureMemoryAHardwareBuffer, + // Vulkan equivalent of the above: EndAccess exports a sync-fd fence. + wgpu::FeatureName::SharedFenceSyncFD, + wgpu::FeatureName::SharedFenceVkSemaphoreOpaqueFD, #endif }; diff --git a/packages/skia/cpp/rnskia/RNSkJsiViewApi.h b/packages/skia/cpp/rnskia/RNSkJsiViewApi.h index 6a18a5b336..9bcf60ed68 100644 --- a/packages/skia/cpp/rnskia/RNSkJsiViewApi.h +++ b/packages/skia/cpp/rnskia/RNSkJsiViewApi.h @@ -9,11 +9,11 @@ #include #include -#include "JsiHostObject.h" +#include "jsi/JsiHostObject.h" #include "RNSkPictureView.h" #include "RNSkPlatformContext.h" #include "RNSkView.h" -#include "ViewProperty.h" +#include "jsi/ViewProperty.h" #include namespace RNSkia { diff --git a/packages/skia/cpp/rnskia/RNSkManager.cpp b/packages/skia/cpp/rnskia/RNSkManager.cpp index 60ac52777a..8eb939b1e6 100644 --- a/packages/skia/cpp/rnskia/RNSkManager.cpp +++ b/packages/skia/cpp/rnskia/RNSkManager.cpp @@ -5,22 +5,29 @@ #include -#include "JsiSkApi.h" +#include "api/JsiSkApi.h" #include "RNSkJsiViewApi.h" #include "RNSkView.h" -#include "RuntimeAwareCache.h" +#include "jsi/RuntimeAwareCache.h" #ifdef SK_GRAPHITE #include "RNDawnContext.h" +#include "rnwgpu/ArrayBuffer.h" #include "rnwgpu/api/GPU.h" #include "rnwgpu/api/GPUUncapturedErrorEvent.h" +#include "rnwgpu/api/ImageBitmap.h" #include "rnwgpu/api/RNWebGPU.h" #include "rnwgpu/api/descriptors/GPUBufferUsage.h" #include "rnwgpu/api/descriptors/GPUColorWrite.h" #include "rnwgpu/api/descriptors/GPUMapMode.h" #include "rnwgpu/api/descriptors/GPUShaderStage.h" #include "rnwgpu/api/descriptors/GPUTextureUsage.h" +#include "jsi2/Promise.h" + +#include "include/core/SkData.h" +#include "include/core/SkImage.h" +#include "include/core/SkImageInfo.h" #endif namespace RNSkia { @@ -114,6 +121,85 @@ void RNSkManager::installBindings() { auto rnWebGPU = std::make_shared(gpu, nullptr); _jsRuntime->global().setProperty( *_jsRuntime, "RNWebGPU", rnwgpu::RNWebGPU::create(*_jsRuntime, rnWebGPU)); + + // DRAFT — compile-unverified. Install the ImageBitmap constructor (so + // `instanceof ImageBitmap` works) and a global createImageBitmap() that + // accepts the non-standard encoded-BufferSource overload. + // + // The BufferSource is run through the shared rnwgpu::ArrayBuffer converter, + // which validates byteOffset/byteLength against the backing buffer and throws + // synchronously on a spoofed / out-of-bounds view — so createImageBitmap() + // rejects rather than reading out of bounds (see ArrayBufferBounds / + // ImageBitmapBounds specs). Decoding uses Skia's own codec; no platform image + // decoder is needed. + rnwgpu::ImageBitmap::installConstructor(*_jsRuntime); + _jsRuntime->global().setProperty( + *_jsRuntime, "createImageBitmap", + jsi::Function::createFromHostFunction( + *_jsRuntime, + jsi::PropNameID::forAscii(*_jsRuntime, "createImageBitmap"), 1, + [](jsi::Runtime &rt, const jsi::Value & /*thisVal*/, + const jsi::Value *args, size_t count) -> jsi::Value { + if (count < 1 || !args[0].isObject()) { + throw jsi::JSError( + rt, "createImageBitmap requires a BufferSource argument"); + } + // Only the encoded ArrayBuffer / ArrayBufferView overload is + // supported here. Anything else (Blob, ImageData, …) is rejected. + auto obj = args[0].getObject(rt); + bool isBufferSource = obj.isArrayBuffer(rt); + if (!isBufferSource && obj.hasProperty(rt, "buffer")) { + auto bufferProp = obj.getProperty(rt, "buffer"); + isBufferSource = + bufferProp.isObject() && + bufferProp.getObject(rt).isArrayBuffer(rt); + } + if (!isBufferSource) { + throw jsi::JSError(rt, "createImageBitmap: unsupported source " + "(expected an ArrayBuffer or TypedArray " + "of encoded image bytes)"); + } + // Validates bounds and THROWS synchronously on a spoofed view, so + // the bad pointer never reaches the copy below. + auto buffer = + rnwgpu::JSIConverter>:: + fromJSI(rt, args[0], false); + // Copy the encoded bytes off the JS-owned ArrayBuffer. + const uint8_t *bytes = buffer->data(); + std::vector encoded(bytes, bytes + buffer->size()); + + return rnwgpu::Promise::createPromise( + rt, [encoded = std::move(encoded)]( + jsi::Runtime &runtime, + std::shared_ptr promise) mutable { + auto skData = + SkData::MakeWithCopy(encoded.data(), encoded.size()); + auto image = SkImages::DeferredFromEncodedData(skData); + if (image == nullptr) { + promise->reject( + "createImageBitmap: failed to decode image data"); + return; + } + const int w = image->width(); + const int h = image->height(); + auto info = + SkImageInfo::Make(w, h, kRGBA_8888_SkColorType, + kUnpremul_SkAlphaType); + std::vector pixels(info.computeMinByteSize()); + // nullptr context: decode/read on the CPU (raster). + if (!image->readPixels(nullptr, info, pixels.data(), + info.minRowBytes(), 0, 0)) { + promise->reject( + "createImageBitmap: failed to read decoded pixels"); + return; + } + auto bitmap = std::make_shared( + std::move(pixels), static_cast(w), + static_cast(h)); + promise->resolve( + rnwgpu::ImageBitmap::create(runtime, bitmap)); + }); + })); #endif } } // namespace RNSkia diff --git a/packages/skia/cpp/rnskia/RNSkPictureView.h b/packages/skia/cpp/rnskia/RNSkPictureView.h index 0059ea1c7e..8cc91b690b 100644 --- a/packages/skia/cpp/rnskia/RNSkPictureView.h +++ b/packages/skia/cpp/rnskia/RNSkPictureView.h @@ -11,12 +11,12 @@ #include #include "RNSkView.h" -#include "ViewProperty.h" +#include "jsi/ViewProperty.h" -#include "JsiSkPicture.h" -#include "RNSkLog.h" +#include "api/JsiSkPicture.h" +#include "utils/RNSkLog.h" #include "RNSkPlatformContext.h" -#include "RNSkTimingInfo.h" +#include "utils/RNSkTimingInfo.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" diff --git a/packages/skia/cpp/rnskia/RNSkPlatformContext.h b/packages/skia/cpp/rnskia/RNSkPlatformContext.h index 596bb93f11..f74e190e23 100644 --- a/packages/skia/cpp/rnskia/RNSkPlatformContext.h +++ b/packages/skia/cpp/rnskia/RNSkPlatformContext.h @@ -141,6 +141,13 @@ class RNSkPlatformContext { virtual uint64_t makeNativeBuffer(sk_sp image) = 0; + // Allocate a platform native buffer (IOSurface on Apple, AHardwareBuffer on + // Android) of the given size filled with a procedural test pattern (RGB + // gradient + diagonal stripes), entirely on the CPU. Intended for examples + // and tests that need a buffer to feed into importExternalTexture without a + // camera/video source. Release it with releaseNativeBuffer(). + virtual uint64_t makeTestNativeBuffer(int width, int height) = 0; + virtual std::shared_ptr createVideo(const std::string &url) = 0; /** diff --git a/packages/skia/cpp/rnskia/RNSkView.h b/packages/skia/cpp/rnskia/RNSkView.h index 5181c713c7..ba92d75f1d 100644 --- a/packages/skia/cpp/rnskia/RNSkView.h +++ b/packages/skia/cpp/rnskia/RNSkView.h @@ -7,11 +7,11 @@ #include #include "RNSkPlatformContext.h" -#include "ViewProperty.h" +#include "jsi/ViewProperty.h" -#include "JsiSkImage.h" -#include "JsiSkPoint.h" -#include "JsiSkRect.h" +#include "api/JsiSkImage.h" +#include "api/JsiSkPoint.h" +#include "api/JsiSkRect.h" #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdocumentation" @@ -94,8 +94,11 @@ class RNSkOffscreenCanvasProvider : public RNSkCanvasProvider { image = _surface->makeImageSnapshot(); } #if defined(SK_GRAPHITE) - DawnContext::getInstance().submitRecording( - _surface->recorder()->snap().get()); + // Only Graphite-backed surfaces have a recorder to snap/submit; a raster + // surface's snapshot is already a valid CPU image. + if (auto *recorder = _surface->recorder()) { + DawnContext::getInstance().submitRecording(recorder->snap().get()); + } return DawnContext::getInstance().MakeRasterImage(image); #else auto grContext = _context->getDirectContext(); diff --git a/packages/skia/cpp/rnwgpu/ArrayBuffer.h b/packages/skia/cpp/rnwgpu/ArrayBuffer.h index 0cdc6098af..2f3d949887 100644 --- a/packages/skia/cpp/rnwgpu/ArrayBuffer.h +++ b/packages/skia/cpp/rnwgpu/ArrayBuffer.h @@ -1,6 +1,8 @@ #pragma once #include +#include +#include #include #include "jsi2/JSIConverter.h" @@ -47,16 +49,58 @@ template <> struct JSIConverter> { if (bufferProp.isObject() && bufferProp.getObject(runtime).isArrayBuffer(runtime)) { auto buff = bufferProp.getObject(runtime); - auto bytesPerElements = - obj.getProperty(runtime, "BYTES_PER_ELEMENT").asNumber(); auto arrayBuffer = buff.getArrayBuffer(runtime); - auto byteOffset = static_cast( - obj.getProperty(runtime, "byteOffset").asNumber()); - auto byteLength = static_cast( - obj.getProperty(runtime, "byteLength").asNumber()); + const size_t bufferSize = arrayBuffer.size(runtime); + + // byteOffset / byteLength are user-readable JS properties, not values + // the engine guarantees (unlike Dawn's node binding, which reads them + // off the engine's typed-array view). Read them as doubles so we can + // reject negative, non-integral, NaN/Inf, or oversized values before + // they wrap around when cast to size_t. + const double byteOffsetValue = + obj.getProperty(runtime, "byteOffset").asNumber(); + const double byteLengthValue = + obj.getProperty(runtime, "byteLength").asNumber(); + + auto isValidByteIndex = [](double value) { + return std::isfinite(value) && value >= 0.0 && + value <= static_cast(SIZE_MAX) && + std::floor(value) == value; + }; + if (!isValidByteIndex(byteOffsetValue) || + !isValidByteIndex(byteLengthValue)) { + throw std::runtime_error( + "ArrayBuffer::fromJSI: invalid byteOffset/byteLength"); + } + + const size_t byteOffset = static_cast(byteOffsetValue); + const size_t byteLength = static_cast(byteLengthValue); + + // Overflow-safe bounds check: byteOffset + byteLength <= bufferSize. + if (byteOffset > bufferSize || + byteLength > bufferSize - byteOffset) { + throw std::runtime_error( + "ArrayBuffer::fromJSI: view bounds [byteOffset, byteOffset + " + "byteLength) exceed the backing ArrayBuffer size"); + } + + // BYTES_PER_ELEMENT is absent on a DataView; default to 1. A spoofed + // object could report 0 (or a negative/NaN value), so clamp to a + // minimum of 1 to avoid a later division by zero in writeBuffer. + size_t bytesPerElements = 1; + if (obj.hasProperty(runtime, "BYTES_PER_ELEMENT")) { + auto bpe = obj.getProperty(runtime, "BYTES_PER_ELEMENT"); + if (bpe.isNumber()) { + const double value = bpe.asNumber(); + if (std::isfinite(value) && value >= 1.0) { + bytesPerElements = static_cast(value); + } + } + } + return std::make_shared( arrayBuffer.data(runtime) + byteOffset, byteLength, - static_cast(bytesPerElements)); + bytesPerElements); } } } diff --git a/packages/skia/cpp/rnwgpu/api/AppleNativeBuffer.h b/packages/skia/cpp/rnwgpu/api/AppleNativeBuffer.h new file mode 100644 index 0000000000..0393707503 --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/AppleNativeBuffer.h @@ -0,0 +1,22 @@ +#pragma once + +#if defined(__APPLE__) + +#include + +namespace rnwgpu { + +// Extract the backing IOSurface and dimensions from a CVPixelBufferRef pointer +// (the value Skia's NativeBuffer.MakeFromImage returns on Apple). The returned +// IOSurfaceRef is owned by the CVPixelBuffer; the caller must keep the +// CVPixelBuffer alive while the IOSurface is in use. Returns nullptr (and +// leaves the out-params at 0) if the buffer has no IOSurface. +// +// Defined in apple/RNWebGPUAppleNativeBuffer.mm (Objective-C++ so it can use +// CoreVideo, which isn't available from the cpp/ translation units). +void *GetIOSurfaceFromNativeBuffer(void *cvPixelBuffer, uint32_t *outWidth, + uint32_t *outHeight); + +} // namespace rnwgpu + +#endif // __APPLE__ diff --git a/packages/skia/cpp/rnwgpu/api/Convertors.h b/packages/skia/cpp/rnwgpu/api/Convertors.h index 4c23b3c2ed..33a6d692d6 100644 --- a/packages/skia/cpp/rnwgpu/api/Convertors.h +++ b/packages/skia/cpp/rnwgpu/api/Convertors.h @@ -252,13 +252,24 @@ class Convertor { [[nodiscard]] bool Convert(wgpu::BindGroupLayoutEntry &out, const GPUBindGroupLayoutEntry &in) { - return Convert(out.binding, in.binding) && - Convert(out.visibility, in.visibility) && - Convert(out.buffer, in.buffer) && Convert(out.sampler, in.sampler) && - Convert(out.texture, in.texture) && - Convert(out.storageTexture, in.storageTexture); - // no external textures here - //&& Convert(out.externalTexture, in.externalTexture); + out = {}; + if (!Convert(out.binding, in.binding) || + !Convert(out.visibility, in.visibility) || + !Convert(out.buffer, in.buffer) || !Convert(out.sampler, in.sampler) || + !Convert(out.texture, in.texture) || + !Convert(out.storageTexture, in.storageTexture)) { + return false; + } + if (in.externalTexture.has_value() && + in.externalTexture.value() != nullptr) { + // External texture layouts bind via a chained struct rather than a + // direct field on BindGroupLayoutEntry. The chained struct must outlive + // the BindGroupLayoutEntry until Device::CreateBindGroupLayout returns, + // so we allocate it on the Convertor's arena. + auto *chain = Allocate(); + out.nextInChain = chain; + } + return true; } [[nodiscard]] bool Convert(wgpu::BlendComponent &out, @@ -422,9 +433,11 @@ class Convertor { } [[nodiscard]] bool Convert(wgpu::ExternalTextureBindingLayout &out, - const GPUExternalTextureBindingLayout &in) { - // no external textures at the moment - return false; + const GPUExternalTextureBindingLayout & /*in*/) { + // ExternalTextureBindingLayout carries no fields of its own; its presence + // (as a chained struct) is what marks the entry as an external texture. + out = {}; + return true; } [[nodiscard]] bool Convert(wgpu::ConstantEntry &out, const std::string &key, @@ -729,7 +742,16 @@ class Convertor { out.buffer = buffer->get(); return true; } - // Not external textures at the moment + if (in.externalTexture != nullptr) { + // External textures bind via a chained struct rather than a direct field + // on BindGroupEntry. The chained struct must outlive the BindGroupEntry + // until Device::CreateBindGroup returns, so we allocate it on the + // Convertor's arena. + auto *chain = Allocate(); + chain->externalTexture = in.externalTexture->get(); + out.nextInChain = chain; + return true; + } return false; } diff --git a/packages/skia/cpp/rnwgpu/api/GPU.cpp b/packages/skia/cpp/rnwgpu/api/GPU.cpp index 9fa5ac8f63..258389ad98 100644 --- a/packages/skia/cpp/rnwgpu/api/GPU.cpp +++ b/packages/skia/cpp/rnwgpu/api/GPU.cpp @@ -136,9 +136,6 @@ std::unordered_set GPU::getWgslLanguageFeatures() { case wgpu::WGSLLanguageFeatureName::BufferView: name = "buffer_view"; break; - case wgpu::WGSLLanguageFeatureName::FilteringParameters: - name = "filtering_parameters"; - break; case wgpu::WGSLLanguageFeatureName::SwizzleAssignment: name = "swizzle_assignment"; break; diff --git a/packages/skia/cpp/rnwgpu/api/GPUAdapter.cpp b/packages/skia/cpp/rnwgpu/api/GPUAdapter.cpp index 195b143336..8d3610f9fa 100644 --- a/packages/skia/cpp/rnwgpu/api/GPUAdapter.cpp +++ b/packages/skia/cpp/rnwgpu/api/GPUAdapter.cpp @@ -109,13 +109,39 @@ async::AsyncTaskHandle GPUAdapter::requestDevice( deviceLostBinding, creationRuntime](const async::AsyncTaskHandle::ResolveFunction &resolve, const async::AsyncTaskHandle::RejectFunction &reject) { - (void)descriptor; + // Build a local mutable copy so we can chain Dawn's device toggles. + // The toggle name strings are owned by `descriptor` (captured above), + // and the const char* / DawnTogglesDescriptor locals live for the + // whole synchronous RequestDevice call below, which is when Dawn reads + // the chained struct. + wgpu::DeviceDescriptor deviceDesc = aDescriptor; + wgpu::DawnTogglesDescriptor toggles{}; + std::vector enabledToggles; + std::vector disabledToggles; + if (descriptor.has_value() && descriptor.value()->dawnToggles) { + const auto &dawnToggles = descriptor.value()->dawnToggles.value(); + if (dawnToggles->enabledToggles) { + for (const auto &t : dawnToggles->enabledToggles.value()) { + enabledToggles.push_back(t.c_str()); + } + toggles.enabledToggleCount = enabledToggles.size(); + toggles.enabledToggles = enabledToggles.data(); + } + if (dawnToggles->disabledToggles) { + for (const auto &t : dawnToggles->disabledToggles.value()) { + disabledToggles.push_back(t.c_str()); + } + toggles.disabledToggleCount = disabledToggles.size(); + toggles.disabledToggles = disabledToggles.data(); + } + deviceDesc.nextInChain = &toggles; + } _instance.RequestDevice( - &aDescriptor, wgpu::CallbackMode::AllowProcessEvents, + &deviceDesc, wgpu::CallbackMode::AllowProcessEvents, [asyncRunner = _async, resolve, reject, label, creationRuntime, deviceLostBinding](wgpu::RequestDeviceStatus status, wgpu::Device device, - wgpu::StringView message) mutable { + wgpu::StringView message) { if (message.length) { fprintf(stderr, "%s", message.data); } @@ -128,10 +154,13 @@ async::AsyncTaskHandle GPUAdapter::requestDevice( return; } + // SetLoggingCallback is a repeatable callback (no callback mode), + // which rejects capturing lambdas. Pass the runtime pointer + // through Dawn's userdata argument instead of capturing it. device.SetLoggingCallback( - [creationRuntime](wgpu::LoggingType type, - wgpu::StringView msg) { - if (creationRuntime == nullptr) { + [](wgpu::LoggingType type, wgpu::StringView msg, + jsi::Runtime *runtime) { + if (runtime == nullptr) { return; } const char *logLevel = ""; @@ -157,7 +186,8 @@ async::AsyncTaskHandle GPUAdapter::requestDevice( fprintf(stderr, "%s: %.*s\n", logLevel, static_cast(msg.length), msg.data); } - }); + }, + creationRuntime); auto deviceHost = std::make_shared(std::move(device), asyncRunner, label); diff --git a/packages/skia/cpp/rnwgpu/api/GPUBuffer.h b/packages/skia/cpp/rnwgpu/api/GPUBuffer.h index f8919f9469..2706a50490 100644 --- a/packages/skia/cpp/rnwgpu/api/GPUBuffer.h +++ b/packages/skia/cpp/rnwgpu/api/GPUBuffer.h @@ -14,7 +14,7 @@ #include "webgpu/webgpu_cpp.h" -#include "ArrayBuffer.h" +#include "rnwgpu/ArrayBuffer.h" namespace rnwgpu { diff --git a/packages/skia/cpp/rnwgpu/api/GPUDevice.cpp b/packages/skia/cpp/rnwgpu/api/GPUDevice.cpp index 19e2b1d977..436f1dd7ea 100644 --- a/packages/skia/cpp/rnwgpu/api/GPUDevice.cpp +++ b/packages/skia/cpp/rnwgpu/api/GPUDevice.cpp @@ -7,6 +7,7 @@ #include #include "Convertors.h" +#include "NativeBufferUtils.h" #include "jsi2/JSIConverter.h" #include "GPUFeatures.h" @@ -234,8 +235,83 @@ std::shared_ptr GPUDevice::createPipelineLayout( std::shared_ptr GPUDevice::importExternalTexture( std::shared_ptr descriptor) { - throw std::runtime_error( - "GPUDevice::importExternalTexture(): Not implemented"); + // The import / begin-access / descriptor-build logic, plus the matching + // EndAccess, all live on GPUExternalTexture so the begin/end lifecycle stays + // in one translation unit (see GPUExternalTexture.cpp). + return GPUExternalTexture::Create(_instance, std::move(descriptor)); +} + +std::shared_ptr GPUDevice::importSharedTextureMemory( + std::shared_ptr descriptor) { + if (!descriptor || descriptor->handle == 0) { + throw std::runtime_error( + "GPUDevice::importSharedTextureMemory(): handle must be a non-null " + "native buffer pointer (from Skia.NativeBuffer.MakeFromImage)"); + } + void *bufferPtr = + reinterpret_cast(static_cast(descriptor->handle)); + std::string label = descriptor->label.value_or(""); + + auto memory = importNativeBufferAsSharedTextureMemory( + _instance, bufferPtr, label, /*outWidth=*/nullptr, /*outHeight=*/nullptr); + if (memory == nullptr) { + throw std::runtime_error( + "GPUDevice::importSharedTextureMemory(): ImportSharedTextureMemory " + "returned null - is the 'shared-texture-memory-iosurface' (Apple) or " + "'shared-texture-memory-ahardware-buffer' (Android) feature enabled on " + "the device?"); + } + return std::make_shared(std::move(memory), + std::move(label)); +} + +std::shared_ptr GPUDevice::importSharedFence( + std::shared_ptr descriptor) { + if (!descriptor || descriptor->handle == nullptr) { + throw std::runtime_error("GPUDevice::importSharedFence(): handle must be a " + "non-null native handle"); + } + + wgpu::SharedFenceDescriptor desc{}; + std::string label = descriptor->label.value_or(""); + if (!label.empty()) { + desc.label = wgpu::StringView(label.c_str(), label.size()); + } + + // The chained platform descriptor must outlive the synchronous + // ImportSharedFence() below; declare them all and chain the matching one. + wgpu::SharedFenceMTLSharedEventDescriptor mtlDesc{}; + wgpu::SharedFenceSyncFDDescriptor syncFdDesc{}; + wgpu::SharedFenceVkSemaphoreOpaqueFDDescriptor vkFdDesc{}; + + const std::string &type = descriptor->type; + if (type == "mtl-shared-event") { + // handle is an id pointer. + mtlDesc.sharedEvent = descriptor->handle; + desc.nextInChain = &mtlDesc; + } else if (type == "sync-fd") { + // handle is an OS file descriptor. + syncFdDesc.handle = + static_cast(reinterpret_cast(descriptor->handle)); + desc.nextInChain = &syncFdDesc; + } else if (type == "vk-semaphore-opaque-fd") { + vkFdDesc.handle = + static_cast(reinterpret_cast(descriptor->handle)); + desc.nextInChain = &vkFdDesc; + } else { + throw std::runtime_error( + "GPUDevice::importSharedFence(): unsupported fence type '" + type + + "' (expected 'mtl-shared-event', 'sync-fd' or " + "'vk-semaphore-opaque-fd')"); + } + + auto fence = _instance.ImportSharedFence(&desc); + if (fence == nullptr) { + throw std::runtime_error( + "GPUDevice::importSharedFence(): ImportSharedFence returned null - is " + "the matching 'shared-fence-*' feature enabled on the device?"); + } + return std::make_shared(std::move(fence), std::move(label)); } async::AsyncTaskHandle GPUDevice::createComputePipelineAsync( @@ -262,7 +338,7 @@ async::AsyncTaskHandle GPUDevice::createComputePipelineAsync( &desc, wgpu::CallbackMode::AllowProcessEvents, [pipelineHolder, resolve, reject](wgpu::CreatePipelineAsyncStatus status, - wgpu::ComputePipeline pipeline, const char *msg) mutable { + wgpu::ComputePipeline pipeline, wgpu::StringView msg) { if (status == wgpu::CreatePipelineAsyncStatus::Success && pipeline) { pipelineHolder->_instance = pipeline; resolve([pipelineHolder](jsi::Runtime &runtime) mutable { @@ -271,7 +347,8 @@ async::AsyncTaskHandle GPUDevice::createComputePipelineAsync( }); } else { std::string error = - msg ? std::string(msg) : "Failed to create compute pipeline"; + msg.length ? std::string(msg.data, msg.length) + : "Failed to create compute pipeline"; reject(std::move(error)); } }); @@ -303,7 +380,7 @@ async::AsyncTaskHandle GPUDevice::createRenderPipelineAsync( &desc, wgpu::CallbackMode::AllowProcessEvents, [pipelineHolder, resolve, reject](wgpu::CreatePipelineAsyncStatus status, - wgpu::RenderPipeline pipeline, const char *msg) mutable { + wgpu::RenderPipeline pipeline, wgpu::StringView msg) { if (status == wgpu::CreatePipelineAsyncStatus::Success && pipeline) { pipelineHolder->_instance = pipeline; resolve([pipelineHolder](jsi::Runtime &runtime) mutable { @@ -312,7 +389,8 @@ async::AsyncTaskHandle GPUDevice::createRenderPipelineAsync( }); } else { std::string error = - msg ? std::string(msg) : "Failed to create render pipeline"; + msg.length ? std::string(msg.data, msg.length) + : "Failed to create render pipeline"; reject(std::move(error)); } }); diff --git a/packages/skia/cpp/rnwgpu/api/GPUDevice.h b/packages/skia/cpp/rnwgpu/api/GPUDevice.h index 4c10eee683..834f245ee7 100644 --- a/packages/skia/cpp/rnwgpu/api/GPUDevice.h +++ b/packages/skia/cpp/rnwgpu/api/GPUDevice.h @@ -37,6 +37,8 @@ #include "GPURenderPipeline.h" #include "GPUSampler.h" #include "GPUShaderModule.h" +#include "GPUSharedFence.h" +#include "GPUSharedTextureMemory.h" #include "GPUSupportedLimits.h" #include "GPUTexture.h" #include "descriptors/GPUBindGroupDescriptor.h" @@ -51,6 +53,8 @@ #include "descriptors/GPURenderPipelineDescriptor.h" #include "descriptors/GPUSamplerDescriptor.h" #include "descriptors/GPUShaderModuleDescriptor.h" +#include "descriptors/GPUSharedFenceDescriptor.h" +#include "descriptors/GPUSharedTextureMemoryDescriptor.h" #include "descriptors/GPUTextureDescriptor.h" namespace rnwgpu { @@ -120,6 +124,10 @@ class GPUDevice : public NativeObject { std::optional> descriptor); std::shared_ptr importExternalTexture( std::shared_ptr descriptor); + std::shared_ptr importSharedTextureMemory( + std::shared_ptr descriptor); + std::shared_ptr + importSharedFence(std::shared_ptr descriptor); std::shared_ptr createBindGroupLayout( std::shared_ptr descriptor); std::shared_ptr @@ -173,6 +181,10 @@ class GPUDevice : public NativeObject { &GPUDevice::createSampler); installMethod(runtime, prototype, "importExternalTexture", &GPUDevice::importExternalTexture); + installMethod(runtime, prototype, "importSharedTextureMemory", + &GPUDevice::importSharedTextureMemory); + installMethod(runtime, prototype, "importSharedFence", + &GPUDevice::importSharedFence); installMethod(runtime, prototype, "createBindGroupLayout", &GPUDevice::createBindGroupLayout); installMethod(runtime, prototype, "createPipelineLayout", diff --git a/packages/skia/cpp/rnwgpu/api/GPUExternalTexture.cpp b/packages/skia/cpp/rnwgpu/api/GPUExternalTexture.cpp new file mode 100644 index 0000000000..131b826f9a --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/GPUExternalTexture.cpp @@ -0,0 +1,139 @@ +#include "GPUExternalTexture.h" + +#include +#include +#include +#include + +#include "NativeBufferUtils.h" +#include "descriptors/GPUExternalTextureDescriptor.h" + +namespace rnwgpu { + +// Identity gamut (same primaries) as a 3x3 column-major matrix. +static const float kIdentityGamutMatrix[9] = { + 1.0f, 0.0f, 0.0f, // + 0.0f, 1.0f, 0.0f, // + 0.0f, 0.0f, 1.0f, // +}; + +// Identity transfer (y = x). The native buffers produced by Skia's NativeBuffer +// API are single-plane BGRA/RGBA already in the render target's color space, so +// no conversion is wanted. Dawn dereferences the transfer-function arrays +// unconditionally (ComputeExternalTextureParams), so these must be non-null. +static const float kIdentityTransferParams[7] = { + 1.0f, // G + 1.0f, // A + 0.0f, // B + 0.0f, // C + 0.0f, // D + 0.0f, // E + 0.0f, // F +}; + +// Map a rotation in degrees (0 / 90 / 180 / 270) to Dawn's enum. Anything that +// isn't a clean multiple of 90 snaps to the nearest quadrant; Dawn only +// supports those four steps for external textures. +static wgpu::ExternalTextureRotation toExternalTextureRotation(double degrees) { + int quadrant = static_cast(std::lround(degrees / 90.0)); + quadrant = ((quadrant % 4) + 4) % 4; + switch (quadrant) { + case 1: + return wgpu::ExternalTextureRotation::Rotate90Degrees; + case 2: + return wgpu::ExternalTextureRotation::Rotate180Degrees; + case 3: + return wgpu::ExternalTextureRotation::Rotate270Degrees; + default: + return wgpu::ExternalTextureRotation::Rotate0Degrees; + } +} + +std::shared_ptr GPUExternalTexture::Create( + wgpu::Device device, + std::shared_ptr descriptor) { + if (!descriptor || descriptor->source == 0) { + throw std::runtime_error( + "GPUExternalTexture::Create(): descriptor.source (a native buffer " + "pointer from Skia.NativeBuffer.MakeFromImage) is required"); + } + void *bufferPtr = + reinterpret_cast(static_cast(descriptor->source)); + std::string label = descriptor->label.value_or("external-texture"); + + // 1. Import the native buffer as SharedTextureMemory and read its dimensions. + uint32_t width = 0; + uint32_t height = 0; + wgpu::SharedTextureMemory memory = importNativeBufferAsSharedTextureMemory( + device, bufferPtr, label, &width, &height); + if (memory == nullptr) { + throw std::runtime_error( + "GPUExternalTexture::Create(): ImportSharedTextureMemory returned " + "null"); + } + + // 2. Create the texture from the surface (Dawn picks the single-plane + // BGRA/RGBA format). + auto texture = memory.CreateTexture(); + if (texture == nullptr) { + throw std::runtime_error( + "GPUExternalTexture::Create(): CreateTexture returned null"); + } + + // 3. Begin access. The matching EndAccess runs when the GPUExternalTexture is + // destroyed (explicitly via destroy() or at GC). + wgpu::SharedTextureMemoryBeginAccessDescriptor begin{}; + begin.initialized = true; + begin.concurrentRead = false; +#if defined(__ANDROID__) + // Dawn's Vulkan backend requires the acquired VkImageLayout to be chained. + // UNDEFINED (= 0) on both ends is the canonical "no prior GPU producer" + // pattern (matches GPUSharedTextureMemory::beginAccess). + wgpu::SharedTextureMemoryVkImageLayoutBeginState vkBegin{}; + vkBegin.oldLayout = 0; + vkBegin.newLayout = 0; + begin.nextInChain = &vkBegin; +#endif + if (!memory.BeginAccess(texture, &begin)) { + throw std::runtime_error( + "GPUExternalTexture::Create(): BeginAccess failed"); + } + + // 4. Single-plane view (the whole BGRA/RGBA surface). + auto plane0 = texture.CreateView(); + + // 5. Build the ExternalTextureDescriptor. The surface is already RGB in the + // target color space, so pass it through with identity transfer/gamut. + wgpu::ExternalTextureDescriptor extDesc{}; + if (!label.empty()) { + extDesc.label = wgpu::StringView(label.c_str(), label.size()); + } + extDesc.plane0 = plane0; + extDesc.gamutConversionMatrix = kIdentityGamutMatrix; + extDesc.srcTransferFunctionParameters = kIdentityTransferParams; + extDesc.dstTransferFunctionParameters = kIdentityTransferParams; + extDesc.cropOrigin = {0, 0}; + extDesc.cropSize = {width, height}; + extDesc.apparentSize = {width, height}; + extDesc.mirrored = descriptor->mirrored.value_or(false); + extDesc.rotation = + toExternalTextureRotation(descriptor->rotation.value_or(0)); + + auto external = device.CreateExternalTexture(&extDesc); + if (external == nullptr) { + wgpu::SharedTextureMemoryEndAccessState state{}; +#if defined(__ANDROID__) + wgpu::SharedTextureMemoryVkImageLayoutEndState vkEnd{}; + state.nextInChain = &vkEnd; +#endif + (void)memory.EndAccess(texture, &state); + throw std::runtime_error( + "GPUExternalTexture::Create(): CreateExternalTexture returned null"); + } + + return std::make_shared( + std::move(external), std::move(memory), std::move(texture), + std::move(label)); +} + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/GPUExternalTexture.h b/packages/skia/cpp/rnwgpu/api/GPUExternalTexture.h index 56b8e08fc2..1e32d6db44 100644 --- a/packages/skia/cpp/rnwgpu/api/GPUExternalTexture.h +++ b/packages/skia/cpp/rnwgpu/api/GPUExternalTexture.h @@ -1,6 +1,8 @@ #pragma once +#include #include +#include #include "descriptors/Unions.h" @@ -12,16 +14,61 @@ namespace rnwgpu { namespace jsi = facebook::jsi; +struct GPUExternalTextureDescriptor; + class GPUExternalTexture : public NativeObject { public: static constexpr const char *CLASS_NAME = "GPUExternalTexture"; - explicit GPUExternalTexture(wgpu::ExternalTexture instance, std::string label) - : NativeObject(CLASS_NAME), _instance(instance), _label(label) {} + // Import a native buffer (via descriptor.source, a CVPixelBufferRef / + // AHardwareBuffer* from Skia's NativeBuffer API) as a GPUExternalTexture on + // `device`: imports the native surface as SharedTextureMemory, begins access, + // and wraps the resulting wgpu::ExternalTexture together with the resources + // whose lifetime it owns. The matching EndAccess runs in destroy() / the + // destructor. Defined in GPUExternalTexture.cpp. + static std::shared_ptr + Create(wgpu::Device device, + std::shared_ptr descriptor); + + // Construct from an already-built wgpu::ExternalTexture plus the underlying + // shared-memory resources we need to keep alive. The wrapper takes ownership + // of the SharedTextureMemory + Texture and calls EndAccess on destruction so + // the producer (the native buffer's surface) can reclaim it. + GPUExternalTexture(wgpu::ExternalTexture instance, + wgpu::SharedTextureMemory memory, wgpu::Texture texture, + std::string label) + : NativeObject(CLASS_NAME), _instance(std::move(instance)), + _memory(std::move(memory)), _texture(std::move(texture)), + _label(std::move(label)) {} + + ~GPUExternalTexture() override { destroy(); } public: std::string getBrand() { return CLASS_NAME; } + // End the shared-memory access window and release the underlying resources. + // Idempotent: safe to call more than once, and the destructor calls it as a + // garbage-collection fallback. Call it right after the queue.submit() that + // sampled this texture (never before): a GPUExternalTexture's access window + // is owned by this wrapper's lifetime, not by submit, so without an explicit + // destroy() the producer's surface stays claimed until GC runs. EndAccess is + // the designed post-submit call: Dawn keeps the texture alive for in-flight + // GPU work via the fences it returns. + void destroy() { + if (_memory && _texture) { + wgpu::SharedTextureMemoryEndAccessState state{}; +#if defined(__ANDROID__) + // Dawn's Vulkan backend requires the released VkImageLayout to be chained + // (matches BeginAccess in GPUExternalTexture::Create). + wgpu::SharedTextureMemoryVkImageLayoutEndState vkEnd{}; + state.nextInChain = &vkEnd; +#endif + (void)_memory.EndAccess(_texture, &state); + } + _texture = nullptr; + _memory = nullptr; + } + std::string getLabel() { return _label; } void setLabel(const std::string &label) { _label = label; @@ -33,12 +80,15 @@ class GPUExternalTexture : public NativeObject { installGetterSetter(runtime, prototype, "label", &GPUExternalTexture::getLabel, &GPUExternalTexture::setLabel); + installMethod(runtime, prototype, "destroy", &GPUExternalTexture::destroy); } inline const wgpu::ExternalTexture get() { return _instance; } private: wgpu::ExternalTexture _instance; + wgpu::SharedTextureMemory _memory; + wgpu::Texture _texture; std::string _label; }; diff --git a/packages/skia/cpp/rnwgpu/api/GPUQueue.cpp b/packages/skia/cpp/rnwgpu/api/GPUQueue.cpp index a46f334136..6d321be33d 100644 --- a/packages/skia/cpp/rnwgpu/api/GPUQueue.cpp +++ b/packages/skia/cpp/rnwgpu/api/GPUQueue.cpp @@ -1,5 +1,6 @@ #include "GPUQueue.h" +#include #include #include #include @@ -103,51 +104,55 @@ void GPUQueue::copyExternalImageToTexture( std::shared_ptr source, std::shared_ptr destination, std::shared_ptr size) { - // wgpu::TexelCopyTextureInfo dst{}; - // wgpu::TexelCopyBufferLayout layout{}; - // wgpu::Extent3D sz{}; - // Convertor conv; - // uint32_t bytesPerPixel = - // source->source->getSize() / - // (source->source->getWidth() * source->source->getHeight()); - // auto dataLayout = std::make_shared(GPUImageDataLayout{ - // std::optional{0.0}, - // std::optional{ - // static_cast(bytesPerPixel * source->source->getWidth())}, - // std::optional{static_cast(source->source->getHeight())}}); - // if (!conv(dst.aspect, destination->aspect) || - // !conv(dst.mipLevel, destination->mipLevel) || - // !conv(dst.origin, destination->origin) || - // !conv(dst.texture, destination->texture) || - // !conv(layout, dataLayout) || // - // !conv(sz, size)) { - // throw std::runtime_error("Invalid input for GPUQueue::writeTexture()"); - // } - // - // if (source->flipY.value_or(false)) { - // // Calculate the row size and total size - // uint32_t rowSize = bytesPerPixel * source->source->getWidth(); - // uint32_t totalSize = source->source->getSize(); - // - // // Create a new buffer for the flipped data - // std::vector flippedData(totalSize); - // - // // Flip the data vertically - // for (uint32_t row = 0; row < source->source->getHeight(); ++row) { - // std::memcpy(flippedData.data() + - // (source->source->getHeight() - 1 - row) * rowSize, - // static_cast(source->source->getData()) + - // row * rowSize, - // rowSize); - // } - // // Use the flipped data for writing to texture - // _instance.WriteTexture(&dst, flippedData.data(), totalSize, &layout, - // &sz); - // } else { - // - // _instance.WriteTexture(&dst, source->source->getData(), - // source->source->getSize(), &layout, &sz); - // } + if (!source || source->source == nullptr) { + throw std::runtime_error("GPUQueue::copyExternalImageToTexture(): " + "source.source (ImageBitmap) is required"); + } + // ImageBitmap holds decoded, row-major RGBA8 pixels. We upload them with + // WriteTexture (a CPU staging copy) rather than a GPU blit; that is enough + // for the common "decode an image, sample it" path and avoids needing a + // source GPUTexture. + const auto &pixels = source->source->data(); + auto width = static_cast(source->source->getWidth()); + auto height = static_cast(source->source->getHeight()); + if (pixels.empty() || width == 0 || height == 0) { + throw std::runtime_error("GPUQueue::copyExternalImageToTexture(): " + "ImageBitmap has no pixels (was it closed?)"); + } + auto bytesPerPixel = static_cast( + pixels.size() / (static_cast(width) * height)); + uint32_t rowSize = bytesPerPixel * width; + + wgpu::TexelCopyTextureInfo dst{}; + wgpu::TexelCopyBufferLayout layout{}; + wgpu::Extent3D sz{}; + Convertor conv; + auto dataLayout = std::make_shared( + GPUImageDataLayout{std::optional{0.0}, + std::optional{static_cast(rowSize)}, + std::optional{static_cast(height)}}); + if (!conv(dst.aspect, destination->aspect) || + !conv(dst.mipLevel, destination->mipLevel) || + !conv(dst.origin, destination->origin) || + !conv(dst.texture, destination->texture) || !conv(layout, dataLayout) || + !conv(sz, size)) { + throw std::runtime_error( + "Invalid input for GPUQueue::copyExternalImageToTexture()"); + } + + if (source->flipY.value_or(false)) { + // Flip rows so the image is uploaded bottom-up (matches the WebGPU + // copyExternalImageToTexture flipY semantics). + std::vector flippedData(pixels.size()); + for (uint32_t row = 0; row < height; ++row) { + std::memcpy(flippedData.data() + (height - 1 - row) * rowSize, + pixels.data() + row * rowSize, rowSize); + } + _instance.WriteTexture(&dst, flippedData.data(), flippedData.size(), + &layout, &sz); + } else { + _instance.WriteTexture(&dst, pixels.data(), pixels.size(), &layout, &sz); + } } void GPUQueue::writeTexture(std::shared_ptr destination, diff --git a/packages/skia/cpp/rnwgpu/api/GPUShaderModule.cpp b/packages/skia/cpp/rnwgpu/api/GPUShaderModule.cpp index 04a53e3a67..e6950bf104 100644 --- a/packages/skia/cpp/rnwgpu/api/GPUShaderModule.cpp +++ b/packages/skia/cpp/rnwgpu/api/GPUShaderModule.cpp @@ -18,7 +18,7 @@ async::AsyncTaskHandle GPUShaderModule::getCompilationInfo() { wgpu::CallbackMode::AllowProcessEvents, [result, resolve, reject](wgpu::CompilationInfoRequestStatus status, - const wgpu::CompilationInfo *compilationInfo) mutable { + const wgpu::CompilationInfo *compilationInfo) { if (status != wgpu::CompilationInfoRequestStatus::Success || compilationInfo == nullptr) { reject("Failed to get compilation info"); diff --git a/packages/skia/cpp/rnwgpu/api/GPUSharedFence.cpp b/packages/skia/cpp/rnwgpu/api/GPUSharedFence.cpp new file mode 100644 index 0000000000..7465612615 --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/GPUSharedFence.cpp @@ -0,0 +1,80 @@ +#include "GPUSharedFence.h" + +#include +#include + +#if defined(__ANDROID__) +#include +#endif + +namespace rnwgpu { + +namespace { + +// Kebab-case names matching the shared-fence-* feature strings (see Unions.h / +// GPUFeatures.h). +std::string sharedFenceTypeToString(wgpu::SharedFenceType type) { + switch (type) { + case wgpu::SharedFenceType::MTLSharedEvent: + return "mtl-shared-event"; + case wgpu::SharedFenceType::SyncFD: + return "sync-fd"; + case wgpu::SharedFenceType::VkSemaphoreOpaqueFD: + return "vk-semaphore-opaque-fd"; + case wgpu::SharedFenceType::VkSemaphoreZirconHandle: + return "vk-semaphore-zircon-handle"; + case wgpu::SharedFenceType::DXGISharedHandle: + return "dxgi-shared-handle"; + case wgpu::SharedFenceType::EGLSync: + return "egl-sync"; + default: + return ""; + } +} + +} // namespace + +jsi::Value GPUSharedFence::exportInfo(jsi::Runtime &runtime, const jsi::Value &, + const jsi::Value *, size_t) { + wgpu::SharedFenceExportInfo info{}; + uint64_t handle = 0; + +#if defined(__APPLE__) + // Apple: the handle is an id pointer. + wgpu::SharedFenceMTLSharedEventExportInfo mtlInfo{}; + info.nextInChain = &mtlInfo; + _instance.ExportInfo(&info); + handle = reinterpret_cast(mtlInfo.sharedEvent); +#elif defined(__ANDROID__) + // Android: the handle is an OS file descriptor (sync_fd). Dawn's ExportInfo + // returns a BORROWED fd: it is owned by the SharedFence and closed when the + // fence is destroyed. This exported handle is documented as caller-owned (the + // caller must close() it), so dup() it. Without the dup the same fd is closed + // twice (once by the caller and once by Dawn on fence destruction), tripping + // Android's fdsan (double-close abort). + wgpu::SharedFenceSyncFDExportInfo fdInfo{}; + info.nextInChain = &fdInfo; + _instance.ExportInfo(&info); + int exportedFd = fdInfo.handle >= 0 + ? ::fcntl(fdInfo.handle, F_DUPFD_CLOEXEC, 0) + : fdInfo.handle; + handle = static_cast(static_cast(exportedFd)); +#else + // react-native-skia only targets Apple (Metal) and Android (Vulkan). On any + // other platform there is no native handle convention to expose, so fail + // loudly rather than handing back a meaningless handle of 0. + throw jsi::JSError(runtime, + "GPUSharedFence::export(): unsupported platform (only " + "Apple/Metal and Android/Vulkan are supported)"); +#endif + + jsi::Object result(runtime); + result.setProperty( + runtime, "type", + jsi::String::createFromUtf8(runtime, sharedFenceTypeToString(info.type))); + result.setProperty(runtime, "handle", + jsi::BigInt::fromUint64(runtime, handle)); + return result; +} + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/GPUSharedFence.h b/packages/skia/cpp/rnwgpu/api/GPUSharedFence.h new file mode 100644 index 0000000000..41a6e9e4f8 --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/GPUSharedFence.h @@ -0,0 +1,53 @@ +#pragma once + +#include +#include + +#include "jsi2/NativeObject.h" + +#include "webgpu/webgpu_cpp.h" + +namespace rnwgpu { + +namespace jsi = facebook::jsi; + +// Wraps a wgpu::SharedFence: a native GPU sync primitive (id on +// Apple, sync-fd / VkSemaphore on Android). +class GPUSharedFence : public NativeObject { +public: + static constexpr const char *CLASS_NAME = "GPUSharedFence"; + + explicit GPUSharedFence(wgpu::SharedFence instance, std::string label) + : NativeObject(CLASS_NAME), _instance(std::move(instance)), + _label(std::move(label)) {} + +public: + std::string getBrand() { return CLASS_NAME; } + + // export() -> { type, handle }: exposes the native handle (as a BigInt) so + // app code can wait on or signal the fence. The caller owns the returned + // handle (e.g. an exported sync-fd must be close()d). + jsi::Value exportInfo(jsi::Runtime &runtime, const jsi::Value &thisVal, + const jsi::Value *args, size_t count); + + std::string getLabel() { return _label; } + void setLabel(const std::string &label) { + _label = label; + _instance.SetLabel(_label.c_str()); + } + + static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) { + installGetter(runtime, prototype, "__brand", &GPUSharedFence::getBrand); + installMethod(runtime, prototype, "export", &GPUSharedFence::exportInfo); + installGetterSetter(runtime, prototype, "label", &GPUSharedFence::getLabel, + &GPUSharedFence::setLabel); + } + + inline wgpu::SharedFence get() { return _instance; } + +private: + wgpu::SharedFence _instance; + std::string _label; +}; + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp b/packages/skia/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp new file mode 100644 index 0000000000..53cf66138b --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp @@ -0,0 +1,135 @@ +#include "GPUSharedTextureMemory.h" + +#include +#include +#include +#include +#include +#include + +#include "Convertors.h" + +namespace rnwgpu { + +std::shared_ptr GPUSharedTextureMemory::createTexture( + std::optional> descriptor) { + if (!descriptor.has_value() || descriptor.value() == nullptr) { + auto texture = _instance.CreateTexture(); + // The texture aliases the shared memory; it doesn't own GPU allocation, so + // it doesn't report memory pressure. + return std::make_shared(texture, "", false); + } + + wgpu::TextureDescriptor desc{}; + Convertor conv; + if (!conv(desc, descriptor.value())) { + throw std::runtime_error( + "GPUSharedTextureMemory::createTexture(): Error with " + "GPUTextureDescriptor"); + } + auto texture = _instance.CreateTexture(&desc); + return std::make_shared( + texture, descriptor.value()->label.value_or(""), false); +} + +void GPUSharedTextureMemory::beginAccess( + std::shared_ptr texture, bool initialized, + std::optional>> fences) { + if (!texture) { + throw std::runtime_error( + "GPUSharedTextureMemory::beginAccess(): texture is null"); + } + wgpu::SharedTextureMemoryBeginAccessDescriptor desc{}; + desc.initialized = initialized; + desc.concurrentRead = false; + + // Built in lockstep so fenceCount covers both arrays, and kept in locals so + // the raw pointers outlive the synchronous BeginAccess() below. + std::vector rawFences; + std::vector values; + if (fences.has_value()) { + for (const auto &state : *fences) { + if (state && state->fence) { + rawFences.push_back(state->fence->get()); + values.push_back(state->signaledValue); + } + } + } + if (!rawFences.empty()) { + desc.fenceCount = rawFences.size(); + desc.fences = rawFences.data(); + desc.signaledValues = values.data(); + } else { + desc.fenceCount = 0; + desc.fences = nullptr; + desc.signaledValues = nullptr; + } + +#if defined(__ANDROID__) + // Dawn's Vulkan backend (AHardwareBuffer) validates that the begin-access + // descriptor chains a SharedTextureMemoryVkImageLayoutBeginState specifying + // the VkImageLayout to acquire the image into. UNDEFINED (= 0) on both ends + // is the canonical "no prior GPU producer" pattern: Dawn performs an + // external-queue acquire from VK_QUEUE_FAMILY_EXTERNAL which preserves the + // AHB contents, then transitions to whatever layout the texture's actual + // usage requires. + wgpu::SharedTextureMemoryVkImageLayoutBeginState vkLayout{}; + vkLayout.oldLayout = 0; + vkLayout.newLayout = 0; + desc.nextInChain = &vkLayout; +#endif + + auto status = _instance.BeginAccess(texture->get(), &desc); + if (!status) { + throw std::runtime_error("GPUSharedTextureMemory::beginAccess() failed"); + } +} + +jsi::Value GPUSharedTextureMemory::endAccess(jsi::Runtime &runtime, + const jsi::Value &, + const jsi::Value *args, + size_t count) { + if (count < 1 || !args[0].isObject()) { + throw jsi::JSError( + runtime, "GPUSharedTextureMemory::endAccess(): expected (texture)"); + } + auto texture = GPUTexture::fromValue(runtime, args[0]); + + wgpu::SharedTextureMemoryEndAccessState state{}; + +#if defined(__ANDROID__) + // Dawn's Vulkan backend writes the released old/new VkImageLayouts back into + // a chained SharedTextureMemoryVkImageLayoutEndState; validation requires + // the chain even when the caller doesn't read the values. + wgpu::SharedTextureMemoryVkImageLayoutEndState vkLayout{}; + state.nextInChain = &vkLayout; +#endif + + auto status = _instance.EndAccess(texture->get(), &state); + if (!status) { + throw jsi::JSError(runtime, "GPUSharedTextureMemory::endAccess() failed"); + } + + // Copy each wgpu::SharedFence (ref-counted) into its own GPUSharedFence + // wrapper before `state` is destroyed. + jsi::Array fences(runtime, state.fenceCount); + for (size_t i = 0; i < state.fenceCount; i++) { + wgpu::SharedFence fence = state.fences[i]; + auto wrapper = std::make_shared(std::move(fence), ""); + jsi::Object entry(runtime); + entry.setProperty(runtime, "fence", + GPUSharedFence::create(runtime, std::move(wrapper))); + entry.setProperty( + runtime, "signaledValue", + jsi::BigInt::fromUint64(runtime, state.signaledValues[i])); + fences.setValueAtIndex(runtime, i, std::move(entry)); + } + + jsi::Object result(runtime); + result.setProperty(runtime, "initialized", + jsi::Value(static_cast(state.initialized))); + result.setProperty(runtime, "fences", std::move(fences)); + return result; +} + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/GPUSharedTextureMemory.h b/packages/skia/cpp/rnwgpu/api/GPUSharedTextureMemory.h new file mode 100644 index 0000000000..b5db61f9c3 --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/GPUSharedTextureMemory.h @@ -0,0 +1,75 @@ +#pragma once + +#include +#include +#include +#include +#include + +#include "jsi2/NativeObject.h" + +#include "webgpu/webgpu_cpp.h" + +#include "GPUSharedFence.h" +#include "GPUTexture.h" +#include "descriptors/GPUSharedFenceState.h" +#include "descriptors/GPUTextureDescriptor.h" + +namespace rnwgpu { + +namespace jsi = facebook::jsi; + +class GPUSharedTextureMemory : public NativeObject { +public: + static constexpr const char *CLASS_NAME = "GPUSharedTextureMemory"; + + explicit GPUSharedTextureMemory(wgpu::SharedTextureMemory instance, + std::string label) + : NativeObject(CLASS_NAME), _instance(std::move(instance)), + _label(std::move(label)) {} + +public: + std::string getBrand() { return CLASS_NAME; } + + std::shared_ptr createTexture( + std::optional> descriptor); + + // Optional `fences` are wait fences: Dawn waits for each to reach its + // signaledValue before writing the surface. Throws on failure. + void beginAccess( + std::shared_ptr texture, bool initialized, + std::optional>> fences); + + // endAccess(texture) -> { initialized, fences: { fence, signaledValue }[] } + // Surfaces the fences Dawn produced for the access. Throws on failure. + jsi::Value endAccess(jsi::Runtime &runtime, const jsi::Value &thisVal, + const jsi::Value *args, size_t count); + + std::string getLabel() { return _label; } + void setLabel(const std::string &label) { + _label = label; + _instance.SetLabel(_label.c_str()); + } + + static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) { + installGetter(runtime, prototype, "__brand", + &GPUSharedTextureMemory::getBrand); + installMethod(runtime, prototype, "createTexture", + &GPUSharedTextureMemory::createTexture); + installMethod(runtime, prototype, "beginAccess", + &GPUSharedTextureMemory::beginAccess); + installMethod(runtime, prototype, "endAccess", + &GPUSharedTextureMemory::endAccess); + installGetterSetter(runtime, prototype, "label", + &GPUSharedTextureMemory::getLabel, + &GPUSharedTextureMemory::setLabel); + } + + inline const wgpu::SharedTextureMemory get() { return _instance; } + +private: + wgpu::SharedTextureMemory _instance; + std::string _label; +}; + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/ImageBitmap.h b/packages/skia/cpp/rnwgpu/api/ImageBitmap.h new file mode 100644 index 0000000000..556cad86ad --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/ImageBitmap.h @@ -0,0 +1,62 @@ +#pragma once + +#include +#include +#include +#include + +#include "jsi2/NativeObject.h" + +namespace rnwgpu { + +namespace jsi = facebook::jsi; + +// DRAFT — compile-unverified. Minimal ImageBitmap holding decoded, unpremul +// RGBA8 pixels plus its dimensions. Produced by the global createImageBitmap() +// binding (see RNSkManager.cpp). Decoding is done with Skia's own codec, so no +// platform-specific image decoder is required. +// +// FOLLOW-UP: to make an ImageBitmap usable as a copyExternalImageToTexture +// source, uncomment the `source` field + ImageBitmap converter in +// rnwgpu/api/descriptors/GPUImageCopyExternalImage.h and upload `data()` in +// GPUQueue::copyExternalImageToTexture. That GPU wiring is intentionally out of +// scope for this draft. +class ImageBitmap : public NativeObject { +public: + static constexpr const char *CLASS_NAME = "ImageBitmap"; + + ImageBitmap(std::vector data, size_t width, size_t height) + : NativeObject(CLASS_NAME), _data(std::move(data)), _width(width), + _height(height) {} + + size_t getWidth() { return _width; } + + size_t getHeight() { return _height; } + + // Per the spec, close() releases the bitmap's underlying pixels and zeroes + // its dimensions. Idempotent. + void close() { + _data.clear(); + _data.shrink_to_fit(); + _width = 0; + _height = 0; + } + + // Decoded, unpremultiplied RGBA8 pixels (row-major, width*height*4 bytes). + const std::vector &data() const { return _data; } + + static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) { + installGetter(runtime, prototype, "width", &ImageBitmap::getWidth); + installGetter(runtime, prototype, "height", &ImageBitmap::getHeight); + installMethod(runtime, prototype, "close", &ImageBitmap::close); + } + + size_t getMemoryPressure() override { return _data.size(); } + +private: + std::vector _data; + size_t _width; + size_t _height; +}; + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/NativeBufferUtils.h b/packages/skia/cpp/rnwgpu/api/NativeBufferUtils.h new file mode 100644 index 0000000000..e8443b79f9 --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/NativeBufferUtils.h @@ -0,0 +1,87 @@ +#pragma once + +#include +#include +#include + +#include "webgpu/webgpu_cpp.h" + +#if defined(__APPLE__) +#include "AppleNativeBuffer.h" +#elif defined(__ANDROID__) +#include +#endif + +namespace rnwgpu { + +// Import a Skia NativeBuffer pointer (a CVPixelBufferRef on Apple, an +// AHardwareBuffer* on Android, as returned by Skia.NativeBuffer.MakeFromImage / +// MakeTestBuffer) as a wgpu::SharedTextureMemory on `device`. When non-null, +// outWidth/outHeight receive the surface dimensions. Returns a null +// SharedTextureMemory if the import itself fails (the caller decides how to +// report that); throws std::runtime_error for pre-import failures (a buffer +// with no IOSurface, or an unsupported platform). +// +// The platform-specific chained descriptor only needs to outlive the +// ImportSharedTextureMemory call, so it lives entirely within this function. +// Shared by GPUDevice::importSharedTextureMemory and +// GPUExternalTexture::Create. +inline wgpu::SharedTextureMemory importNativeBufferAsSharedTextureMemory( + const wgpu::Device &device, void *bufferPtr, const std::string &label, + uint32_t *outWidth, uint32_t *outHeight) { + wgpu::SharedTextureMemoryDescriptor memDesc{}; + if (!label.empty()) { + memDesc.label = wgpu::StringView(label.c_str(), label.size()); + } + + uint32_t width = 0; + uint32_t height = 0; + wgpu::SharedTextureMemory memory; + +#if defined(__APPLE__) + // Skia's NativeBuffer is a CVPixelBufferRef; extract its backing IOSurface + // (and dimensions) in Objective-C++ since CoreVideo isn't available here. + void *ioSurface = GetIOSurfaceFromNativeBuffer(bufferPtr, &width, &height); + if (ioSurface == nullptr) { + throw std::runtime_error( + "importNativeBufferAsSharedTextureMemory(): native " + "buffer has no IOSurface"); + } + wgpu::SharedTextureMemoryIOSurfaceDescriptor platformDesc{}; + platformDesc.ioSurface = ioSurface; + // Default off: enabling it propagates StorageBinding into properties.usage, + // which then forces memory.createTexture() (no-descriptor form) to validate + // the format against storage capabilities. bgra8unorm (the standard + // CVPixelBuffer format) only supports storage when the device opts into the + // bgra8unorm-storage feature, so unconditionally setting this here breaks the + // common sample-only case. + platformDesc.allowStorageBinding = false; + memDesc.nextInChain = &platformDesc; + memory = device.ImportSharedTextureMemory(&memDesc); +#elif defined(__ANDROID__) + auto *ahb = reinterpret_cast(bufferPtr); + AHardwareBuffer_Desc ahbDesc = {}; + AHardwareBuffer_describe(ahb, &ahbDesc); + width = ahbDesc.width; + height = ahbDesc.height; + wgpu::SharedTextureMemoryAHardwareBufferDescriptor platformDesc{}; + platformDesc.handle = ahb; + memDesc.nextInChain = &platformDesc; + memory = device.ImportSharedTextureMemory(&memDesc); +#else + (void)device; + (void)bufferPtr; + throw std::runtime_error( + "importNativeBufferAsSharedTextureMemory(): unsupported platform"); +#endif + + if (outWidth != nullptr) { + *outWidth = width; + } + if (outHeight != nullptr) { + *outHeight = height; + } + return memory; +} + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h index aeadee0738..813389bd0d 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h @@ -20,7 +20,7 @@ struct GPUBindGroupEntry { std::shared_ptr sampler = nullptr; std::shared_ptr textureView = nullptr; std::shared_ptr buffer = nullptr; - // external textures + std::shared_ptr externalTexture = nullptr; }; } // namespace rnwgpu @@ -45,6 +45,9 @@ template <> struct JSIConverter> { } else if (obj.hasNativeState(runtime)) { result->textureView = obj.getNativeState(runtime); + } else if (obj.hasNativeState(runtime)) { + result->externalTexture = + obj.getNativeState(runtime); } else if (obj.hasNativeState(runtime)) { auto binding = std::make_shared(); binding->buffer = obj.getNativeState(runtime); diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h index 9cccc66767..cb319b7d72 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h @@ -7,7 +7,7 @@ #include "jsi2/JSIConverter.h" -#include "GPUDevice.h" +#include "rnwgpu/api/GPUDevice.h" namespace jsi = facebook::jsi; diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h new file mode 100644 index 0000000000..c31460664d --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h @@ -0,0 +1,56 @@ +#pragma once + +#include +#include +#include + +#include "webgpu/webgpu_cpp.h" + +#include "jsi2/JSIConverter.h" + +namespace jsi = facebook::jsi; + +namespace rnwgpu { + +// Non-standard, Dawn-only. Mirrors wgpu::DawnTogglesDescriptor field-for-field +// so the mapping to the native chained struct is 1:1. Chained onto the +// wgpu::DeviceDescriptor in GPUAdapter::requestDevice. +struct GPUDawnTogglesDescriptor { + std::optional> enabledToggles; // Iterable + std::optional> disabledToggles; // Iterable +}; + +} // namespace rnwgpu + +namespace rnwgpu { + +template <> +struct JSIConverter> { + static std::shared_ptr + fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) { + auto result = std::make_unique(); + if (!outOfBounds && arg.isObject()) { + auto value = arg.getObject(runtime); + if (value.hasProperty(runtime, "enabledToggles")) { + auto prop = value.getProperty(runtime, "enabledToggles"); + result->enabledToggles = + JSIConverter>>::fromJSI( + runtime, prop, false); + } + if (value.hasProperty(runtime, "disabledToggles")) { + auto prop = value.getProperty(runtime, "disabledToggles"); + result->disabledToggles = + JSIConverter>>::fromJSI( + runtime, prop, false); + } + } + return result; + } + static jsi::Value + toJSI(jsi::Runtime &runtime, + std::shared_ptr arg) { + throw std::runtime_error("Invalid GPUDawnTogglesDescriptor::toJSI()"); + } +}; + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h index e570e24e81..b1aebb603d 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h @@ -9,6 +9,7 @@ #include "jsi2/JSIConverter.h" +#include "GPUDawnTogglesDescriptor.h" #include "GPUQueueDescriptor.h" namespace jsi = facebook::jsi; @@ -23,6 +24,9 @@ struct GPUDeviceDescriptor { std::optional> defaultQueue; // GPUQueueDescriptor std::optional label; // string + // Non-standard Dawn-only device toggles, chained onto the wgpu::Device + // descriptor in GPUAdapter::requestDevice. + std::optional> dawnToggles; }; } // namespace rnwgpu @@ -86,6 +90,12 @@ template <> struct JSIConverter> { result->label = JSIConverter>::fromJSI( runtime, prop, false); } + if (value.hasProperty(runtime, "dawnToggles")) { + auto prop = value.getProperty(runtime, "dawnToggles"); + result->dawnToggles = JSIConverter>>::fromJSI(runtime, prop, + false); + } } return result; diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h index 51da39afe9..05e30c3397 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h @@ -1,26 +1,36 @@ #pragma once +#include #include #include #include -#include #include "webgpu/webgpu_cpp.h" -#include "Convertors.h" - #include "jsi2/JSIConverter.h" namespace jsi = facebook::jsi; namespace rnwgpu { +// Mirror of GPUExternalTextureDescriptor from the WebGPU spec, adapted to +// Skia's binding. Skia has no VideoFrame; instead `source` is a native buffer +// pointer (the BigInt returned by Skia.NativeBuffer.MakeFromImage): a +// CVPixelBufferRef on Apple, an AHardwareBuffer* on Android. The pointer's +// lifetime is owned by the caller (Skia.NativeBuffer.Release); the imported +// texture must not outlive it. +// +// We don't expose colorSpace yet; the C++ side picks dst-sRGB and identity +// gamut, the right default for "render this BGRA frame to an sRGB framebuffer". +// +// `rotation` / `mirrored` are a non-spec extension baked into Dawn's sampling +// transform. `rotation` is in degrees and must be one of 0 / 90 / 180 / 270. struct GPUExternalTextureDescriptor { - // std::variant, - // std::shared_ptr> - // source; // | HTMLVideoElement | VideoFrame - // std::optional colorSpace; // PredefinedColorSpace - std::optional label; // string + // native buffer pointer (CVPixelBufferRef / AHardwareBuffer*) + uint64_t source = 0; + std::optional label; + std::optional rotation; + std::optional mirrored; }; } // namespace rnwgpu @@ -31,23 +41,21 @@ template <> struct JSIConverter> { static std::shared_ptr fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) { - auto result = std::make_unique(); + auto result = std::make_shared(); if (!outOfBounds && arg.isObject()) { auto value = arg.getObject(runtime); if (value.hasProperty(runtime, "source")) { auto prop = value.getProperty(runtime, "source"); - // result->source = JSIConverter< - // std::variant, - // std::shared_ptr>>::fromJSI(runtime, - // prop, - // false); - } - if (value.hasProperty(runtime, "colorSpace")) { - auto prop = value.getProperty(runtime, "colorSpace"); - if (!prop.isUndefined()) { - // result->colorSpace = - // JSIConverter>::fromJSI( - // runtime, prop, false); + // The native buffer pointer arrives as a BigInt (uintptr_t value). It + // must be a BigInt: a JS number can't represent a 64-bit pointer + // without truncation, so we reject it rather than corrupt the address. + if (prop.isBigInt()) { + result->source = prop.asBigInt(runtime).asUint64(runtime); + } else if (!prop.isUndefined() && !prop.isNull()) { + throw jsi::JSError( + runtime, "GPUExternalTextureDescriptor.source must be a " + "NativeBuffer (BigInt) from " + "Skia.NativeBuffer.MakeFromImage / MakeTestBuffer"); } } if (value.hasProperty(runtime, "label")) { @@ -57,13 +65,24 @@ struct JSIConverter> { runtime, prop, false); } } + if (value.hasProperty(runtime, "rotation")) { + auto prop = value.getProperty(runtime, "rotation"); + if (prop.isNumber()) { + result->rotation = prop.asNumber(); + } + } + if (value.hasProperty(runtime, "mirrored")) { + auto prop = value.getProperty(runtime, "mirrored"); + if (prop.isBool()) { + result->mirrored = prop.getBool(); + } + } } - return result; } static jsi::Value - toJSI(jsi::Runtime &runtime, - std::shared_ptr arg) { + toJSI(jsi::Runtime & /*runtime*/, + std::shared_ptr /*arg*/) { throw std::runtime_error("Invalid GPUExternalTextureDescriptor::toJSI()"); } }; diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h index cc9396cf67..45e36176db 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h @@ -7,17 +7,18 @@ #include "webgpu/webgpu_cpp.h" -#include "Convertors.h" +#include "rnwgpu/api/Convertors.h" #include "jsi2/JSIConverter.h" -#include "GPUOrigin2D.h" +#include "rnwgpu/api/GPUOrigin2D.h" +#include "rnwgpu/api/ImageBitmap.h" namespace jsi = facebook::jsi; namespace rnwgpu { struct GPUImageCopyExternalImage { - // std::shared_ptr source; // GPUImageCopyExternalImageSource + std::shared_ptr source; // GPUImageCopyExternalImageSource std::optional> origin; // GPUOrigin2DStrict std::optional flipY; // boolean }; @@ -33,12 +34,11 @@ struct JSIConverter> { auto result = std::make_unique(); if (!outOfBounds && arg.isObject()) { auto obj = arg.getObject(runtime); - // if (obj.hasProperty(runtime, "source")) { - // auto prop = obj.getProperty(runtime, "source"); - // result->source = - // JSIConverter>::fromJSI( - // runtime, prop, false); - // } + if (obj.hasProperty(runtime, "source")) { + auto prop = obj.getProperty(runtime, "source"); + result->source = JSIConverter>::fromJSI( + runtime, prop, false); + } if (obj.hasProperty(runtime, "origin")) { auto prop = obj.getProperty(runtime, "origin"); result->origin = JSIConverter>::fromJSI( diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h index eed89f4878..ff3472d0e0 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h @@ -6,7 +6,7 @@ #include "jsi2/JSIConverter.h" -#include "GPUOrigin3D.h" +#include "rnwgpu/api/GPUOrigin3D.h" #include "rnwgpu/api/GPUTexture.h" namespace jsi = facebook::jsi; diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h index 56b578ac39..fa8191a963 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h @@ -6,8 +6,8 @@ #include "jsi2/JSIConverter.h" -#include "External.h" -#include "GPUOrigin3D.h" +#include "rnwgpu/api/External.h" +#include "rnwgpu/api/GPUOrigin3D.h" #include "rnwgpu/api/GPUTexture.h" namespace jsi = facebook::jsi; diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h new file mode 100644 index 0000000000..2943a2f349 --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h @@ -0,0 +1,58 @@ +#pragma once + +#include +#include +#include + +#include "webgpu/webgpu_cpp.h" + +#include "jsi2/JSIConverter.h" + +namespace jsi = facebook::jsi; + +namespace rnwgpu { + +// Descriptor for GPUDevice.importSharedFence. `handle` is the native handle +// (an id pointer on Apple, an OS file descriptor on Android), +// passed from JS as a BigInt. +struct GPUSharedFenceDescriptor { + std::string type; + void *handle = nullptr; + std::optional label; +}; + +} // namespace rnwgpu + +namespace rnwgpu { + +template <> +struct JSIConverter> { + static std::shared_ptr + fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) { + auto result = std::make_unique(); + if (!outOfBounds && arg.isObject()) { + auto value = arg.getObject(runtime); + if (value.hasProperty(runtime, "type")) { + result->type = + value.getProperty(runtime, "type").asString(runtime).utf8(runtime); + } + if (value.hasProperty(runtime, "handle")) { + auto prop = value.getProperty(runtime, "handle"); + result->handle = JSIConverter::fromJSI(runtime, prop, false); + } + if (value.hasProperty(runtime, "label")) { + auto prop = value.getProperty(runtime, "label"); + result->label = JSIConverter>::fromJSI( + runtime, prop, false); + } + } + return result; + } + static jsi::Value + toJSI(jsi::Runtime & /*runtime*/, + std::shared_ptr /*arg*/) { + throw std::runtime_error("Invalid GPUSharedFenceDescriptor::toJSI()"); + } +}; + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h new file mode 100644 index 0000000000..d82f0ccb53 --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h @@ -0,0 +1,51 @@ +#pragma once + +#include +#include + +#include "webgpu/webgpu_cpp.h" + +#include "jsi2/JSIConverter.h" + +#include "rnwgpu/api/GPUSharedFence.h" + +namespace jsi = facebook::jsi; + +namespace rnwgpu { + +// A fence and the timeline value to wait for / signal at. +struct GPUSharedFenceState { + std::shared_ptr fence; + uint64_t signaledValue = 0; +}; + +} // namespace rnwgpu + +namespace rnwgpu { + +template <> struct JSIConverter> { + static std::shared_ptr + fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) { + auto result = std::make_unique(); + if (!outOfBounds && arg.isObject()) { + auto value = arg.getObject(runtime); + if (value.hasProperty(runtime, "fence")) { + auto prop = value.getProperty(runtime, "fence"); + result->fence = JSIConverter>::fromJSI( + runtime, prop, false); + } + if (value.hasProperty(runtime, "signaledValue")) { + auto prop = value.getProperty(runtime, "signaledValue"); + result->signaledValue = + JSIConverter::fromJSI(runtime, prop, false); + } + } + return result; + } + static jsi::Value toJSI(jsi::Runtime &runtime, + std::shared_ptr arg) { + throw std::runtime_error("Invalid GPUSharedFenceState::toJSI()"); + } +}; + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h new file mode 100644 index 0000000000..e5ce67ad31 --- /dev/null +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h @@ -0,0 +1,73 @@ +#pragma once + +#include +#include +#include +#include + +#include "webgpu/webgpu_cpp.h" + +#include "jsi2/JSIConverter.h" + +namespace jsi = facebook::jsi; + +namespace rnwgpu { + +// Descriptor for GPUDevice.importSharedTextureMemory. +// +// `handle` is a native buffer pointer as a uintptr_t (passed as a BigInt from +// JS), i.e. the value returned by Skia.NativeBuffer.MakeFromImage: +// - Apple platforms: CVPixelBufferRef (its backing IOSurface is imported) +// - Android: AHardwareBuffer* +// +// Lifetime: the caller is responsible for keeping the underlying object alive +// (via Skia.NativeBuffer.Release) for as long as this shared memory is in use. +struct GPUSharedTextureMemoryDescriptor { + uint64_t handle = 0; + std::optional label; +}; + +} // namespace rnwgpu + +namespace rnwgpu { + +template <> +struct JSIConverter> { + static std::shared_ptr + fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) { + auto result = std::make_shared(); + if (!outOfBounds && arg.isObject()) { + auto value = arg.getObject(runtime); + if (value.hasProperty(runtime, "handle")) { + auto prop = value.getProperty(runtime, "handle"); + // The native buffer pointer arrives as a BigInt (uintptr_t value). It + // must be a BigInt: a JS number can't represent a 64-bit pointer + // without truncation, so we reject it rather than corrupt the address. + if (prop.isBigInt()) { + result->handle = prop.asBigInt(runtime).asUint64(runtime); + } else if (!prop.isUndefined() && !prop.isNull()) { + throw jsi::JSError( + runtime, "GPUSharedTextureMemoryDescriptor.handle must be a " + "NativeBuffer (BigInt) from " + "Skia.NativeBuffer.MakeFromImage / MakeTestBuffer"); + } + } + if (value.hasProperty(runtime, "label")) { + auto prop = value.getProperty(runtime, "label"); + if (!prop.isUndefined()) { + result->label = JSIConverter>::fromJSI( + runtime, prop, false); + } + } + } + return result; + } + static jsi::Value + toJSI(jsi::Runtime & /*runtime*/, + std::shared_ptr /*arg*/) { + throw std::runtime_error( + "Invalid GPUSharedTextureMemoryDescriptor::toJSI()"); + } +}; + +} // namespace rnwgpu diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h index c1ce354fb8..177ca0e876 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h @@ -8,7 +8,7 @@ #include "jsi2/JSIConverter.h" -#include "GPUExtent3D.h" +#include "rnwgpu/api/GPUExtent3D.h" namespace jsi = facebook::jsi; diff --git a/packages/skia/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h b/packages/skia/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h index 2847377463..329bd0f9c1 100644 --- a/packages/skia/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +++ b/packages/skia/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h @@ -6,7 +6,7 @@ #include "jsi2/JSIConverter.h" -#include "GPUError.h" +#include "rnwgpu/api/GPUError.h" namespace jsi = facebook::jsi; diff --git a/packages/skia/package.json b/packages/skia/package.json index 7eb7f0c7a4..14d7a68bbe 100644 --- a/packages/skia/package.json +++ b/packages/skia/package.json @@ -5,7 +5,6 @@ "provenance": true }, "bin": { - "install-skia": "scripts/install-libs.js", "setup-skia-web": "scripts/setup-canvaskit.js" }, "title": "React Native Skia", @@ -17,7 +16,6 @@ "types": "lib/typescript/index.d.ts", "files": [ "scripts/setup-canvaskit.js", - "scripts/install-libs.js", "src/**", "lib/**", "!**/__tests__/**", @@ -37,7 +35,6 @@ "dist/**" ], "scripts": { - "postinstall": "node scripts/install-libs.js", "lint": "eslint . --ext .ts,.tsx --max-warnings 0 --cache --fix", "tsc": "tsc --noEmit", "test": "jest", @@ -47,8 +44,8 @@ "clean-skia": "yarn rimraf ./libs && yarn rimraf ../../externals/skia/out", "build-skia": "tsx ./scripts/build-skia.ts", "copy-skia-headers": "tsx ./scripts/copy-skia-headers.ts", + "install-skia": "tsx ./scripts/install-skia.ts", "install-skia-graphite": "tsx ./scripts/install-skia-graphite.ts", - "install-skia": "node scripts/install-libs.js", "clang-format": "yarn clang-format-ios && yarn clang-format-android && yarn clang-format-common", "clang-format-ios": "find apple/ -iname '*.h' -o -iname '*.mm' -o -iname '*.cpp' | xargs clang-format -i", "clang-format-android": "find android/cpp/ -iname '*.h' -o -iname '*.m' -o -iname '*.cpp' | xargs clang-format -i", @@ -92,8 +89,13 @@ } }, "devDependencies": { - "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6", + "@babel/plugin-transform-class-properties": "^7.28.0", "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.0", + "@babel/preset-env": "^7.28.0", + "@babel/preset-flow": "^7.28.0", + "@babel/preset-react": "^7.28.0", + "@babel/preset-typescript": "^7.28.0", "@blazediff/core": "^1.4.0", "@semantic-release/commit-analyzer": "^13.0.0", "@semantic-release/exec": "^7.0.3", @@ -116,23 +118,23 @@ "react": "19.0.0", "react-native": "0.83.1", "react-native-builder-bob": "0.18.2", - "react-native-reanimated": "^4.2.1", - "react-native-worklets": "^0.7.0", + "react-native-reanimated": "4.3.1", + "react-native-worklets": "0.8.3", "rimraf": "3.0.2", "semantic-release": "^24.1.0", "semantic-release-yarn": "^3.0.2", - "tar": "^7.5.11", + "tar": "^7.5.16", "ts-jest": "29.4.3", "tsx": "^4.21.0", "typescript": "^5.2.2", - "ws": "8.18.0" + "ws": "8.21.0" }, "dependencies": { "canvaskit-wasm": "0.41.0", - "react-native-skia-graphite-android": "147.1.1", - "react-native-skia-graphite-apple-ios": "147.1.1", - "react-native-skia-graphite-apple-macos": "147.1.1", - "react-native-skia-graphite-headers": "147.1.1", + "react-native-skia-graphite-android": "150.0.0", + "react-native-skia-graphite-apple-ios": "150.0.0", + "react-native-skia-graphite-apple-macos": "150.0.0", + "react-native-skia-graphite-headers": "150.0.0", "react-reconciler": "0.31.0" }, "eslintIgnore": [ diff --git a/packages/skia/react-native-skia.podspec b/packages/skia/react-native-skia.podspec index 407320fcda..f075e62b33 100644 --- a/packages/skia/react-native-skia.podspec +++ b/packages/skia/react-native-skia.podspec @@ -1,6 +1,7 @@ # @shopify/react-native-skia.podspec require "json" +require "fileutils" package = JSON.parse(File.read(File.join(__dir__, "package.json"))) @@ -8,6 +9,55 @@ package = JSON.parse(File.read(File.join(__dir__, "package.json"))) use_graphite = File.exist?(File.join(__dir__, 'libs', '.graphite')) puts "-- SK_GRAPHITE: #{use_graphite ? 'ON' : 'OFF'} (detected via libs/.graphite marker file)" +# Resolve a node package directory using Node's own module resolution +# (mirrors `require.resolve(pkg/package.json)`). Returns nil if it can't be found. +# Defined as a lambda (not a `def`) because CocoaPods evaluates the podspec inside +# the `Pod` module, where top-level methods are not reachable at the call site. +resolve_node_package = lambda do |name, base_dir| + script = "process.stdout.write(require('path').dirname(require.resolve('#{name}/package.json')))" + dir = Dir.chdir(base_dir) { `node -e "#{script}" 2>/dev/null`.strip } + dir.empty? ? nil : dir +end + +# Copy the prebuilt xcframeworks from the Skia npm packages into libs/. +# +# This replaces what the old npm `postinstall` script used to do. We do it here, at +# `pod install` time, so we no longer rely on a lifecycle script. CocoaPods always +# re-evaluates the podspec for path-based pods, so this runs on every install; to keep +# it cache-friendly we stamp the copied package version into libs//.version +# and skip the copy when it already matches. On a version bump the frameworks are +# re-copied and CocoaPods picks up the change. This is best-effort: if `pod install` +# does not detect the change, a clean reinstall fixes it (acceptable until the upcoming +# Swift Package Manager migration). +install_apple_skia_libs = lambda do |base_dir| + { 'ios' => 'react-native-skia-apple-ios', + 'macos' => 'react-native-skia-apple-macos', + 'tvos' => 'react-native-skia-apple-tvos' }.each do |platform, pkg_name| + pkg_dir = resolve_node_package.call(pkg_name, base_dir) + next if pkg_dir.nil? + + src = File.join(pkg_dir, 'libs') + next unless Dir.exist?(src) && !Dir.glob(File.join(src, '*.xcframework')).empty? + + version = JSON.parse(File.read(File.join(pkg_dir, 'package.json')))['version'].to_s + dest = File.join(base_dir, 'libs', platform) + marker = File.join(dest, '.version') + + # Already up to date: leave the files untouched so CocoaPods keeps its cache. + next if File.exist?(marker) && File.read(marker).strip == version + + Pod::UI.puts "react-native-skia: installing #{platform} Skia frameworks (#{version})" + FileUtils.rm_rf(dest) + FileUtils.mkdir_p(dest) + Dir.glob(File.join(src, '*.xcframework')).each { |xcf| FileUtils.cp_r(xcf, dest) } + File.write(marker, version) + end +end + +# Graphite downloads its binaries directly into libs/; only the default build needs +# the npm packages copied in. +install_apple_skia_libs.call(__dir__) unless use_graphite + # Set preprocessor definitions based on GRAPHITE flag preprocessor_defs = use_graphite ? '$(inherited) SK_GRAPHITE=1 SK_IMAGE_READ_PIXELS_DISABLE_LEGACY_API=1 SK_DISABLE_LEGACY_SHAPER_FACTORY=1' : @@ -21,22 +71,24 @@ framework_names = ['libskia', 'libsvg', 'libskshaper', 'libskparagraph', # Add Dawn library for Graphite builds (contains dawn::native symbols) framework_names += ['libdawn_combined'] if use_graphite -# Verify that prebuilt binaries have been installed by the postinstall script +# Verify that the prebuilt binaries are available (copied in above, or downloaded by +# install-skia-graphite for Graphite builds). unless Dir.exist?(File.join(__dir__, 'libs', 'ios')) && Dir.exist?(File.join(__dir__, 'libs', 'macos')) Pod::UI.warn "#{'-' * 72}" Pod::UI.warn "react-native-skia: Skia prebuilt binaries not found in libs/!" Pod::UI.warn "" - Pod::UI.warn "Run the following command to install them:" - Pod::UI.warn " npx install-skia" + Pod::UI.warn "Make sure dependencies are installed (yarn install / npm install) so that" + Pod::UI.warn "the react-native-skia-apple-* packages are present, then run `pod install` again." Pod::UI.warn "#{'-' * 72}" - raise "react-native-skia: Skia prebuilt binaries not found. Run `npx install-skia` to fix this." + raise "react-native-skia: Skia prebuilt binaries not found. Run `yarn install` then `pod install` to fix this." end # Build platform-specific framework paths (relative to pod's libs directory) -# xcframeworks are copied into libs/ by the npm postinstall script (scripts/install-libs.js) +# xcframeworks are copied into libs/ by install_apple_skia_libs above (default build) +# or downloaded by install-skia-graphite (Graphite build). ios_frameworks = framework_names.map { |f| "libs/ios/#{f}.xcframework" } osx_frameworks = framework_names.map { |f| "libs/macos/#{f}.xcframework" } -# tvOS frameworks - check if libs/tvos/ exists (populated by postinstall before pod install runs) +# tvOS frameworks - check if libs/tvos/ exists (only populated for the default build) tvos_frameworks = if use_graphite || !Dir.exist?(File.join(__dir__, 'libs', 'tvos')) [] else @@ -65,7 +117,7 @@ Pod::Spec.new do |s| 'GCC_PREPROCESSOR_DEFINITIONS' => preprocessor_defs, 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17', 'DEFINES_MODULE' => 'YES', - "HEADER_SEARCH_PATHS" => '"$(PODS_TARGET_SRCROOT)/cpp/"/** "$(PODS_TARGET_SRCROOT)/cpp" "$(PODS_TARGET_SRCROOT)/cpp/jsi2" "$(PODS_TARGET_SRCROOT)/cpp/rnwgpu" "$(PODS_TARGET_SRCROOT)/cpp/rnwgpu/api" "$(PODS_TARGET_SRCROOT)/cpp/rnwgpu/api/descriptors" "$(PODS_TARGET_SRCROOT)/cpp/rnwgpu/async" "$(PODS_TARGET_SRCROOT)/cpp/dawn/include"' + "HEADER_SEARCH_PATHS" => '"$(PODS_TARGET_SRCROOT)/cpp"/** "$(PODS_TARGET_SRCROOT)/cpp" "$(PODS_TARGET_SRCROOT)/cpp/skia" "$(PODS_TARGET_SRCROOT)/cpp/dawn/include"' } s.frameworks = ['MetalKit', 'AVFoundation', 'AVKit', 'CoreMedia'] diff --git a/packages/skia/scripts/build-skia.ts b/packages/skia/scripts/build-skia.ts index 320b6bf97f..8761213e8a 100644 --- a/packages/skia/scripts/build-skia.ts +++ b/packages/skia/scripts/build-skia.ts @@ -310,6 +310,11 @@ const buildXCFramework = (platformName: ApplePlatformName) => { const arm64ePatchFile = path.join(__dirname, "dawn-arm64e-simulator.patch"); $(`cd ${SkiaSrc} && git apply ${arm64ePatchFile}`); + // Implement drawAtlas for the Graphite backend (removes the no-op override + // so the inherited drawVertices-based default lights up the API). + const drawAtlasPatchFile = path.join(__dirname, "graphite-drawatlas.patch"); + $(`cd ${SkiaSrc} && git apply ${drawAtlasPatchFile}`); + // Remove arm64e arch flags (not available on simulator) { const filePath = `${SkiaSrc}/gn/skia/BUILD.gn`; @@ -323,7 +328,10 @@ const buildXCFramework = (platformName: ApplePlatformName) => { ` }`, ` } else if (current_cpu == "x86") {`, ].join("\n"); - const replace = [` ]`, ` } else if (current_cpu == "x86") {`].join("\n"); + const replace = [ + ` ]`, + ` } else if (current_cpu == "x86") {`, + ].join("\n"); const content = fs.readFileSync(filePath, "utf-8"); if (!content.includes(search)) { throw new Error(`Patch target not found in ${filePath}`); @@ -348,7 +356,10 @@ const buildXCFramework = (platformName: ApplePlatformName) => { const content = fs.readFileSync(filePath, "utf-8"); fs.writeFileSync( filePath, - content.replace(/uint32\(bindingInfo\.binding\)/g, "uint32_t(bindingInfo.binding)") + content.replace( + /uint32\(bindingInfo\.binding\)/g, + "uint32_t(bindingInfo.binding)" + ) ); } // Add iOS support to Dawn cmake_utils.py diff --git a/packages/skia/scripts/graphite-drawatlas.patch b/packages/skia/scripts/graphite-drawatlas.patch new file mode 100644 index 0000000000..07eae3acc8 --- /dev/null +++ b/packages/skia/scripts/graphite-drawatlas.patch @@ -0,0 +1,57 @@ +../../packages/skia/scripts/graphite-drawatlas.patch From 4d25f90dae867435707631ce0e16d2f8899ae29d Mon Sep 17 00:00:00 2001 +From: Claude +Date: Fri, 19 Jun 2026 13:54:32 +0000 +Subject: [PATCH] Implement drawAtlas for the Graphite backend + +The Graphite Device overrode SkDevice::drawAtlas() with an empty no-op, +so SkCanvas::drawAtlas() silently drew nothing on Graphite. + +drawAtlas is definitionally "drawVertices with an image shader": the +canvas layer (SkCanvas::onDrawAtlas2) already installs the atlas image +as the paint's shader, and SkDevice's default drawAtlas() expands the +RSXform/tex/color spans into an SkVertices and forwards to drawVertices(). +Graphite already fully implements drawVertices() (per-vertex colors, +primitive blender, and shader-sourced texture coordinates), so removing +the no-op override lets the inherited implementation light the API up. + +This mirrors how Graphite already defers drawRegion and drawPatch to +their default drawVertices/drawPath/drawRect routing instead of +specializing them. + +Co-Authored-By: Claude Opus 4.8 +Claude-Session: https://claude.ai/code/session_01LDRiP7kX2Wa8pD7ewEuhFf +--- + src/gpu/graphite/Device.h | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/src/gpu/graphite/Device.h b/src/gpu/graphite/Device.h +index c5669d2..8b5e9ad 100644 +--- a/src/gpu/graphite/Device.h ++++ b/src/gpu/graphite/Device.h +@@ -210,8 +210,8 @@ public: + void drawPath(const SkPath& path, const SkPaint&) override; + void drawDRRect(const SkRRect& outer, const SkRRect& inner, const SkPaint&) override; + +- // No need to specialize drawRegion or drawPatch as the default impls all route to drawPath, +- // drawRect, or drawVertices as desired. ++ // No need to specialize drawRegion, drawPatch, or drawAtlas as the default impls all route to ++ // drawPath, drawRect, or drawVertices as desired. + + void drawEdgeAAQuad(const SkRect& rect, const SkPoint clip[4], + SkCanvas::QuadAAFlags aaFlags, const SkColor4f& color, +@@ -234,11 +234,9 @@ public: + const SkSamplingOptions&, + const SkPaint&, + SkCanvas::SrcRectConstraint) override; +- // TODO: Implement these using per-edge AA quads and an inlined image shader program. ++ // TODO: Implement this using per-edge AA quads and an inlined image shader program. + void drawImageLattice(const SkImage*, const SkCanvas::Lattice&, + const SkRect& dst, SkFilterMode, const SkPaint&) override {} +- void drawAtlas(SkSpan, SkSpan, SkSpan, +- sk_sp, const SkPaint&) override {} + + void drawDrawable(SkCanvas*, SkDrawable*, const SkMatrix*) override {} + void drawMesh(const SkMesh&, sk_sp, const SkPaint&) override {} +-- +2.43.0 + diff --git a/packages/skia/scripts/install-libs.js b/packages/skia/scripts/install-libs.js deleted file mode 100755 index a3925d1ce6..0000000000 --- a/packages/skia/scripts/install-libs.js +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env node -"use strict"; - -const path = require("path"); -const fs = require("fs"); - -const useGraphite = true; -const prefix = "react-native-skia-graphite"; -const libsDir = path.join(__dirname, "..", "libs"); -const packageRoot = path.join(__dirname, ".."); - -function copySync(src, dest, options) { - if (!src.includes("*")) { - return fs.cpSync(src, dest, options); - } - - const wildcardSplit = src.split("*"); - const basePath = wildcardSplit[0]; - const files = fs.readdirSync(basePath); - files - .filter((file) => file.endsWith(wildcardSplit[1])) - .forEach((file) => { - return fs.cpSync( - path.join(basePath, file), - path.join(dest, file), - options - ); - }); -} - -// --- Apple platforms --- - -let iosPackage, macosPackage; -try { - iosPackage = path.dirname( - require.resolve(prefix + "-apple-ios/package.json") - ); - macosPackage = path.dirname( - require.resolve(prefix + "-apple-macos/package.json") - ); -} catch (e) { - console.error( - "ERROR: Could not find " + - prefix + - "-apple-ios or " + - prefix + - "-apple-macos" - ); - console.error("Make sure you have run yarn install or npm install"); - process.exit(1); -} - -// Verify xcframeworks exist in the iOS package -const iosXcf = path.join(iosPackage, "libs"); -if ( - !fs.existsSync(iosXcf) || - !fs.readdirSync(iosXcf).some((f) => f.endsWith(".xcframework")) -) { - console.error( - "ERROR: Skia prebuilt binaries not found in " + prefix + "-apple-ios!" - ); - process.exit(1); -} - -console.log("-- Skia iOS package: " + iosPackage); -console.log("-- Skia macOS package: " + macosPackage); - -// Clean and copy Apple frameworks -fs.rmSync(path.join(libsDir, "ios"), { recursive: true, force: true }); -fs.rmSync(path.join(libsDir, "macos"), { recursive: true, force: true }); -fs.rmSync(path.join(libsDir, "tvos"), { recursive: true, force: true }); -fs.mkdirSync(path.join(libsDir, "ios"), { recursive: true }); -fs.mkdirSync(path.join(libsDir, "macos"), { recursive: true }); - -copySync(iosPackage + "/libs/*.xcframework", path.join(libsDir, "ios"), { - recursive: true, -}); -copySync(macosPackage + "/libs/*.xcframework", path.join(libsDir, "macos"), { - recursive: true, -}); - -// Handle tvOS (non-Graphite only) -if (!useGraphite) { - try { - const tvosPackage = path.dirname( - require.resolve(prefix + "-apple-tvos/package.json") - ); - console.log("-- Skia tvOS package: " + tvosPackage); - fs.mkdirSync(path.join(libsDir, "tvos"), { recursive: true }); - copySync(tvosPackage + "/libs/*.xcframework", path.join(libsDir, "tvos"), { - recursive: true, - }); - } catch (e) { - console.log("-- tvOS package not found, skipping"); - } -} - -console.log("-- Copied Apple xcframeworks to libs/"); - -// --- Android --- - -const androidPackageName = useGraphite - ? "react-native-skia-graphite-android" - : "react-native-skia-android"; - -let androidPackage; -try { - androidPackage = path.dirname( - require.resolve(androidPackageName + "/package.json") - ); -} catch (e) { - console.error("ERROR: Could not find " + androidPackageName); - console.error("Make sure you have run yarn install or npm install"); - process.exit(1); -} - -const androidSrcLibs = path.join(androidPackage, "libs"); -if (!fs.existsSync(androidSrcLibs)) { - console.error( - "ERROR: Skia prebuilt binaries not found in " + androidPackageName + "!" - ); - process.exit(1); -} - -console.log("-- Skia Android package: " + androidPackage); - -// Copy Android libs (per-ABI static libraries) -const androidDest = path.join(libsDir, "android"); -fs.rmSync(androidDest, { recursive: true, force: true }); -copySync(androidSrcLibs, androidDest, { recursive: true }); - -console.log("-- Copied Android libs to libs/android/"); - -// --- Graphite: headers and marker file --- - -if (useGraphite) { - // Copy Dawn/WebGPU headers from the headers package - let headersPackage; - try { - headersPackage = path.dirname( - require.resolve("react-native-skia-graphite-headers/package.json") - ); - } catch (e) { - console.error("ERROR: Could not find react-native-skia-graphite-headers"); - console.error("Make sure you have run yarn install or npm install"); - process.exit(1); - } - - console.log("-- Skia Graphite headers package: " + headersPackage); - - const headersSrcBase = path.join(headersPackage, "libs/skia/cpp"); - - // Copy Dawn/WebGPU headers - const dawnSrc = path.join(headersSrcBase, "dawn"); - const dawnDest = path.join(packageRoot, "cpp/dawn"); - fs.rmSync(dawnDest, { recursive: true, force: true }); - fs.cpSync(dawnSrc, dawnDest, { recursive: true }); - console.log("-- Copied Dawn/WebGPU headers to cpp/dawn/"); - - // Copy Graphite source headers - const graphiteSrc = path.join(headersSrcBase, "skia/src/gpu/graphite"); - const graphiteDest = path.join(packageRoot, "cpp/skia/src/gpu/graphite"); - fs.rmSync(graphiteDest, { recursive: true, force: true }); - fs.mkdirSync(graphiteDest, { recursive: true }); - fs.cpSync(graphiteSrc, graphiteDest, { recursive: true }); - console.log("-- Copied Graphite source headers to cpp/skia/src/gpu/graphite/"); - - // Write .graphite marker file - const markerFile = path.join(libsDir, ".graphite"); - const version = "m147a"; - fs.writeFileSync(markerFile, version, "utf-8"); - console.log("-- Wrote Graphite marker file: " + markerFile); -} diff --git a/packages/skia/scripts/install-skia-graphite.ts b/packages/skia/scripts/install-skia-graphite.ts index 353e3b503c..47ea4e7dbb 100644 --- a/packages/skia/scripts/install-skia-graphite.ts +++ b/packages/skia/scripts/install-skia-graphite.ts @@ -29,20 +29,20 @@ import { fileOps } from "./utils"; // Graphite configuration const GRAPHITE_CONFIG = { - version: "m147a", + version: "m150", checksums: { "android-armeabi-v7a": - "84bdd468bd50f5e1c32ea8809eba400f1da74893f4675b2822af26ead6d3acd7", + "c8a1f9d259599280b737497a914e6fcb1b47fbf6e59537cffe3e3ebbc3aa0394", "android-arm64-v8a": - "691865ca5fb750de65f904d163a6a2feff2b671268bb1c781e73d0db99c2e41f", + "21667587386ebbaba1b61926f81dc1562443eefec5d1489b9278084f18ebb8e4", "android-x86": - "7cc2993d68ef7cb50c542b04385239674c4991e519c1890742100cddddf624f1", + "0679a34612b98b5397180e027f7592026eb4af950b36e55bf7882ea86e2cb1e3", "android-x86_64": - "06d5f88bd12ead9134a0fd512dd54e95fbb936f78d29c507155106cb49c1f163", + "eec546cf240e76129e9e6d16e51c61acfd62b7c00d655b133eddfab890c3488b", "apple-ios-xcframeworks": - "55b188a6f604411ddccff96253268db0134acb6ec5751b196b7552c104d61d7c", + "0ad5434961b22a59541c0364be20a54c5cde599c1ffd4d6b653fefb19c2119fc", "apple-macos-xcframeworks": - "a2cf4591f2471f1b36dc2eae5d4e8c098243b738656dd9daa1ea57ee59cb0a63", + "e3861d45386309dfed851488293027f3026a35684007595071426f4e46bef023", }, } as const; diff --git a/packages/skia/scripts/install-skia.ts b/packages/skia/scripts/install-skia.ts new file mode 100644 index 0000000000..2b26fc8033 --- /dev/null +++ b/packages/skia/scripts/install-skia.ts @@ -0,0 +1,55 @@ +/** + * Set up the standard (Ganesh) Skia build for development. + * + * Unlike `install-skia-graphite`, this script does NOT download or copy any + * prebuilt binaries. The standard binaries ship in the `react-native-skia-android` + * and `react-native-skia-apple-*` npm packages and are resolved straight from + * node_modules by build.gradle (Android, read in place) and the podspec (Apple, + * copied in at `pod install`). This replaces the work the old npm `postinstall` + * script used to do. + * + * It only needs to: + * 1. Undo a previous Graphite install by removing the `libs/.graphite` marker + * and the Graphite-only `cpp/dawn` headers, so the native build systems + * switch back to the standard binaries. + * 2. Copy the Skia headers required to compile against the prebuilt libraries. + * + * It deliberately leaves the contents of `libs/` in place, since `yarn build-skia` + * writes locally-built binaries there. + */ +import { existsSync, rmSync } from "fs"; +import path from "path"; + +import { copyHeaders } from "./skia-configuration"; + +const packageRoot = path.resolve(__dirname, ".."); +const repoRoot = path.resolve(packageRoot, "..", ".."); + +// Headers are copied from the Skia submodule. If it isn't checked out, copyHeaders +// would silently copy nothing (copyRecursiveSync no-ops on a missing source) and +// the failure would only surface later as missing Skia headers during compilation. +// Fail loudly here instead, with an actionable message. +const skiaInclude = path.join(repoRoot, "externals", "skia", "include"); +if (!existsSync(skiaInclude)) { + console.error( + `\n❌ Skia submodule not found at ${skiaInclude}\n` + + " Headers are copied from the Skia submodule. Check it out first:\n" + + " git submodule update --init --recursive\n" + ); + process.exit(1); +} + +const graphiteMarker = path.join(packageRoot, "libs", ".graphite"); +if (existsSync(graphiteMarker)) { + console.log("-- Removing Graphite marker (switching to the standard build)"); + rmSync(graphiteMarker, { force: true }); + // Drop the Graphite-only Dawn headers so they don't linger in a standard build. + rmSync(path.join(packageRoot, "cpp", "dawn"), { recursive: true, force: true }); +} + +console.log("-- Copying Skia headers"); +copyHeaders(); + +console.log( + "✅ Standard Skia build ready. Prebuilt binaries are resolved from node_modules." +); diff --git a/packages/skia/scripts/skia-configuration.ts b/packages/skia/scripts/skia-configuration.ts index 4db46627ab..eb7a0377ca 100644 --- a/packages/skia/scripts/skia-configuration.ts +++ b/packages/skia/scripts/skia-configuration.ts @@ -657,6 +657,10 @@ export const copyHeaders = () => { "../../externals/skia/src/base/SkArenaAlloc.h", "./cpp/skia/src/base/SkArenaAlloc.h" ); + fileOps.cp( + "../../externals/skia/src/base/SkAutoLocaleSetter.h", + "./cpp/skia/src/base/SkAutoLocaleSetter.h" + ); // Copy skunicode fileOps.mkdir("./cpp/skia/modules/skunicode/include/"); diff --git a/packages/skia/src/__tests__/globalSetup.ts b/packages/skia/src/__tests__/globalSetup.ts index 7eaac9ec89..91029463c7 100644 --- a/packages/skia/src/__tests__/globalSetup.ts +++ b/packages/skia/src/__tests__/globalSetup.ts @@ -6,6 +6,9 @@ declare global { var testClient: WebSocket; var testOS: "ios" | "android" | "web" | "node" | "macos"; var testArch: "paper" | "fabric"; + // Whether the connected device is running the Graphite backend (Dawn/WebGPU). + // Older example-app builds don't send this field, so it defaults to false. + var testGraphite: boolean; } const isOS = ( @@ -32,7 +35,7 @@ const globalSetup = () => { global.testClient = client; client.once("message", (msg) => { const obj = JSON.parse(msg.toString("utf8")); - const { OS, arch } = obj; + const { OS, arch, graphite } = obj; if (!isOS(OS)) { throw new Error("Unknown testing platform: " + OS); } @@ -41,7 +44,10 @@ const globalSetup = () => { } global.testOS = OS; global.testArch = arch; - console.log(`${OS} device connected (${arch})`); + global.testGraphite = graphite === true; + console.log( + `${OS} device connected (${arch}, graphite: ${global.testGraphite})` + ); resolve(); }); }); diff --git a/packages/skia/src/__tests__/setup.ts b/packages/skia/src/__tests__/setup.ts index 23b5f4c28f..c67d6370cb 100644 --- a/packages/skia/src/__tests__/setup.ts +++ b/packages/skia/src/__tests__/setup.ts @@ -10,6 +10,12 @@ import type { SkSurface, SkImage } from "../skia/types"; export const E2E = process.env.E2E === "true"; export const CI = process.env.CI === "true"; export const WEB = process.env.WEB === "true"; +// Whether the connected device runs the Graphite (Dawn/WebGPU) backend. Set by +// globalSetup once the example app reports its backend, so it is available by +// the time spec files are collected. Used by checkImage to pick up a +// backend-specific (…-graphite.png) baseline when one exists. +export const GRAPHITE = + E2E && (global as { testGraphite?: boolean }).testGraphite === true; export const itFailsE2e = E2E ? it.failing : it; export const itSkipsCanvasKit = WEB || !E2E ? it.skip : it; export const itRunsE2eOnly = E2E && !WEB ? it : it.skip; @@ -57,7 +63,18 @@ export const checkImage = ( const options = { ...defaultCheckImageOptions, ...opts }; const { overwrite, threshold, mute, maxPixelDiff, shouldFail } = options; const png = image.encodeToBytes(); - const p = path.resolve(__dirname, relPath); + let p = path.resolve(__dirname, relPath); + // Some Skia APIs render differently on the Graphite (Dawn/WebGPU) backend + // than on Ganesh. When a backend-specific baseline (…-graphite.png) exists we + // compare against it; otherwise we fall back to the shared baseline. With + // `overwrite` we always target the Graphite-specific file so its baseline can + // be (re)generated without touching the Ganesh one. + if (GRAPHITE) { + const graphitePath = p.replace(/\.png$/, "-graphite.png"); + if (overwrite || fs.existsSync(graphitePath)) { + p = graphitePath; + } + } if (fs.existsSync(p) && !overwrite) { const ref = fs.readFileSync(p); const baseline = PNG.sync.read(ref); diff --git a/packages/skia/src/__tests__/snapshots/platform-buffer.png b/packages/skia/src/__tests__/snapshots/platform-buffer.png index 12426ed7513d46cd97973140c3d2958c467efda5..d932bd16a56a9819dd8e701a1e207f68969319b9 100644 GIT binary patch literal 144440 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 T5@)=q0nDW+rzTr2jR^T4TFZ>b literal 95379 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

    Tek`Iu*K=cCQ?j_vBHyxC8_;Z(}1OsHXqG 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¥NOyGI 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

    jM zs9iu($H#W5qQ&}(d!_8UykULSy@u(jX@i84?INSW@axp3Pbuw;_8U5j5Xsy=gV9V~V7Bh|uM8dkNO9N~aFD*p^3ng)jCQ^*V*fJ^@!V`=GQZjd0 zzOS06Iw;VQfA0oW4FpjeTbd2lF41-s)8rI?_$k2~?2s#cUGcUUJ!r$P9i+u1^eg|v2205@$lkYd1q;5JJ*dZf{x}t zf2+5u$1k7Uy*9W%t(Y#4tmefkS9JD+cV`1HrSc#Rh==W2CdQDk^!LpU_0it8$|73O=iFk0|t0aMJ zmo@uqdH}wjhQZ4Aj9lg1O68o2NF@6s#}yPJF`}z|- zL;tIz=l|=FWn7}5rJ)qJEit;6f*!V@1lz$bW zER%0PPEhvQ3GI=9d>p}?_-UMO()3BTb zeFK)Q46r|5F<`0vvbYHrrwI6Ezx5Yw^^?~z6FHw}RPoyJDD!xU_W~k_ikqQJB`z+7 zKwlssr(@BSJAK42EN{%B*(h{rsid=dGxOnZ`dfIi0KB?N^TFbsnM2%_0DKK)vm!pg zjPjF?8Rc+)kRb~Tj6WvtQF5xPA?U%F8<~RF(M^1K0G?mv98Q53Xc$&~F+jwlK-OSj zB8qU&CcgB+3UXy7I>r z-rR^tefpGwjyvh8$-)801Fe$l(P<7GR52}9CgSy7Ol~7oZT$S;A$v8U-tI75af>fl zP%5QOOJ()w-IhjV4L7QVM0F)tqDOkqH0saW@#@*1B161vX34q?P;L?QeW6n+1FaS3 z-^YuQVZZU~Hx6)pTv$291s<Y*o#%M2 zCl|A;6uN(nZyiU)3}XCtxWO$y%N)P)hXy*>8c4Z~UGv+VcHhYx3wkg$#XB<063F;@#IE(|_xm2jg%rIDPQ(cz$0mGmtxlr`qlwv?`3 z0KGvUmJLgJLu;mDr=z=^6nMXqj#&CA))zbMZS$H<#Xl_bvcMGc6f+)B|>x`aarcAH*%UsLPsxo?MV` zVIAg?9qHd17j=A$aimIm%$(~_4-%G{Te-5)AVG8<0 z(!Avo-v2W$p}TX&F9WpI|6f~q&uxHZSd?cU5_u%%iac`jKpw%aD~vFmlTqNSsnKPc z8s=9&HeUM88n6BP_l4f*{LGe~=LW+sMV!fn5qUvgQ&aNjx6a4(xXkFv%5E9d8XX;%WQC}dZ_E?_>{$;odUR%2(9qD8q&9x> z^)HHDx2tRCzk>y<fSC_w+Z<_$iNPO diff --git a/packages/skia/src/renderer/__tests__/e2e/ArrayBuffer.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/ArrayBuffer.spec.tsx new file mode 100644 index 0000000000..afa4731cd2 --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/ArrayBuffer.spec.tsx @@ -0,0 +1,79 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// Ported from react-native-webgpu (ArrayBuffer.spec.ts). Round-trips data +// through GPU buffers (writeBuffer -> copyBufferToBuffer -> mapAsync). WebGPU is +// only available on Graphite (Dawn) builds. +describe("ArrayBuffer", () => { + itRunsWithGraphite("Array Buffer (1)", async () => { + const result = await surface.eval(() => { + return Array.from(new Uint8Array([1.0, 2.0, 3.0, 4.0])); + }); + expect(result.slice(0, 4)).toEqual([1, 2, 3, 4]); + }); + + itRunsWithGraphite("Array Buffer (2)", async () => { + const result = await surface.eval((Skia) => { + const device = Skia.getDevice(); + const data = new Float32Array([1.0, 2.0, 3.0, 4.0]); + const bufferSize = data.byteLength; // 4 32-bit floats + const sourceBuffer = device.createBuffer({ + size: bufferSize, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST, + }); + + // Create a buffer for reading + const readBuffer = device.createBuffer({ + size: bufferSize, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + // Write data to the source buffer + device.queue.writeBuffer(sourceBuffer, 0, data); + + // Copy data from source buffer to read buffer + const encoder = device.createCommandEncoder(); + encoder.copyBufferToBuffer(sourceBuffer, 0, readBuffer, 0, bufferSize); + device.queue.submit([encoder.finish()]); + return device.queue.onSubmittedWorkDone().then(() => { + // Map the read buffer for reading + return readBuffer.mapAsync(GPUMapMode.READ).then(() => { + const readData = new Float32Array(readBuffer.getMappedRange()); + return Array.from(readData); + }); + }); + }); + expect(result).toEqual([1, 2, 3, 4]); + }); + + itRunsWithGraphite("Array Buffer (3)", async () => { + const result = await surface.eval((Skia) => { + const device = Skia.getDevice(); + const data = new Float32Array([1.0, 2.0, 3.0, 4.0]); + const bufferSize = data.byteLength; // 4 32-bit floats + const sourceBuffer = device.createBuffer({ + size: bufferSize, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST, + }); + + // Create a buffer for reading + const readBuffer = device.createBuffer({ + size: bufferSize, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + // Write data to the source buffer + device.queue.writeBuffer(sourceBuffer, 0, data); + + // Copy data from source buffer to read buffer + const encoder = device.createCommandEncoder(); + encoder.copyBufferToBuffer(sourceBuffer, 0, readBuffer, 0, bufferSize); + device.queue.submit([encoder.finish()]); + // Map the read buffer for reading + return readBuffer.mapAsync(GPUMapMode.READ).then(() => { + const readData = new Float32Array(readBuffer.getMappedRange()); + return Array.from(readData); + }); + }); + expect(result).toEqual([1, 2, 3, 4]); + }); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/ArrayBufferBounds.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/ArrayBufferBounds.spec.tsx new file mode 100644 index 0000000000..1093e6e97b --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/ArrayBufferBounds.spec.tsx @@ -0,0 +1,213 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// These tests exercise the conversion of JS BufferSources (TypedArrays / +// DataView / raw ArrayBuffer) into the native rnwgpu::ArrayBuffer in +// cpp/rnwgpu/ArrayBuffer.h. +// +// The native `fromJSI` reads `byteOffset` / `byteLength` / `BYTES_PER_ELEMENT` +// directly off the JS object and does `arrayBuffer.data(runtime) + byteOffset` +// with `byteLength` as the size. Those properties must be validated against the +// real size of the backing ArrayBuffer: a spoofed object (or a view over a +// detached / resized buffer) can otherwise produce an out-of-bounds pointer or +// length and trigger a heap OOB read/write when consumed by writeBuffer. +// +// Dawn's node binding avoids this because it reads ByteOffset()/ByteLength() +// from the engine's typed-array view object (Napi), whose invariants the JS +// engine guarantees. Since JSI exposes these only as user-readable properties, +// we must validate them ourselves: byteOffset + byteLength <= buffer size. +// +// WebGPU is only available on Graphite (Dawn) builds, so these are gated on +// the Graphite backend. +describe("ArrayBuffer bounds", () => { + // -- Correctness of the legitimate offset path ------------------------------- + + itRunsWithGraphite( + "writes a typed-array view that has a non-zero byteOffset", + async () => { + const result = await surface.eval((Skia) => { + const device = Skia.getDevice(); + // A Float32Array view starting at element 1 of a 4-element buffer. + const backing = new Float32Array([10, 20, 30, 40]); + const view = backing.subarray(1, 3); // [20, 30], byteOffset = 4 + const size = view.byteLength; // 8 bytes + + const src = device.createBuffer({ + size, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST, + }); + const readBuffer = device.createBuffer({ + size, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + device.queue.writeBuffer(src, 0, view); + const encoder = device.createCommandEncoder(); + encoder.copyBufferToBuffer(src, 0, readBuffer, 0, size); + device.queue.submit([encoder.finish()]); + return device.queue + .onSubmittedWorkDone() + .then(() => + readBuffer + .mapAsync(GPUMapMode.READ) + .then(() => + Array.from(new Float32Array(readBuffer.getMappedRange())) + ) + ); + }); + // Must read the SLICE, not the whole backing buffer. + expect(result).toEqual([20, 30]); + } + ); + + itRunsWithGraphite( + "respects dataOffset/size element arguments of writeBuffer", + async () => { + const result = await surface.eval((Skia) => { + const device = Skia.getDevice(); + const data = new Uint32Array([1, 2, 3, 4]); + const size = 2 * data.BYTES_PER_ELEMENT; // copy elements [1,2] + + const src = device.createBuffer({ + size, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST, + }); + const readBuffer = device.createBuffer({ + size, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + // dataOffset = 1 element, size = 2 elements -> [2, 3] + device.queue.writeBuffer(src, 0, data, 1, 2); + const encoder = device.createCommandEncoder(); + encoder.copyBufferToBuffer(src, 0, readBuffer, 0, size); + device.queue.submit([encoder.finish()]); + return device.queue + .onSubmittedWorkDone() + .then(() => + readBuffer + .mapAsync(GPUMapMode.READ) + .then(() => + Array.from(new Uint32Array(readBuffer.getMappedRange())) + ) + ); + }); + expect(result).toEqual([2, 3]); + } + ); + + itRunsWithGraphite( + "accepts a raw ArrayBuffer as the data source", + async () => { + const result = await surface.eval((Skia) => { + const device = Skia.getDevice(); + const ab = new Uint8Array([5, 6, 7, 8]).buffer; // raw ArrayBuffer + const size = ab.byteLength; + + const src = device.createBuffer({ + size, + usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST, + }); + const readBuffer = device.createBuffer({ + size, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + device.queue.writeBuffer(src, 0, ab); + const encoder = device.createCommandEncoder(); + encoder.copyBufferToBuffer(src, 0, readBuffer, 0, size); + device.queue.submit([encoder.finish()]); + return device.queue + .onSubmittedWorkDone() + .then(() => + readBuffer + .mapAsync(GPUMapMode.READ) + .then(() => + Array.from(new Uint8Array(readBuffer.getMappedRange())) + ) + ); + }); + expect(result).toEqual([5, 6, 7, 8]); + } + ); + + // -- Out-of-bounds rejection ------------------------------------------------- + // The following cases MUST throw rather than read/write out of bounds. They + // pass once fromJSI validates byteOffset + byteLength against the real buffer + // size. Without that fix they may corrupt memory / crash instead of throwing. + + itRunsWithGraphite( + "rejects a spoofed BufferSource whose byteLength exceeds the buffer", + async () => { + await expect( + surface.eval((Skia) => { + const device = Skia.getDevice(); + const realBuffer = new ArrayBuffer(4); + // Looks like a TypedArray to native code, but lies about its size. + const spoofed = { + buffer: realBuffer, + byteOffset: 0, + byteLength: 1 << 24, // 16 MB, far beyond the 4-byte backing store + BYTES_PER_ELEMENT: 1, + }; + const dst = device.createBuffer({ + size: 256, + usage: GPUBufferUsage.COPY_DST, + }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + device.queue.writeBuffer(dst, 0, spoofed as any); + return true; + }) + ).rejects.toBeDefined(); + } + ); + + itRunsWithGraphite( + "rejects a spoofed BufferSource whose byteOffset is past the end", + async () => { + await expect( + surface.eval((Skia) => { + const device = Skia.getDevice(); + const realBuffer = new ArrayBuffer(4); + const spoofed = { + buffer: realBuffer, + byteOffset: 1 << 24, + byteLength: 4, + BYTES_PER_ELEMENT: 1, + }; + const dst = device.createBuffer({ + size: 256, + usage: GPUBufferUsage.COPY_DST, + }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + device.queue.writeBuffer(dst, 0, spoofed as any); + return true; + }) + ).rejects.toBeDefined(); + } + ); + + itRunsWithGraphite( + "rejects a BufferSource with a negative byteOffset", + async () => { + await expect( + surface.eval((Skia) => { + const device = Skia.getDevice(); + const realBuffer = new ArrayBuffer(16); + const spoofed = { + buffer: realBuffer, + byteOffset: -8, // wraps to a huge size_t in native code + byteLength: 8, + BYTES_PER_ELEMENT: 1, + }; + const dst = device.createBuffer({ + size: 256, + usage: GPUBufferUsage.COPY_DST, + }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + device.queue.writeBuffer(dst, 0, spoofed as any); + return true; + }) + ).rejects.toBeDefined(); + } + ); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/ComputeShader.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/ComputeShader.spec.tsx new file mode 100644 index 0000000000..7259627d68 --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/ComputeShader.spec.tsx @@ -0,0 +1,274 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// Ported from react-native-webgpu (ComputeShader.spec.ts). Runs a matrix +// multiplication on a compute pipeline and checks the GPU result against a JS +// reference. WebGPU is only available on Graphite (Dawn) builds. +const multiplyMatrices = (m1: number[], m2: number[]) => { + const rows1 = m1[0], + cols1 = m1[1]; + const cols2 = m2[1]; + const result: number[] = new Array(2 + rows1 * cols2); + result[0] = rows1; + result[1] = cols2; + + for (let i = 0; i < rows1; i++) { + for (let j = 0; j < cols2; j++) { + let sum = 0; + for (let k = 0; k < cols1; k++) { + sum += m1[2 + i * cols1 + k] * m2[2 + k * cols2 + j]; + } + result[2 + i * cols2 + j] = sum; + } + } + return result; +}; + +const makeMatrix = (rows: number, columns: number) => { + const m: number[] = new Array(rows * columns + 2); + m[0] = rows; + m[1] = columns; + for (let i = 2; i < m.length; i++) { + m[i] = Math.random(); + } + return m; +}; + +const SHADER = ` +struct Matrix { + size : vec2, + numbers: array, +} + +@group(0) @binding(0) var firstMatrix : Matrix; +@group(0) @binding(1) var secondMatrix : Matrix; +@group(0) @binding(2) var resultMatrix : Matrix; + +@compute @workgroup_size(8, 8) +fn main(@builtin(global_invocation_id) global_id : vec3) { + // Guard against out-of-bounds work group sizes + if (global_id.x >= u32(firstMatrix.size.x) || global_id.y >= u32(secondMatrix.size.y)) { + return; + } + + resultMatrix.size = vec2(firstMatrix.size.x, secondMatrix.size.y); + + let resultCell = vec2(global_id.x, global_id.y); + var result = 0.0; + for (var i = 0u; i < u32(firstMatrix.size.y); i = i + 1u) { + let a = i + resultCell.x * u32(firstMatrix.size.y); + let b = resultCell.y + i * u32(secondMatrix.size.y); + result = result + firstMatrix.numbers[a] * secondMatrix.numbers[b]; + } + + let index = resultCell.y + resultCell.x * u32(secondMatrix.size.y); + resultMatrix.numbers[index] = result; +} +`; + +describe("Compute Shader", () => { + itRunsWithGraphite("matrix multiplication", async () => { + const rows = 16; + const columns = 16; + const m1 = makeMatrix(rows, columns); + const m2 = makeMatrix(rows, columns); + + const result = await surface.eval( + (Skia, { firstMatrixRaw, secondMatrixRaw, rows1, columns1, shader }) => { + const device = Skia.getDevice(); + const firstMatrix = new Float32Array(firstMatrixRaw); + const secondMatrix = new Float32Array(secondMatrixRaw); + const gpuBufferFirstMatrix = device.createBuffer({ + mappedAtCreation: true, + size: firstMatrix.byteLength, + usage: GPUBufferUsage.STORAGE, + }); + new Float32Array(gpuBufferFirstMatrix.getMappedRange()).set( + firstMatrix + ); + gpuBufferFirstMatrix.unmap(); + + const gpuBufferSecondMatrix = device.createBuffer({ + mappedAtCreation: true, + size: secondMatrix.byteLength, + usage: GPUBufferUsage.STORAGE, + }); + new Float32Array(gpuBufferSecondMatrix.getMappedRange()).set( + secondMatrix + ); + gpuBufferSecondMatrix.unmap(); + + const resultMatrixBufferSize = + Float32Array.BYTES_PER_ELEMENT * + (2 + firstMatrix[0] * secondMatrix[1]); + const resultMatrixBuffer = device.createBuffer({ + size: resultMatrixBufferSize, + usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC, + }); + + const shaderModule = device.createShaderModule({ code: shader }); + const computePipeline = device.createComputePipeline({ + layout: "auto", + compute: { module: shaderModule, entryPoint: "main" }, + }); + + const bindGroup = device.createBindGroup({ + layout: computePipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: { buffer: gpuBufferFirstMatrix } }, + { binding: 1, resource: { buffer: gpuBufferSecondMatrix } }, + { binding: 2, resource: { buffer: resultMatrixBuffer } }, + ], + }); + + const commandEncoder = device.createCommandEncoder(); + const passEncoder = commandEncoder.beginComputePass(); + passEncoder.setPipeline(computePipeline); + passEncoder.setBindGroup(0, bindGroup); + passEncoder.dispatchWorkgroups( + Math.ceil(rows1 / 8), + Math.ceil(columns1 / 8) + ); + passEncoder.end(); + + const gpuReadBuffer = device.createBuffer({ + size: resultMatrixBufferSize, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + commandEncoder.copyBufferToBuffer( + resultMatrixBuffer, + 0, + gpuReadBuffer, + 0, + resultMatrixBufferSize + ); + device.queue.submit([commandEncoder.finish()]); + + return gpuReadBuffer.mapAsync(GPUMapMode.READ).then(() => { + const r = Array.from( + new Float32Array(gpuReadBuffer.getMappedRange()) + ); + gpuReadBuffer.unmap(); + return r; + }); + }, + { + firstMatrixRaw: m1, + secondMatrixRaw: m2, + rows1: rows, + columns1: columns, + shader: SHADER, + } + ); + + expect(result.length).toBe(16 * 16 + 2); + expect(result.some((x) => x !== 0)).toBe(true); + const reference = multiplyMatrices(m1, m2); + for (let i = 0; i < result.length; i++) { + expect(result[i]).toBeCloseTo(reference[i], 5); + } + }); + + itRunsWithGraphite("async matrix multiplication", async () => { + const rows = 16; + const columns = 16; + const m1 = makeMatrix(rows, columns); + const m2 = makeMatrix(rows, columns); + + const result = await surface.eval( + (Skia, { firstMatrixRaw, secondMatrixRaw, rows1, columns1, shader }) => { + const device = Skia.getDevice(); + const firstMatrix = new Float32Array(firstMatrixRaw); + const secondMatrix = new Float32Array(secondMatrixRaw); + const gpuBufferFirstMatrix = device.createBuffer({ + mappedAtCreation: true, + size: firstMatrix.byteLength, + usage: GPUBufferUsage.STORAGE, + }); + new Float32Array(gpuBufferFirstMatrix.getMappedRange()).set( + firstMatrix + ); + gpuBufferFirstMatrix.unmap(); + + const gpuBufferSecondMatrix = device.createBuffer({ + mappedAtCreation: true, + size: secondMatrix.byteLength, + usage: GPUBufferUsage.STORAGE, + }); + new Float32Array(gpuBufferSecondMatrix.getMappedRange()).set( + secondMatrix + ); + gpuBufferSecondMatrix.unmap(); + + const resultMatrixBufferSize = + Float32Array.BYTES_PER_ELEMENT * + (2 + firstMatrix[0] * secondMatrix[1]); + const resultMatrixBuffer = device.createBuffer({ + size: resultMatrixBufferSize, + usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC, + }); + + const shaderModule = device.createShaderModule({ code: shader }); + return device + .createComputePipelineAsync({ + layout: "auto", + compute: { module: shaderModule, entryPoint: "main" }, + }) + .then((computePipeline) => { + const bindGroup = device.createBindGroup({ + layout: computePipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: { buffer: gpuBufferFirstMatrix } }, + { binding: 1, resource: { buffer: gpuBufferSecondMatrix } }, + { binding: 2, resource: { buffer: resultMatrixBuffer } }, + ], + }); + + const commandEncoder = device.createCommandEncoder(); + const passEncoder = commandEncoder.beginComputePass(); + passEncoder.setPipeline(computePipeline); + passEncoder.setBindGroup(0, bindGroup); + passEncoder.dispatchWorkgroups( + Math.ceil(rows1 / 8), + Math.ceil(columns1 / 8) + ); + passEncoder.end(); + + const gpuReadBuffer = device.createBuffer({ + size: resultMatrixBufferSize, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + commandEncoder.copyBufferToBuffer( + resultMatrixBuffer, + 0, + gpuReadBuffer, + 0, + resultMatrixBufferSize + ); + device.queue.submit([commandEncoder.finish()]); + + return gpuReadBuffer.mapAsync(GPUMapMode.READ).then(() => { + const r = Array.from( + new Float32Array(gpuReadBuffer.getMappedRange()) + ); + gpuReadBuffer.unmap(); + return r; + }); + }); + }, + { + firstMatrixRaw: m1, + secondMatrixRaw: m2, + rows1: rows, + columns1: columns, + shader: SHADER, + } + ); + + expect(result.length).toBe(16 * 16 + 2); + expect(result.some((x) => x !== 0)).toBe(true); + const reference = multiplyMatrices(m1, m2); + for (let i = 0; i < result.length; i++) { + expect(result[i]).toBeCloseTo(reference[i], 5); + } + }); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/DawnToggles.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/DawnToggles.spec.tsx new file mode 100644 index 0000000000..8ed415819a --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/DawnToggles.spec.tsx @@ -0,0 +1,111 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// Ported from react-native-webgpu (DawnToggles.spec.ts). Exercises the +// non-standard, Dawn-only `dawnToggles` field on GPUDeviceDescriptor, which is +// parsed in cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h and chained onto +// the native wgpu::DeviceDescriptor in GPUAdapter::requestDevice. WebGPU is +// only available on Graphite (Dawn) builds, and dawnToggles is a Dawn +// extension, so these are gated on the Graphite backend. +describe("Dawn toggles", () => { + itRunsWithGraphite( + "requests a device with enabled and disabled dawnToggles", + async () => { + const result = await surface.eval(() => { + return navigator.gpu.requestAdapter().then((adapter) => + adapter! + .requestDevice({ + dawnToggles: { + enabledToggles: ["disable_symbol_renaming"], + disabledToggles: ["lazy_clear_resource_on_first_use"], + }, + }) + .then((device) => !!device) + ); + }); + expect(result).toBe(true); + } + ); + + itRunsWithGraphite( + "requests a device with no dawnToggles (unchanged behavior)", + async () => { + const result = await surface.eval(() => { + return navigator.gpu + .requestAdapter() + .then((adapter) => + adapter!.requestDevice().then((device) => !!device) + ); + }); + expect(result).toBe(true); + } + ); + + itRunsWithGraphite( + "ignores unknown toggle names without failing device creation", + async () => { + const result = await surface.eval(() => { + return navigator.gpu.requestAdapter().then((adapter) => + adapter! + .requestDevice({ + dawnToggles: { enabledToggles: ["this_toggle_does_not_exist"] }, + }) + .then((device) => !!device) + ); + }); + expect(result).toBe(true); + } + ); + + // The tests above only assert that requestDevice resolves, which is true + // whether or not the toggle is parsed and chained onto the device descriptor. + // This test instead activates a real toggle (skip_validation) and observes a + // behavioral difference, so it fails if dawnToggles ever stops being applied. + itRunsWithGraphite( + "applies skip_validation so a normally-invalid buffer creates without error", + async () => { + const result = await surface.eval(() => { + // MAP_READ may only be combined with COPY_DST and MAP_WRITE only with + // COPY_SRC, so MAP_READ | MAP_WRITE is a validation error by default. + // The buffer is never used on the GPU, so creating it with validation + // skipped is harmless on every backend. + const invalid = { + size: 16, + usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.MAP_WRITE, + }; + // A fresh adapter per device: an adapter only vends a single device. + return navigator.gpu + .requestAdapter() + .then((adapter) => adapter!.requestDevice()) + .then((control) => { + control.pushErrorScope("validation"); + control.createBuffer(invalid); + return control.popErrorScope(); + }) + .then((controlError) => + navigator.gpu + .requestAdapter() + .then((adapter) => + adapter!.requestDevice({ + dawnToggles: { enabledToggles: ["skip_validation"] }, + }) + ) + .then((toggled) => { + toggled.pushErrorScope("validation"); + toggled.createBuffer(invalid); + return toggled.popErrorScope(); + }) + .then((toggledError) => ({ + controlHadError: controlError !== null, + toggledHadError: toggledError !== null, + })) + ); + }); + // The operation is genuinely invalid on this build (guards against the + // test silently passing because the buffer became valid). + expect(result.controlHadError).toBe(true); + // skip_validation took effect, which is only possible if dawnToggles was + // parsed and chained onto the device descriptor. + expect(result.toggledHadError).toBe(false); + } + ); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/ErrorScope.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/ErrorScope.spec.tsx new file mode 100644 index 0000000000..13fe26c4c1 --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/ErrorScope.spec.tsx @@ -0,0 +1,89 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// Ported from react-native-webgpu (ErrorScope.spec.ts). Exercises +// pushErrorScope/popErrorScope validation capture. WebGPU is only available on +// Graphite (Dawn) builds. +describe("Error Scope", () => { + itRunsWithGraphite( + "should capture validation error when creating sampler with invalid maxAnisotropy", + async () => { + const result = await surface.eval((Skia) => { + const device = Skia.getDevice(); + device.pushErrorScope("validation"); + device.createSampler({ + maxAnisotropy: 0, // Invalid, maxAnisotropy must be at least 1. + }); + return device.popErrorScope().then((error) => { + if (error) { + return { + hasError: true, + messageLength: error.message.length, + messageNotEmpty: error.message.length > 0, + }; + } + return { hasError: false, messageLength: 0, messageNotEmpty: false }; + }); + }); + + expect(result.hasError).toBe(true); + expect(result.messageNotEmpty).toBe(true); + expect(result.messageLength).toBeGreaterThan(0); + } + ); + + itRunsWithGraphite( + "should capture and return error messages from popErrorScope", + async () => { + const result = await surface.eval((Skia) => { + const device = Skia.getDevice(); + // Invalid WGSL shader with syntax error (missing closing parenthesis) + const invalidShaderWGSL = `@fragment + fn main() -> @location(0) vec4f { + return vec4(1.0, 0.0, 0.0, 1.0; + }`; + device.pushErrorScope("validation"); + device.createShaderModule({ code: invalidShaderWGSL }); + return device.popErrorScope().then((error) => { + if (error) { + return { + hasError: true, + messageLength: error.message.length, + messageNotEmpty: error.message.length > 0, + messageContainsExpected: + error.message.includes("expected") || + error.message.includes("error") || + error.message.includes("parsing"), + }; + } + return { + hasError: false, + messageLength: 0, + messageNotEmpty: false, + messageContainsExpected: false, + }; + }); + }); + expect(result.hasError).toBe(true); + expect(result.messageNotEmpty).toBe(true); + expect(result.messageLength).toBeGreaterThan(0); + expect(result.messageContainsExpected).toBe(true); + } + ); + + itRunsWithGraphite("should return null when no error occurs", async () => { + const result = await surface.eval((Skia) => { + const device = Skia.getDevice(); + const validShaderWGSL = `@fragment + fn main() -> @location(0) vec4f { + return vec4(1.0, 0.0, 0.0, 1.0); + }`; + device.pushErrorScope("validation"); + // This should not generate any errors + device.createShaderModule({ code: validShaderWGSL }); + return device.popErrorScope().then((error) => ({ + hasError: error !== null, + })); + }); + expect(result.hasError).toBe(false); + }); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/ExternalTexture.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/ExternalTexture.spec.tsx new file mode 100644 index 0000000000..16013ba7fe --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/ExternalTexture.spec.tsx @@ -0,0 +1,234 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// Ported from react-native-webgpu (ExternalTexture.spec.ts), adapted to Skia. +// Exercises queue.copyExternalImageToTexture: decode an image via +// createImageBitmap, upload it into a GPUTexture, then either sample it through +// a textured quad or read the texture back directly. Self-validating via pixel +// readback (no snapshot assets). WebGPU is only available on Graphite (Dawn) +// builds; createImageBitmap is a native binding that may be unbound. + +const TEXTURED_QUAD_SHADER = /* wgsl */ ` + struct VsOut { + @builtin(position) position: vec4f, + @location(0) uv: vec2f, + }; + + @vertex fn vs(@builtin(vertex_index) vid: u32) -> VsOut { + var positions = array( + vec2f(-1.0, -3.0), + vec2f(-1.0, 1.0), + vec2f( 3.0, 1.0), + ); + var uvs = array( + vec2f(0.0, 2.0), + vec2f(0.0, 0.0), + vec2f(2.0, 0.0), + ); + var out: VsOut; + out.position = vec4f(positions[vid], 0.0, 1.0); + out.uv = uvs[vid]; + return out; + } + + @group(0) @binding(0) var srcSampler: sampler; + @group(0) @binding(1) var srcTex: texture_2d; + + @fragment fn fs(in: VsOut) -> @location(0) vec4f { + return textureSample(srcTex, srcSampler, in.uv); + } +`; + +const isCreateImageBitmapBound = () => + surface.eval(() => typeof createImageBitmap === "function"); + +describe("External Textures", () => { + itRunsWithGraphite( + "uploads an ImageBitmap with copyExternalImageToTexture and samples it", + async () => { + if (!(await isCreateImageBitmapBound())) { + console.warn("createImageBitmap is not bound — skipping"); + return; + } + const result = await surface.eval( + (Skia, { shader }) => { + const SIZE = 64; + // Encode a solid-blue image, then decode it as an ImageBitmap. + const offscreen = Skia.Surface.MakeOffscreen(SIZE, SIZE)!; + offscreen.getCanvas().drawColor(Skia.Color("blue")); + offscreen.flush(); + const png = offscreen.makeImageSnapshot().encodeToBytes(); + + const device = Skia.getDevice(); + return createImageBitmap( + png.buffer as unknown as ImageBitmapSource + ).then((bitmap) => { + const format: GPUTextureFormat = "rgba8unorm"; + const texture = device.createTexture({ + size: [bitmap.width, bitmap.height], + format, + usage: + GPUTextureUsage.TEXTURE_BINDING | + GPUTextureUsage.COPY_DST | + GPUTextureUsage.RENDER_ATTACHMENT, + }); + device.queue.copyExternalImageToTexture( + { source: bitmap }, + { texture }, + { width: bitmap.width, height: bitmap.height } + ); + + const module = device.createShaderModule({ code: shader }); + const pipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { module, entryPoint: "vs" }, + fragment: { module, entryPoint: "fs", targets: [{ format }] }, + primitive: { topology: "triangle-list" }, + }); + const sampler = device.createSampler({ + magFilter: "linear", + minFilter: "linear", + }); + const bindGroup = device.createBindGroup({ + layout: pipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: sampler }, + { binding: 1, resource: texture.createView() }, + ], + }); + + const target = device.createTexture({ + size: [SIZE, SIZE], + format, + usage: + GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC, + }); + const bytesPerRow = SIZE * 4; + const readBuffer = device.createBuffer({ + size: bytesPerRow * SIZE, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: target.createView(), + clearValue: { r: 0, g: 0, b: 0, a: 1 }, + loadOp: "clear", + storeOp: "store", + }, + ], + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(3); + pass.end(); + encoder.copyTextureToBuffer( + { texture: target }, + { buffer: readBuffer, bytesPerRow }, + { width: SIZE, height: SIZE } + ); + device.queue.submit([encoder.finish()]); + + return readBuffer.mapAsync(GPUMapMode.READ).then(() => { + const pixels = new Uint8Array( + readBuffer.getMappedRange().slice(0) + ); + readBuffer.unmap(); + bitmap.close(); + const offset = + (Math.floor(SIZE / 2) * SIZE + Math.floor(SIZE / 2)) * 4; + return [ + pixels[offset], + pixels[offset + 1], + pixels[offset + 2], + pixels[offset + 3], + ]; + }); + }); + }, + { shader: TEXTURED_QUAD_SHADER } + ); + const [r, g, b, a] = result; + // Sampled the solid-blue uploaded image. + expect(b).toBeGreaterThan(200); + expect(r).toBeLessThan(60); + expect(g).toBeLessThan(60); + expect(a).toBeGreaterThan(200); + } + ); + + itRunsWithGraphite( + "copyExternalImageToTexture flipY uploads rows bottom-up", + async () => { + if (!(await isCreateImageBitmapBound())) { + console.warn("createImageBitmap is not bound — skipping"); + return; + } + const result = await surface.eval((Skia) => { + const SIZE = 64; + // Top half red, bottom half blue. + const offscreen = Skia.Surface.MakeOffscreen(SIZE, SIZE)!; + const canvas = offscreen.getCanvas(); + const paint = Skia.Paint(); + paint.setColor(Skia.Color("red")); + canvas.drawRect(Skia.XYWHRect(0, 0, SIZE, SIZE / 2), paint); + paint.setColor(Skia.Color("blue")); + canvas.drawRect(Skia.XYWHRect(0, SIZE / 2, SIZE, SIZE / 2), paint); + offscreen.flush(); + const png = offscreen.makeImageSnapshot().encodeToBytes(); + + const device = Skia.getDevice(); + return createImageBitmap( + png.buffer as unknown as ImageBitmapSource + ).then((bitmap) => { + const format: GPUTextureFormat = "rgba8unorm"; + const texture = device.createTexture({ + size: [bitmap.width, bitmap.height], + format, + usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.COPY_SRC, + }); + // flipY: source row 0 (top, red) ends up at the bottom of the + // texture, so the texture's top row is the source's bottom (blue). + device.queue.copyExternalImageToTexture( + { source: bitmap, flipY: true }, + { texture }, + { width: bitmap.width, height: bitmap.height } + ); + + const bytesPerRow = SIZE * 4; + const readBuffer = device.createBuffer({ + size: bytesPerRow * SIZE, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + const encoder = device.createCommandEncoder(); + encoder.copyTextureToBuffer( + { texture }, + { buffer: readBuffer, bytesPerRow }, + { width: SIZE, height: SIZE } + ); + device.queue.submit([encoder.finish()]); + + return readBuffer.mapAsync(GPUMapMode.READ).then(() => { + const pixels = new Uint8Array(readBuffer.getMappedRange().slice(0)); + readBuffer.unmap(); + bitmap.close(); + // Column center, top row (y=2) and bottom row (y=SIZE-2). + const cx = Math.floor(SIZE / 2); + const top = (2 * SIZE + cx) * 4; + const bottom = ((SIZE - 2) * SIZE + cx) * 4; + return { + top: [pixels[top], pixels[top + 1], pixels[top + 2]], + bottom: [pixels[bottom], pixels[bottom + 1], pixels[bottom + 2]], + }; + }); + }); + }); + // After flipY, the texture top row is blue and the bottom row is red. + expect(result.top[2]).toBeGreaterThan(200); // blue + expect(result.top[0]).toBeLessThan(60); + expect(result.bottom[0]).toBeGreaterThan(200); // red + expect(result.bottom[2]).toBeLessThan(60); + } + ); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/ImageBitmap.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/ImageBitmap.spec.tsx new file mode 100644 index 0000000000..9c73214771 --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/ImageBitmap.spec.tsx @@ -0,0 +1,82 @@ +import { surface, itRunsWithGraphite, images, resolveFile } from "../setup"; + +// Ported from react-native-webgpu (PR #354). Covers ImageBitmap.close(), which +// releases the decoded pixels and zeroes width/height (idempotent). +// +// createImageBitmap is a native-only binding; until it is installed in +// RNSkManager each test self-skips (with a warning) rather than vacuously +// running. WebGPU is only available on Graphite (Dawn) builds. +const PNG_URI = "skia/__tests__/assets/skia_logo.png"; +const pngBytes = Array.from(resolveFile(PNG_URI)); + +const isCreateImageBitmapBound = () => + surface.eval(() => typeof createImageBitmap === "function"); + +describe("ImageBitmap", () => { + itRunsWithGraphite("close() zeroes width and height", async () => { + if (!(await isCreateImageBitmapBound())) { + console.warn("createImageBitmap is not bound — skipping"); + return; + } + const result = await surface.eval( + (_Skia, { pngData }) => { + const bytes = new Uint8Array(pngData); + // Non-standard ArrayBuffer overload (native binding), not in lib.dom. + return createImageBitmap( + bytes.buffer as unknown as ImageBitmapSource + ).then((bmp) => { + const before = { width: bmp.width, height: bmp.height }; + bmp.close(); + const after = { width: bmp.width, height: bmp.height }; + return { before, after }; + }); + }, + { pngData: pngBytes } + ); + expect(result.before.width).toBe(images.skiaLogoPng.width()); + expect(result.before.height).toBe(images.skiaLogoPng.height()); + expect(result.after.width).toBe(0); + expect(result.after.height).toBe(0); + }); + + itRunsWithGraphite("close() is idempotent", async () => { + if (!(await isCreateImageBitmapBound())) { + console.warn("createImageBitmap is not bound — skipping"); + return; + } + const result = await surface.eval( + (_Skia, { pngData }) => { + const bytes = new Uint8Array(pngData); + // Non-standard ArrayBuffer overload (native binding), not in lib.dom. + return createImageBitmap( + bytes.buffer as unknown as ImageBitmapSource + ).then((bmp) => { + bmp.close(); + bmp.close(); + return { width: bmp.width, height: bmp.height }; + }); + }, + { pngData: pngBytes } + ); + expect(result.width).toBe(0); + expect(result.height).toBe(0); + }); + + itRunsWithGraphite("exposes close as a function", async () => { + if (!(await isCreateImageBitmapBound())) { + console.warn("createImageBitmap is not bound — skipping"); + return; + } + const result = await surface.eval( + (_Skia, { pngData }) => { + const bytes = new Uint8Array(pngData); + // Non-standard ArrayBuffer overload (native binding), not in lib.dom. + return createImageBitmap( + bytes.buffer as unknown as ImageBitmapSource + ).then((bmp) => typeof bmp.close); + }, + { pngData: pngBytes } + ); + expect(result).toBe("function"); + }); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/ImageBitmapBounds.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/ImageBitmapBounds.spec.tsx new file mode 100644 index 0000000000..6b0bc641ad --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/ImageBitmapBounds.spec.tsx @@ -0,0 +1,94 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// These tests exercise the same BufferSource bounds checking as +// ArrayBufferBounds.spec.tsx, but through the non-standard createImageBitmap +// overload that accepts an ArrayBuffer / TypedArray of encoded image bytes. +// +// That path must reuse the shared rnwgpu::ArrayBuffer converter +// (cpp/rnwgpu/ArrayBuffer.h), so a spoofed BufferSource that lies about +// byteOffset / byteLength is rejected rather than producing an out-of-bounds +// read when the bytes are copied. +// +// NOTE: createImageBitmap is a native-only (non-standard) binding. It is not +// bound in Skia's runtime yet, so each test self-skips (with a warning) until +// the binding is installed in RNSkManager. Once createImageBitmap is exposed, +// these run automatically on Graphite builds. They are skipped on web (the +// overload is native-only) via the Graphite gate. + +// Returns true when the connected device exposes a createImageBitmap binding. +// Until the native binding lands these specs are inert rather than vacuously +// passing (any rejection — including "createImageBitmap is not defined" — +// would otherwise satisfy `.rejects`). +const isCreateImageBitmapBound = () => + surface.eval(() => typeof createImageBitmap === "function"); + +describe("createImageBitmap bounds", () => { + itRunsWithGraphite( + "rejects a spoofed BufferSource whose byteLength exceeds the buffer", + async () => { + if (!(await isCreateImageBitmapBound())) { + console.warn("createImageBitmap is not bound — skipping"); + return; + } + await expect( + surface.eval(() => { + const realBuffer = new ArrayBuffer(4); + const spoofed = { + buffer: realBuffer, + byteOffset: 0, + byteLength: 1 << 24, // 16 MB, far beyond the 4-byte backing store + BYTES_PER_ELEMENT: 1, + }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return createImageBitmap(spoofed as any).then(() => true); + }) + ).rejects.toBeDefined(); + } + ); + + itRunsWithGraphite( + "rejects a spoofed BufferSource whose byteOffset is past the end", + async () => { + if (!(await isCreateImageBitmapBound())) { + console.warn("createImageBitmap is not bound — skipping"); + return; + } + await expect( + surface.eval(() => { + const realBuffer = new ArrayBuffer(4); + const spoofed = { + buffer: realBuffer, + byteOffset: 1 << 24, + byteLength: 4, + BYTES_PER_ELEMENT: 1, + }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return createImageBitmap(spoofed as any).then(() => true); + }) + ).rejects.toBeDefined(); + } + ); + + itRunsWithGraphite( + "rejects a BufferSource with a negative byteOffset", + async () => { + if (!(await isCreateImageBitmapBound())) { + console.warn("createImageBitmap is not bound — skipping"); + return; + } + await expect( + surface.eval(() => { + const realBuffer = new ArrayBuffer(16); + const spoofed = { + buffer: realBuffer, + byteOffset: -8, // wraps to a huge size_t in native code + byteLength: 8, + BYTES_PER_ELEMENT: 1, + }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return createImageBitmap(spoofed as any).then(() => true); + }) + ).rejects.toBeDefined(); + } + ); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/ImportExternalTexture.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/ImportExternalTexture.spec.tsx new file mode 100644 index 0000000000..0e575eb6c5 --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/ImportExternalTexture.spec.tsx @@ -0,0 +1,325 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// Ported from react-native-webgpu (ImportExternalTexture.spec.ts), adapted to +// Skia's NativeBuffer API as the external-texture source (Skia has no +// VideoFrame). Draws a known solid color into an SkImage, wraps it as a native +// buffer (CVPixelBufferRef / AHardwareBuffer), imports it as a +// GPUExternalTexture, samples it through a render pass, reads the result back, +// and checks the sampled color matches. WebGPU is only available on Graphite +// (Dawn) builds. + +// NativeBuffer is iOS/Android only, and unavailable on the API-21 Fabric +// Android emulator (mirrors NativeBuffer.spec.tsx's shouldNativeBufferTestRun). +const supportsNativeBuffer = () => { + if (surface.OS !== "ios" && surface.OS !== "android") { + return false; + } + if (surface.arch === "fabric" && surface.OS === "android") { + return false; + } + return true; +}; + +describe("ImportExternalTexture", () => { + itRunsWithGraphite( + "imports a NativeBuffer as an external texture and samples it", + async () => { + if (!supportsNativeBuffer()) { + return; + } + const result = await surface.eval((Skia) => { + const SIZE = 64; + + // 1. Draw a solid red image and wrap it as a native buffer. + const offscreen = Skia.Surface.MakeOffscreen(SIZE, SIZE)!; + const canvas = offscreen.getCanvas(); + canvas.drawColor(Skia.Color("red")); + offscreen.flush(); + const image = offscreen.makeImageSnapshot(); + const nativeBuffer = Skia.NativeBuffer.MakeFromImage(image); + + const device = Skia.getDevice(); + try { + // 2. Import it. The GPUExternalTexture owns the shared-memory access + // window; there is no createTexture / beginAccess to manage. + // Skia's binding accepts the native buffer pointer as `source` (see + // the SkiaGPUExternalTextureDescriptor overload it adds to GPUDevice). + const externalTexture = device.importExternalTexture({ + source: nativeBuffer, + label: "test-frame", + }); + + // 3. Sample the external texture into a render target. + const module = device.createShaderModule({ + code: /* wgsl */ ` + struct VsOut { + @builtin(position) position: vec4f, + @location(0) uv: vec2f, + }; + + @vertex fn vs(@builtin(vertex_index) vid: u32) -> VsOut { + var positions = array( + vec2f(-1.0, -3.0), + vec2f(-1.0, 1.0), + vec2f( 3.0, 1.0), + ); + var uvs = array( + vec2f(0.0, 2.0), + vec2f(0.0, 0.0), + vec2f(2.0, 0.0), + ); + var out: VsOut; + out.position = vec4f(positions[vid], 0.0, 1.0); + out.uv = uvs[vid]; + return out; + } + + @group(0) @binding(0) var srcTex: texture_external; + @group(0) @binding(1) var srcSampler: sampler; + + @fragment fn fs(in: VsOut) -> @location(0) vec4f { + return textureSampleBaseClampToEdge(srcTex, srcSampler, in.uv); + } + `, + }); + const format: GPUTextureFormat = "rgba8unorm"; + const pipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { module, entryPoint: "vs" }, + fragment: { module, entryPoint: "fs", targets: [{ format }] }, + primitive: { topology: "triangle-list" }, + }); + const sampler = device.createSampler({ + magFilter: "linear", + minFilter: "linear", + }); + const bindGroup = device.createBindGroup({ + layout: pipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: externalTexture }, + { binding: 1, resource: sampler }, + ], + }); + + const target = device.createTexture({ + size: [SIZE, SIZE], + format, + usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC, + }); + const bytesPerRow = SIZE * 4; // 256, already 256-byte aligned + const readBuffer = device.createBuffer({ + size: bytesPerRow * SIZE, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: target.createView(), + clearValue: { r: 0, g: 0, b: 0, a: 1 }, + loadOp: "clear", + storeOp: "store", + }, + ], + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(3); + pass.end(); + encoder.copyTextureToBuffer( + { texture: target }, + { buffer: readBuffer, bytesPerRow }, + { width: SIZE, height: SIZE } + ); + device.queue.submit([encoder.finish()]); + // End the access window now that the sampling work is submitted. + externalTexture.destroy(); + + return readBuffer.mapAsync(GPUMapMode.READ).then(() => { + const pixels = new Uint8Array(readBuffer.getMappedRange().slice(0)); + readBuffer.unmap(); + // Release the native buffer: all GPU work referencing it is + // submitted and the pixels have been read back. + Skia.NativeBuffer.Release(nativeBuffer); + // Center pixel. + const offset = + (Math.floor(SIZE / 2) * SIZE + Math.floor(SIZE / 2)) * 4; + return [ + pixels[offset], + pixels[offset + 1], + pixels[offset + 2], + pixels[offset + 3], + ]; + }); + } catch (e) { + Skia.NativeBuffer.Release(nativeBuffer); + throw e; + } + }); + const [r, g, b, a] = result; + // Sampled the solid-red source: red high, green/blue low, opaque. + expect(r).toBeGreaterThan(200); + expect(g).toBeLessThan(60); + expect(b).toBeLessThan(60); + expect(a).toBeGreaterThan(200); + } + ); + + // A solid color can't catch a broken UV mapping (every texel is the same), so + // this samples a 4-quadrant image and checks all four distinct colors survive + // — a collapsed/degenerate transform would repeat or blend them. + itRunsWithGraphite( + "preserves the 2D layout of a non-uniform external texture", + async () => { + if (!supportsNativeBuffer()) { + return; + } + const result = await surface.eval((Skia) => { + const SIZE = 64; + const half = SIZE / 2; + // Four distinct quadrants: TL red, TR green, BL blue, BR yellow. + const offscreen = Skia.Surface.MakeOffscreen(SIZE, SIZE)!; + const canvas = offscreen.getCanvas(); + const paint = Skia.Paint(); + const quadrants: [string, number, number][] = [ + ["red", 0, 0], + ["lime", half, 0], + ["blue", 0, half], + ["yellow", half, half], + ]; + quadrants.forEach(([color, x, y]) => { + paint.setColor(Skia.Color(color)); + canvas.drawRect(Skia.XYWHRect(x, y, half, half), paint); + }); + offscreen.flush(); + const nativeBuffer = Skia.NativeBuffer.MakeFromImage( + offscreen.makeImageSnapshot() + ); + + const device = Skia.getDevice(); + try { + const externalTexture = device.importExternalTexture({ + source: nativeBuffer, + label: "grid-frame", + }); + const module = device.createShaderModule({ + code: /* wgsl */ ` + struct VsOut { + @builtin(position) position: vec4f, + @location(0) uv: vec2f, + }; + @vertex fn vs(@builtin(vertex_index) vid: u32) -> VsOut { + var positions = array( + vec2f(-1.0, -3.0), vec2f(-1.0, 1.0), vec2f(3.0, 1.0), + ); + var uvs = array( + vec2f(0.0, 2.0), vec2f(0.0, 0.0), vec2f(2.0, 0.0), + ); + var out: VsOut; + out.position = vec4f(positions[vid], 0.0, 1.0); + out.uv = uvs[vid]; + return out; + } + @group(0) @binding(0) var srcTex: texture_external; + @group(0) @binding(1) var srcSampler: sampler; + @fragment fn fs(in: VsOut) -> @location(0) vec4f { + return textureSampleBaseClampToEdge(srcTex, srcSampler, in.uv); + } + `, + }); + const format: GPUTextureFormat = "rgba8unorm"; + const pipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { module, entryPoint: "vs" }, + fragment: { module, entryPoint: "fs", targets: [{ format }] }, + primitive: { topology: "triangle-list" }, + }); + // Nearest filtering so quadrant centers read back as pure colors. + const sampler = device.createSampler({}); + const bindGroup = device.createBindGroup({ + layout: pipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: externalTexture }, + { binding: 1, resource: sampler }, + ], + }); + + const target = device.createTexture({ + size: [SIZE, SIZE], + format, + usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC, + }); + const bytesPerRow = SIZE * 4; + const readBuffer = device.createBuffer({ + size: bytesPerRow * SIZE, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: target.createView(), + clearValue: { r: 0, g: 0, b: 0, a: 1 }, + loadOp: "clear", + storeOp: "store", + }, + ], + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(3); + pass.end(); + encoder.copyTextureToBuffer( + { texture: target }, + { buffer: readBuffer, bytesPerRow }, + { width: SIZE, height: SIZE } + ); + device.queue.submit([encoder.finish()]); + externalTexture.destroy(); + + return readBuffer.mapAsync(GPUMapMode.READ).then(() => { + const pixels = new Uint8Array(readBuffer.getMappedRange().slice(0)); + readBuffer.unmap(); + Skia.NativeBuffer.Release(nativeBuffer); + // Sample the center of each rendered quadrant. + const q = SIZE / 4; + const at = (x: number, y: number) => { + const o = (y * SIZE + x) * 4; + return [pixels[o], pixels[o + 1], pixels[o + 2]]; + }; + return [at(q, q), at(3 * q, q), at(q, 3 * q), at(3 * q, 3 * q)]; + }); + } catch (e) { + Skia.NativeBuffer.Release(nativeBuffer); + throw e; + } + }); + // Classify each sampled quadrant by dominant channels. Orientation- + // agnostic: a correct 2D mapping yields the four distinct source colors + // (in some orientation); a collapse would repeat or blend them. + const classify = ([r, g, b]: number[]) => { + if (r > 180 && g > 180 && b < 80) { + return "yellow"; + } + if (r > 180 && g < 80 && b < 80) { + return "red"; + } + if (r < 80 && g > 180 && b < 80) { + return "green"; + } + if (r < 80 && g < 80 && b > 180) { + return "blue"; + } + return "other"; + }; + expect(result.map(classify).sort()).toEqual([ + "blue", + "green", + "red", + "yellow", + ]); + } + ); +}); diff --git a/packages/skia/src/renderer/__tests__/e2e/SharedTextureMemory.spec.tsx b/packages/skia/src/renderer/__tests__/e2e/SharedTextureMemory.spec.tsx new file mode 100644 index 0000000000..f963d488b1 --- /dev/null +++ b/packages/skia/src/renderer/__tests__/e2e/SharedTextureMemory.spec.tsx @@ -0,0 +1,305 @@ +import { surface, itRunsWithGraphite } from "../setup"; + +// Ported from react-native-webgpu (SharedTextureMemory.spec.ts), adapted to +// Skia's NativeBuffer API as the shared-memory source (Skia has no VideoFrame). +// Draws a known solid color into an SkImage, wraps it as a native buffer +// (CVPixelBufferRef / AHardwareBuffer), imports it via +// device.importSharedTextureMemory, creates a texture aliasing it, samples it +// through a textured quad, reads the result back, and checks the sampled color. +// WebGPU is only available on Graphite (Dawn) builds, and NativeBuffer only on +// iOS/Android (not on the API-21 Fabric Android emulator). + +const SHARED_TEXTURE_SHADER = /* wgsl */ ` + struct VsOut { + @builtin(position) position: vec4f, + @location(0) uv: vec2f, + }; + + @vertex fn vs(@builtin(vertex_index) vid: u32) -> VsOut { + var positions = array( + vec2f(-1.0, -3.0), + vec2f(-1.0, 1.0), + vec2f( 3.0, 1.0), + ); + var uvs = array( + vec2f(0.0, 2.0), + vec2f(0.0, 0.0), + vec2f(2.0, 0.0), + ); + var out: VsOut; + out.position = vec4f(positions[vid], 0.0, 1.0); + out.uv = uvs[vid]; + return out; + } + + @group(0) @binding(0) var srcTex: texture_2d; + @group(0) @binding(1) var srcSampler: sampler; + + @fragment fn fs(in: VsOut) -> @location(0) vec4f { + return textureSample(srcTex, srcSampler, in.uv); + } +`; + +// NativeBuffer is iOS/Android only, and unavailable on the API-21 Fabric +// Android emulator (mirrors NativeBuffer.spec.tsx's shouldNativeBufferTestRun). +const supportsNativeBuffer = () => { + if (surface.OS !== "ios" && surface.OS !== "android") { + return false; + } + if (surface.arch === "fabric" && surface.OS === "android") { + return false; + } + return true; +}; + +describe("SharedTextureMemory", () => { + itRunsWithGraphite( + "imports a NativeBuffer and samples it through a textured quad", + async () => { + if (!supportsNativeBuffer()) { + return; + } + const result = await surface.eval( + (Skia, { shader }) => { + const SIZE = 64; + const offscreen = Skia.Surface.MakeOffscreen(SIZE, SIZE)!; + offscreen.getCanvas().drawColor(Skia.Color("red")); + offscreen.flush(); + const nativeBuffer = Skia.NativeBuffer.MakeFromImage( + offscreen.makeImageSnapshot() + ); + + const device = Skia.getDevice(); + try { + // importSharedTextureMemory is a Skia extension to GPUDevice (see + // the types in src/skia/types/WebGPU.ts). + const memory = device.importSharedTextureMemory({ + handle: nativeBuffer, + label: "test-frame", + }); + const texture = memory.createTexture(); + // beginAccess returns void and throws on failure. + memory.beginAccess(texture, true); + + const module = device.createShaderModule({ code: shader }); + const format: GPUTextureFormat = "rgba8unorm"; + const pipeline = device.createRenderPipeline({ + layout: "auto", + vertex: { module, entryPoint: "vs" }, + fragment: { module, entryPoint: "fs", targets: [{ format }] }, + primitive: { topology: "triangle-list" }, + }); + const sampler = device.createSampler({ + magFilter: "linear", + minFilter: "linear", + }); + const bindGroup = device.createBindGroup({ + layout: pipeline.getBindGroupLayout(0), + entries: [ + { binding: 0, resource: texture.createView() }, + { binding: 1, resource: sampler }, + ], + }); + + const target = device.createTexture({ + size: [SIZE, SIZE], + format, + usage: + GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC, + }); + const bytesPerRow = SIZE * 4; // 256, already 256-byte aligned + const readBuffer = device.createBuffer({ + size: bytesPerRow * SIZE, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: target.createView(), + clearValue: { r: 0, g: 0, b: 0, a: 1 }, + loadOp: "clear", + storeOp: "store", + }, + ], + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(3); + pass.end(); + encoder.copyTextureToBuffer( + { texture: target }, + { buffer: readBuffer, bytesPerRow }, + { width: SIZE, height: SIZE } + ); + device.queue.submit([encoder.finish()]); + + return readBuffer.mapAsync(GPUMapMode.READ).then(() => { + const pixels = new Uint8Array( + readBuffer.getMappedRange().slice(0) + ); + readBuffer.unmap(); + memory.endAccess(texture); + texture.destroy(); + Skia.NativeBuffer.Release(nativeBuffer); + const offset = + (Math.floor(SIZE / 2) * SIZE + Math.floor(SIZE / 2)) * 4; + return [ + pixels[offset], + pixels[offset + 1], + pixels[offset + 2], + pixels[offset + 3], + ]; + }); + } catch (e) { + Skia.NativeBuffer.Release(nativeBuffer); + throw e; + } + }, + { shader: SHARED_TEXTURE_SHADER } + ); + const [r, g, b, a] = result; + // Sampled the solid-red source. + expect(r).toBeGreaterThan(200); + expect(g).toBeLessThan(60); + expect(b).toBeLessThan(60); + expect(a).toBeGreaterThan(200); + } + ); + + // Same as above, but with an *explicit* bind group layout + // (createBindGroupLayout + createPipelineLayout) instead of layout: "auto". + // This exercises the native BindGroupLayoutEntry conversion path, which + // "auto" layouts bypass entirely. + itRunsWithGraphite( + "samples a shared texture through an explicit bind group layout", + async () => { + if (!supportsNativeBuffer()) { + return; + } + const result = await surface.eval( + (Skia, { shader }) => { + const SIZE = 64; + const offscreen = Skia.Surface.MakeOffscreen(SIZE, SIZE)!; + offscreen.getCanvas().drawColor(Skia.Color("lime")); + offscreen.flush(); + const nativeBuffer = Skia.NativeBuffer.MakeFromImage( + offscreen.makeImageSnapshot() + ); + + const device = Skia.getDevice(); + try { + // importSharedTextureMemory is a Skia extension to GPUDevice (see + // the types in src/skia/types/WebGPU.ts). + const memory = device.importSharedTextureMemory({ + handle: nativeBuffer, + label: "test-frame", + }); + const texture = memory.createTexture(); + // beginAccess returns void and throws on failure. + memory.beginAccess(texture, true); + + const module = device.createShaderModule({ code: shader }); + const format: GPUTextureFormat = "rgba8unorm"; + const bindGroupLayout = device.createBindGroupLayout({ + entries: [ + { + binding: 0, + visibility: GPUShaderStage.FRAGMENT, + texture: {}, + }, + { + binding: 1, + visibility: GPUShaderStage.FRAGMENT, + sampler: {}, + }, + ], + }); + const pipeline = device.createRenderPipeline({ + layout: device.createPipelineLayout({ + bindGroupLayouts: [bindGroupLayout], + }), + vertex: { module, entryPoint: "vs" }, + fragment: { module, entryPoint: "fs", targets: [{ format }] }, + primitive: { topology: "triangle-list" }, + }); + const sampler = device.createSampler({ + magFilter: "linear", + minFilter: "linear", + }); + const bindGroup = device.createBindGroup({ + layout: bindGroupLayout, + entries: [ + { binding: 0, resource: texture.createView() }, + { binding: 1, resource: sampler }, + ], + }); + + const target = device.createTexture({ + size: [SIZE, SIZE], + format, + usage: + GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC, + }); + const bytesPerRow = SIZE * 4; + const readBuffer = device.createBuffer({ + size: bytesPerRow * SIZE, + usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ, + }); + + const encoder = device.createCommandEncoder(); + const pass = encoder.beginRenderPass({ + colorAttachments: [ + { + view: target.createView(), + clearValue: { r: 0, g: 0, b: 0, a: 1 }, + loadOp: "clear", + storeOp: "store", + }, + ], + }); + pass.setPipeline(pipeline); + pass.setBindGroup(0, bindGroup); + pass.draw(3); + pass.end(); + encoder.copyTextureToBuffer( + { texture: target }, + { buffer: readBuffer, bytesPerRow }, + { width: SIZE, height: SIZE } + ); + device.queue.submit([encoder.finish()]); + + return readBuffer.mapAsync(GPUMapMode.READ).then(() => { + const pixels = new Uint8Array( + readBuffer.getMappedRange().slice(0) + ); + readBuffer.unmap(); + memory.endAccess(texture); + texture.destroy(); + Skia.NativeBuffer.Release(nativeBuffer); + const offset = + (Math.floor(SIZE / 2) * SIZE + Math.floor(SIZE / 2)) * 4; + return [ + pixels[offset], + pixels[offset + 1], + pixels[offset + 2], + pixels[offset + 3], + ]; + }); + } catch (e) { + Skia.NativeBuffer.Release(nativeBuffer); + throw e; + } + }, + { shader: SHARED_TEXTURE_SHADER } + ); + const [r, g, b, a] = result; + // Sampled the solid-green ("lime") source. + expect(g).toBeGreaterThan(200); + expect(r).toBeLessThan(60); + expect(b).toBeLessThan(60); + expect(a).toBeGreaterThan(200); + } + ); +}); diff --git a/packages/skia/src/renderer/__tests__/setup.tsx b/packages/skia/src/renderer/__tests__/setup.tsx index f80a9f672e..49c7b3fae9 100644 --- a/packages/skia/src/renderer/__tests__/setup.tsx +++ b/packages/skia/src/renderer/__tests__/setup.tsx @@ -27,6 +27,7 @@ declare global { var testServer: Server; var testClient: WebSocket; var testOS: TestOS; + var testGraphite: boolean; } export let surface: TestingSurface; const assets = new Map(); @@ -110,6 +111,47 @@ beforeAll(async () => { export const wait = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); +// Error envelopes are JSON objects starting with "{" (0x7b). PNG payloads start +// with the 0x89 signature and base64/other JSON responses won't carry $$error, +// so we only attempt a parse when the buffer looks like a JSON object. +const parseErrorResponse = (raw: Buffer): string | null => { + if (raw[0] !== 0x7b) { + return null; + } + try { + const obj = JSON.parse(raw.toString()); + if (obj && typeof obj === "object" && "$$error" in obj) { + return String(obj.$$error); + } + } catch { + // Not a JSON object; treat as a normal payload. + } + return null; +}; + +// Registers a test that only runs against a device using the Graphite backend +// (Dawn/WebGPU). The backend is only known after the websocket handshake, so — +// like itSkipsOnWeb in react-native-webgpu — the guard is a runtime early +// return rather than it.skip at collection time. This also keeps the WebGPU +// specs inert in Node/Local mode and on Ganesh builds, where Skia.getDevice() +// would throw. +export const itRunsWithGraphite = ( + name: string, + fn: () => Promise, + timeout?: number +) => { + it( + name, + async () => { + if (!E2E || !surface.graphite) { + return; + } + await fn(); + }, + timeout + ); +}; + export const resolveFile = (uri: string) => fs.readFileSync(path.resolve(__dirname, `../../${uri}`)); @@ -378,6 +420,10 @@ interface TestingSurface { fontSize: number; OS: TestOS; arch: "paper" | "fabric"; + // True when the connected device runs the Graphite backend, i.e. the WebGPU + // API (navigator.gpu / Skia.getDevice()) is available. Always false in Node + // (LocalSurface) and on Ganesh builds. + graphite: boolean; } class LocalSurface implements TestingSurface { @@ -386,6 +432,7 @@ class LocalSurface implements TestingSurface { readonly fontSize = 32; readonly OS = "node"; readonly arch = "paper"; + readonly graphite = false; eval( fn: (Skia: Skia, ctx: Ctx) => R, @@ -433,6 +480,7 @@ class RemoteSurface implements TestingSurface { readonly fontSize = 32; readonly OS = global.testOS; readonly arch = global.testArch; + readonly graphite = global.testGraphite ?? false; eval( fn: (Skia: Skia, ctx: Ctx) => any, @@ -504,10 +552,32 @@ return surface.makeImageSnapshot().encodeToBase64(); body: string, json?: boolean ): Promise { - return new Promise((resolve) => { - this.client.once("message", (raw: Buffer) => { + // Guard against an eval that never replies (e.g. the device threw before it + // could post a result back). Without this the host would await forever and + // a single failing case would stall the whole serial suite. + const EVAL_TIMEOUT_MS = 30 * 1000; + return new Promise((resolve, reject) => { + const onMessage = (raw: Buffer) => { + clearTimeout(timeout); + // The device reports a thrown error as { $$error: message } (always + // JSON, even for image responses) so the matching test can `.rejects` + // instead of hanging or trying to decode an error string as a PNG. + const error = parseErrorResponse(raw); + if (error !== null) { + reject(new Error(error)); + return; + } resolve(json ? JSON.parse(raw.toString()) : this.decodeImage(raw)); - }); + }; + const timeout = setTimeout(() => { + this.client.off("message", onMessage); + reject( + new Error( + `eval timed out after ${EVAL_TIMEOUT_MS}ms without a response from the device` + ) + ); + }, EVAL_TIMEOUT_MS); + this.client.once("message", onMessage); this.client.send(body); }); } diff --git a/packages/skia/src/skia/types/NativeBuffer/NativeBufferFactory.ts b/packages/skia/src/skia/types/NativeBuffer/NativeBufferFactory.ts index c5a079298f..5a4f65abbf 100644 --- a/packages/skia/src/skia/types/NativeBuffer/NativeBufferFactory.ts +++ b/packages/skia/src/skia/types/NativeBuffer/NativeBufferFactory.ts @@ -40,7 +40,16 @@ export interface NativeBufferFactory { */ MakeFromImage: (image: SkImage) => NativeBuffer; /** - * Release a native buffer that was created with `MakeFromImage`. + * Create a native buffer of the given size filled with a procedural test + * pattern (RGB gradient + diagonal stripes), entirely on the CPU. Useful for + * examples and tests that need a buffer to feed into + * `GPUDevice.importExternalTexture` without a camera/video source. Release it + * with `Release`. + */ + MakeTestBuffer: (width: number, height: number) => NativeBuffer; + /** + * Release a native buffer that was created with `MakeFromImage` or + * `MakeTestBuffer`. */ Release: (nativeBuffer: NativeBuffer) => void; } diff --git a/packages/skia/src/skia/types/WebGPU.ts b/packages/skia/src/skia/types/WebGPU.ts new file mode 100644 index 0000000000..225f67de22 --- /dev/null +++ b/packages/skia/src/skia/types/WebGPU.ts @@ -0,0 +1,186 @@ +import type { NativeBuffer } from "./NativeBuffer"; + +// Skia's Graphite/Dawn backend extends the standard WebGPU API (typed by +// @webgpu/types) with a few Skia- and Dawn-specific entry points. These are +// only available on native (SK_GRAPHITE) builds, reachable through +// `Skia.getDevice()`. +// +// The exported interfaces below describe the descriptors and objects those +// entry points use; the `declare global` block augments the standard WebGPU +// interfaces so the new methods are typed without casting to `any`. + +/** + * Descriptor for {@link GPUDevice.importExternalTexture} when the source is a + * Skia NativeBuffer (Skia has no WebCodecs `VideoFrame`). + * + * `source` is the handle returned by `Skia.NativeBuffer.MakeFromImage`: a + * `CVPixelBufferRef` on Apple, an `AHardwareBuffer*` on Android. The caller + * owns its lifetime (release it with `Skia.NativeBuffer.Release`) and must keep + * it alive until the imported texture is destroyed. + */ +export interface SkiaGPUExternalTextureDescriptor extends GPUObjectDescriptorBase { + source: NativeBuffer; + /** Rotation applied while sampling, in degrees. One of 0 | 90 | 180 | 270. */ + rotation?: number; + /** Mirror horizontally while sampling. */ + mirrored?: boolean; +} + +/** + * Descriptor for {@link GPUDevice.importSharedTextureMemory}. `handle` is the + * NativeBuffer returned by `Skia.NativeBuffer.MakeFromImage` (see + * {@link SkiaGPUExternalTextureDescriptor} for the platform-specific types and + * lifetime rules). + */ +export interface GPUSharedTextureMemoryDescriptor extends GPUObjectDescriptorBase { + handle: NativeBuffer; +} + +/** + * The kind of native synchronization primitive a {@link GPUSharedFence} wraps, + * matching the `shared-fence-*` device feature names. Limited to the kinds + * react-native-skia targets (iOS/Metal and Android/Vulkan); `importSharedFence` + * accepts these and `export()` reports them. + */ +export type GPUSharedFenceType = + | "mtl-shared-event" + | "sync-fd" + | "vk-semaphore-opaque-fd"; + +/** + * Descriptor for {@link GPUDevice.importSharedFence}. + */ +export interface GPUSharedFenceDescriptor { + /** + * The fence kind to import. Must match a `shared-fence-*` feature enabled on + * the device. + */ + type: GPUSharedFenceType; + /** + * The raw native handle as a BigInt: an `id` pointer for + * `"mtl-shared-event"`, or an OS file descriptor for the `*-fd` kinds. + */ + handle: bigint; + label?: string; +} + +export interface GPUSharedFenceExportInfo { + type: GPUSharedFenceType; + /** + * An `id` pointer (Apple) or file descriptor (Android), as a + * BigInt. The caller takes ownership; e.g. an exported sync-fd must be closed + * once consumed. + */ + handle: bigint; +} + +/** + * A native GPU synchronization primitive shared across queues/APIs. Produced by + * {@link GPUSharedTextureMemory.endAccess}, consumed by + * {@link GPUSharedTextureMemory.beginAccess}, or imported from a consumer's + * fence with {@link GPUDevice.importSharedFence}. + */ +export interface GPUSharedFence { + readonly __brand: "GPUSharedFence"; + label: string; + export(): GPUSharedFenceExportInfo; +} + +/** A fence and the timeline value to wait for (0n for binary sync-fd fences). */ +export interface GPUSharedFenceState { + fence: GPUSharedFence; + signaledValue: bigint; +} + +/** + * The result of {@link GPUSharedTextureMemory.endAccess}: each fence is signaled + * at its `signaledValue` once Dawn's GPU work for the access completes. + */ +export interface GPUSharedTextureMemoryEndAccessState { + initialized: boolean; + fences: GPUSharedFenceState[]; +} + +/** + * Shared texture memory imported from a platform native buffer via + * {@link GPUDevice.importSharedTextureMemory}. Create a texture that aliases + * the memory, then bracket the GPU work that touches it with + * {@link GPUSharedTextureMemory.beginAccess} / {@link GPUSharedTextureMemory.endAccess}. + */ +export interface GPUSharedTextureMemory extends GPUObjectBase { + /** Create a texture that aliases the shared memory. */ + createTexture(descriptor?: GPUTextureDescriptor): GPUTexture; + /** + * Acquire the memory for GPU access. `initialized` marks whether the existing + * contents should be preserved (pass `true` for an already-rendered frame). + * Optional `fences` are wait fences: Dawn waits for each to reach its + * `signaledValue` before writing the surface. Throws if the access could not + * be acquired. + */ + beginAccess( + texture: GPUTexture, + initialized: boolean, + fences?: GPUSharedFenceState[] + ): void; + /** + * Release the memory after the GPU work that accessed it has been submitted, + * and return the fences Dawn produced for the access. Throws on failure. + */ + endAccess(texture: GPUTexture): GPUSharedTextureMemoryEndAccessState; +} + +/** + * Dawn-specific toggles, passed via {@link GPUDeviceDescriptor.dawnToggles} to + * `adapter.requestDevice`. This is a non-spec, Dawn-only extension; see Dawn's + * toggle list for valid names. + */ +export interface GPUDawnTogglesDescriptor { + enabledToggles?: string[]; + disabledToggles?: string[]; +} + +declare global { + interface GPUDeviceDescriptor { + /** Dawn-specific toggles (Skia/Graphite extension, non-spec). */ + dawnToggles?: GPUDawnTogglesDescriptor; + } + + interface GPUExternalTexture { + /** + * Skia extension: end the imported buffer's shared-memory access window and + * release the underlying resources. Call right after the `queue.submit()` + * that sampled this texture (never before). Idempotent, and also runs at + * garbage collection as a fallback. + */ + destroy(): void; + } + + interface GPUDevice { + /** + * Skia extension: import a NativeBuffer (from + * `Skia.NativeBuffer.MakeFromImage`) as a {@link GPUExternalTexture}, sampled + * with `texture_external` in WGSL. The returned texture owns the + * shared-memory access window; call `destroy()` on it after the sampling + * `queue.submit()`. + */ + importExternalTexture( + descriptor: SkiaGPUExternalTextureDescriptor + ): GPUExternalTexture; + /** + * Skia extension: import a NativeBuffer (from + * `Skia.NativeBuffer.MakeFromImage`) as {@link GPUSharedTextureMemory}, the + * lower-level path that lets you create an aliasing texture and manage the + * begin/end access window yourself. + */ + importSharedTextureMemory( + descriptor: GPUSharedTextureMemoryDescriptor + ): GPUSharedTextureMemory; + /** + * Skia extension: import a native synchronization primitive (an + * `id` on Apple, a sync-fd / VkSemaphore on Android) as a + * {@link GPUSharedFence}, e.g. to wait on a fence a consumer produced. The + * matching `shared-fence-*` feature must be enabled on the device. + */ + importSharedFence(descriptor: GPUSharedFenceDescriptor): GPUSharedFence; + } +} diff --git a/packages/skia/src/skia/types/index.ts b/packages/skia/src/skia/types/index.ts index 2d55392f42..be8fcf4f54 100644 --- a/packages/skia/src/skia/types/index.ts +++ b/packages/skia/src/skia/types/index.ts @@ -30,6 +30,7 @@ export * from "./Size"; export * from "./Paragraph"; export * from "./Matrix4"; export * from "./NativeBuffer"; +export * from "./WebGPU"; export * from "./Recorder"; export * from "./Video"; export * from "./Skottie"; diff --git a/packages/skia/src/skia/web/JsiSkNativeBufferFactory.ts b/packages/skia/src/skia/web/JsiSkNativeBufferFactory.ts index 55ff04ac6b..cd6da31645 100644 --- a/packages/skia/src/skia/web/JsiSkNativeBufferFactory.ts +++ b/packages/skia/src/skia/web/JsiSkNativeBufferFactory.ts @@ -25,6 +25,26 @@ export class JsiSkNativeBufferFactory return canvas; } + MakeTestBuffer(width: number, height: number): NativeBuffer { + const pixels = new Uint8ClampedArray(width * height * 4); + for (let y = 0; y < height; y++) { + for (let x = 0; x < width; x++) { + const i = (y * width + x) * 4; + pixels[i + 0] = Math.floor((x * 255) / Math.max(width - 1, 1)); + pixels[i + 1] = Math.floor((y * 255) / Math.max(height - 1, 1)); + pixels[i + 2] = (x + y) & 0x20 ? 220 : 30; + pixels[i + 3] = 0xff; + } + } + const canvas = new OffscreenCanvas(width, height); + const ctx = canvas.getContext("2d"); + if (!ctx) { + throw new Error("Failed to get 2d context from canvas"); + } + ctx.putImageData(new ImageData(pixels, width, height), 0, 0); + return canvas; + } + Release(_nativeBuffer: NativeBuffer) { // it's a noop on Web } diff --git a/packages/skia/src/skia/web/JsiSkPath.ts b/packages/skia/src/skia/web/JsiSkPath.ts index ccad962b7b..ef0f1a0309 100644 --- a/packages/skia/src/skia/web/JsiSkPath.ts +++ b/packages/skia/src/skia/web/JsiSkPath.ts @@ -447,7 +447,10 @@ export class JsiSkPath } simplify() { - warnDeprecatedPathMethod("simplify", "Use Skia.Path.Simplify(path) instead."); + warnDeprecatedPathMethod( + "simplify", + "Use Skia.Path.Simplify(path) instead." + ); const path = this.asPath(); const result = path.makeSimplified(); path.delete(); @@ -500,7 +503,10 @@ export class JsiSkPath } stroke(opts?: StrokeOpts) { - warnDeprecatedPathMethod("stroke", "Use Skia.Path.Stroke(path, opts) instead."); + warnDeprecatedPathMethod( + "stroke", + "Use Skia.Path.Stroke(path, opts) instead." + ); const path = this.asPath(); const result = path.makeStroked( opts === undefined diff --git a/yarn.lock b/yarn.lock index 33f2dad1a2..b19ce63d2a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -219,7 +219,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.20.0": +"@babel/code-frame@npm:^7.20.0, @babel/code-frame@npm:^7.29.0": version: 7.29.0 resolution: "@babel/code-frame@npm:7.29.0" dependencies: @@ -230,6 +230,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/code-frame@npm:7.29.7" + dependencies: + "@babel/helper-validator-identifier": ^7.29.7 + js-tokens: ^4.0.0 + picocolors: ^1.1.1 + checksum: 21b12fe2356e36f6cc3cd8a3721f878bfeea80ce38356979a0518b47b3aafdcc0bd263da75ccc9d51c64d40b1b6df00e768ce2446acb0b7cbec0ae8f905663ad + languageName: node + linkType: hard + "@babel/code-frame@npm:~7.10.4": version: 7.10.4 resolution: "@babel/code-frame@npm:7.10.4" @@ -246,7 +257,14 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.14.0, @babel/core@npm:^7.16.0, @babel/core@npm:^7.20.0, @babel/core@npm:^7.20.2, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.25.2, @babel/core@npm:^7.25.9, @babel/core@npm:^7.27.4, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": +"@babel/compat-data@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/compat-data@npm:7.29.7" + checksum: 4424f8fb72f61657c8e811bdf7e5c69af212a15fe362711162b2e00b82f0e0588fb8259ecd9a70c5490562bf51d408b0cb92f277ead71a2390ddddfe7283b35d + languageName: node + linkType: hard + +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.14.0, @babel/core@npm:^7.16.0, @babel/core@npm:^7.20.0, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.25.2, @babel/core@npm:^7.25.9, @babel/core@npm:^7.27.4, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": version: 7.28.6 resolution: "@babel/core@npm:7.28.6" dependencies: @@ -269,6 +287,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.29.6": + version: 7.29.6 + resolution: "@babel/core@npm:7.29.6" + dependencies: + "@babel/code-frame": ^7.29.0 + "@babel/generator": ^7.29.6 + "@babel/helper-compilation-targets": ^7.28.6 + "@babel/helper-module-transforms": ^7.28.6 + "@babel/helpers": ^7.29.2 + "@babel/parser": ^7.29.3 + "@babel/template": ^7.28.6 + "@babel/traverse": ^7.29.0 + "@babel/types": ^7.29.0 + "@jridgewell/remapping": ^2.3.5 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: 94d510191c8dfc5745adce4a91dff24f8664925f5c9a8f8c9e6f458f0b3ab55af89a846cba3657b633c772716e69f220c59aa4c7d8caf02b322892aa18273462 + languageName: node + linkType: hard + "@babel/eslint-parser@npm:^7.16.3, @babel/eslint-parser@npm:^7.18.2, @babel/eslint-parser@npm:^7.25.1": version: 7.28.6 resolution: "@babel/eslint-parser@npm:7.28.6" @@ -296,6 +337,32 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.29.0": + version: 7.29.1 + resolution: "@babel/generator@npm:7.29.1" + dependencies: + "@babel/parser": ^7.29.0 + "@babel/types": ^7.29.0 + "@jridgewell/gen-mapping": ^0.3.12 + "@jridgewell/trace-mapping": ^0.3.28 + jsesc: ^3.0.2 + checksum: d8e6863b2d04f684e65ad72731049ac7d754d3a3d1a67cdfc20807b109ba3180ed90d7ccef58ce5d38ded2eaeb71983a76c711eecb9b6266118262378f6c7226 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.29.6, @babel/generator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/generator@npm:7.29.7" + dependencies: + "@babel/parser": ^7.29.7 + "@babel/types": ^7.29.7 + "@jridgewell/gen-mapping": ^0.3.12 + "@jridgewell/trace-mapping": ^0.3.28 + jsesc: ^3.0.2 + checksum: 6bb8f4dc0641dca19e81f5daab37ed1a1f5a78e4d702eb79a4275739f773975134e250090c182cf1eea35d9bd65e634b9d9babf66600ffdcf8ac62fa40f3b980 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.27.1, @babel/helper-annotate-as-pure@npm:^7.27.3": version: 7.27.3 resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" @@ -305,7 +372,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2, @babel/helper-compilation-targets@npm:^7.28.6": +"@babel/helper-annotate-as-pure@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.29.7" + dependencies: + "@babel/types": ^7.29.7 + checksum: acd9e128de634a5144b5d622357d018fa616de45f64c74e42007c048dd15d0a0be213f4d5a2bf02307bdaddf053791b87900a99d183de828c08dc3b556329009 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-compilation-targets@npm:7.28.6" dependencies: @@ -318,7 +394,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.27.1, @babel/helper-create-class-features-plugin@npm:^7.28.6": +"@babel/helper-compilation-targets@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-compilation-targets@npm:7.29.7" + dependencies: + "@babel/compat-data": ^7.29.7 + "@babel/helper-validator-option": ^7.29.7 + browserslist: ^4.24.0 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: f60a943937f4eba0e671aa28551cb45569fd081c1e30a52ede167860475dc0417f3dbdf2a0fa3f086965595c7070aa76308da60cc0319860de05db4ed2a431f7 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-create-class-features-plugin@npm:7.28.6" dependencies: @@ -335,6 +424,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.29.7 + "@babel/helper-member-expression-to-functions": ^7.29.7 + "@babel/helper-optimise-call-expression": ^7.29.7 + "@babel/helper-replace-supers": ^7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.29.7 + "@babel/traverse": ^7.29.7 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c954e4bfe423a277cdcbad64344637cf696ddcd80085fce5f284b02a0c700af0d2d7b61468a06d9e296e948de60ece138921b65564aec023a9d9594f5d9fe18d + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.27.1, @babel/helper-create-regexp-features-plugin@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.28.5" @@ -348,6 +454,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.29.7 + regexpu-core: ^6.3.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 702a34db6c064a2c26675b717b3af88b8acaeb5341e2285792a873a67a16ec4cbe987ba72e055db198b2e03ead05600d8c9c0c1e7436708e95865bbfb3516026 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.6.5, @babel/helper-define-polyfill-provider@npm:^0.6.6": version: 0.6.6 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.6" @@ -363,6 +482,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.6.8": + version: 0.6.8 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.8" + dependencies: + "@babel/helper-compilation-targets": ^7.28.6 + "@babel/helper-plugin-utils": ^7.28.6 + debug: ^4.4.3 + lodash.debounce: ^4.0.8 + resolve: ^1.22.11 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 39fef64ade79253836320c7826895d948ab5e8e21479cf29f5d6bb5284126693ca537b6ace9d9b7b515a8be66bd4a8a7d7687f9b25b7574a52dae7790fcd3a4e + languageName: node + linkType: hard + "@babel/helper-globals@npm:^7.28.0": version: 7.28.0 resolution: "@babel/helper-globals@npm:7.28.0" @@ -370,6 +504,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-globals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-globals@npm:7.29.7" + checksum: 6deaf9846a415c7f110ac153e8c3d81e3543c9b685aa9fd9a59b4235f402e2b760129d3df49466daea9162f0cf73ff98a0ec7f180448a3449ca14ae5e1117b42 + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-member-expression-to-functions@npm:7.28.5" @@ -380,6 +521,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.29.7" + dependencies: + "@babel/traverse": ^7.29.7 + "@babel/types": ^7.29.7 + checksum: 79d5f095b4bafadff3d1ec316d9f17ec85940fece957db62dd523b08e142da73c53180d1bce2fdc4d523e3889bb01b39bea70ad968b6e2f4dbdc66ebd1055b8a + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.27.1, @babel/helper-module-imports@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-module-imports@npm:7.28.6" @@ -390,7 +541,17 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3, @babel/helper-module-transforms@npm:^7.28.6": +"@babel/helper-module-imports@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-module-imports@npm:7.29.7" + dependencies: + "@babel/traverse": ^7.29.7 + "@babel/types": ^7.29.7 + checksum: ad5a768fc9c162620b7f5b7645c6c2efee1e6f9df432bb79651888661a7e4cd91dac7192f3ddcfd6de4778a089e9fb30fafae768156aa73a07eeca425f64e849 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-module-transforms@npm:7.28.6" dependencies: @@ -403,6 +564,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-module-transforms@npm:7.29.7" + dependencies: + "@babel/helper-module-imports": ^7.29.7 + "@babel/helper-validator-identifier": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 484f6d02975d304f680d44e331d4b832d67e51917483985eab7b853664452b5a627366e7a9d421200ec772a123213a591e28b40636566afeac189411ba3f45a8 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" @@ -412,6 +586,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.29.7" + dependencies: + "@babel/types": ^7.29.7 + checksum: 6b477e01b403fd48349336cb1d94722bff4fa54af2841b5fa950c557b796f4ecc14724052252ed1362ccfc23d1c09c54dc03e182fea59d3dc5bd69f8c626ba25 + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.28.6, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.28.6 resolution: "@babel/helper-plugin-utils@npm:7.28.6" @@ -419,6 +602,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-plugin-utils@npm:7.29.7" + checksum: b0a183abcc6670afa4861425fa428217d8ebadce062d5b43117919e8715f820080fd63bbfcf0e43c6e0e7d21a96b21f635c46dda80bdb0ce7e8a762ebee1d8d9 + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-remap-async-to-generator@npm:7.27.1" @@ -432,6 +622,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.29.7 + "@babel/helper-wrap-function": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 98338ad6e34ebb4be2dc23f8d9199d28d6d8ac6a2ce8b90fe9efdf3595b39748321528d9f2540ec0586a6e45f7c84f5f623fbf980c5efa7fa9ba7ce837ea4b20 + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.27.1, @babel/helper-replace-supers@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-replace-supers@npm:7.28.6" @@ -445,6 +648,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-replace-supers@npm:7.29.7" + dependencies: + "@babel/helper-member-expression-to-functions": ^7.29.7 + "@babel/helper-optimise-call-expression": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f7eb9a6b035d9d45250c880eb09605f95998998e828ec90759ed45764fe0abeee583419969de8b8dee551163dff914c9fc6ace90c1d819c56c23146f8df525db + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" @@ -455,6 +671,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.29.7" + dependencies: + "@babel/traverse": ^7.29.7 + "@babel/types": ^7.29.7 + checksum: a5800bfcdca6cef7f6fe33ac02a0f05ff33da9746f97806553f249733f7ba8400290a17f3831d7faa5d91656f254ab749931f53c8a29f301d958d7dd00499637 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-string-parser@npm:7.27.1" @@ -462,6 +688,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-string-parser@npm:7.29.7" + checksum: 4c229d2c2296b6c94439e87ecddf3a93cee3ffd2d4cee0b4c28079275bed3de4e02cd943e4cb06036d1d9407549c4e3423006b61a46215c482fce902ee02bc0b + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.25.9, @babel/helper-validator-identifier@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-validator-identifier@npm:7.28.5" @@ -469,6 +702,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-validator-identifier@npm:7.29.7" + checksum: cc7779e96fe9c9478c96ca4bf04fc338b95b501aa5abe78178307dea282d4a5dc23d443efb12dde8e8c5636d03dd00e443532e6ed7f15fa7977349af1f87ba4d + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-validator-option@npm:7.27.1" @@ -476,6 +716,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-validator-option@npm:7.29.7" + checksum: aeb6aa966f59300d3cc2fea7c68e1dfd7ad011fc10e535c8e2b2de3094b27c859428dc7220f16420350f8b1cde99da120b673be04bcb0c2f37b56258c96bed58 + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.27.1": version: 7.28.6 resolution: "@babel/helper-wrap-function@npm:7.28.6" @@ -487,6 +734,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-wrap-function@npm:7.29.7" + dependencies: + "@babel/template": ^7.29.7 + "@babel/traverse": ^7.29.7 + "@babel/types": ^7.29.7 + checksum: 2e6dfca94a10a3672a6b0ff337c80f27d7c66f3ea110969e833529a2d5bfbb5e53ab40abf6fad4657b8f810fcab2e3d56998f8da89bfe82a58267c5e8bc06e9a + languageName: node + linkType: hard + "@babel/helpers@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helpers@npm:7.28.6" @@ -497,6 +755,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.29.2": + version: 7.29.7 + resolution: "@babel/helpers@npm:7.29.7" + dependencies: + "@babel/template": ^7.29.7 + "@babel/types": ^7.29.7 + checksum: b5c4ed0ce5983c5599cd01b3948444b77ba2fa47bf6282a82afdcbe45eb8cc5b7986194e3920ef2760f533c6a775504e6b00a66960c0a3bc52909920b8433908 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.23.4": version: 7.25.9 resolution: "@babel/highlight@npm:7.25.9" @@ -529,6 +797,28 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.29.0": + version: 7.29.3 + resolution: "@babel/parser@npm:7.29.3" + dependencies: + "@babel/types": ^7.29.0 + bin: + parser: ./bin/babel-parser.js + checksum: 046f46996bf4053b6e29f8a7f420f9e0a2878593c1c9a9914a36faca23fc544a307c78a0101ba3ae98936ade68bdde686a83e1ab2b74c2ebb80dc4a9df48476d + languageName: node + linkType: hard + +"@babel/parser@npm:^7.29.3, @babel/parser@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/parser@npm:7.29.7" + dependencies: + "@babel/types": ^7.29.7 + bin: + parser: ./bin/babel-parser.js + checksum: 56f4c32a371004d3becd0a960a85a3bba4ec4df73d5e202aa3fe6473328b243162c6be9a510be1c12ed1825f5ce9ff1ea5cc357298631e8acf2e5b8da9f5a961 + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.28.5" @@ -541,6 +831,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 83cca77d175f3e66460a004648c8a645da880d5a9db96b03abd433e05bc4357aec0418d17b05fbfecfa679438b8eb8d8adc71b8f4db86cfaf6e6b0373b39a05e + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.27.1" @@ -552,6 +854,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ad06de66ccfb19f0f04e6124d144f3fef72fa5191861b1d04bc32cab87ce43958810d9632eac5881ef991a78b33e68588e3d90e76a63d917bd5a7ff4c96618f8 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.27.1" @@ -563,6 +876,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2189a2a648948107c59ad3bf028e5b71a85b28c840facfead769a33c5f63ae4ec0f147e6a2e664a91a506d4405f5a8972d2ca628f3b64d03edd7620d770761fb + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a9bd13c2600bdfcb5b35590e210bcb30f009fda9bd1556567757ea4fcb8ca247750331d6d10774d68127cae4e529bc79abd86a28fe5e2a1cc2cc00e75964ac52 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.27.1" @@ -576,6 +912,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.29.7 + "@babel/plugin-transform-optional-chaining": ^7.29.7 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 76a494ec4f52a127b0208c4574a6da36f6ff5f30484306921762db549fa7d9d9183c837759eb68c0c9e5a56013aa247e6e02e02263384d2a103240353ae0ceb6 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.28.6" @@ -588,6 +937,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 7a58b4b32f4c04b86160dc7900612904e2b88d42c8b89d59a89d3c343f320ad096d73fb453a2e8bf8e97c9d4af3563043bc6d1e3def53c819812cb03f3f873c8 + languageName: node + linkType: hard + "@babel/plugin-proposal-class-properties@npm:^7.12.1, @babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.16.0": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" @@ -636,7 +997,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.16.0": +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.16.0": version: 7.18.6 resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" dependencies: @@ -796,6 +1157,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-flow@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-syntax-flow@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3e03792bb20d4a0f2610df5d5af6c2ec8cbb5096a7576b24027eca60ac2b9e3a183d48255e4156fa94768322d82b13e77623f785ef556660de1c0efc5708e52a + languageName: node + linkType: hard + "@babel/plugin-syntax-import-assertions@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-syntax-import-assertions@npm:7.28.6" @@ -807,6 +1179,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-assertions@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a7f24858e7e833c2ee25779a355b5eff46e4bc93c98b06bda7ea0fd12faf99c4954e0f71074485512045920432790e0269aa562dd4d2085c3f8660ed1cfde8a1 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-syntax-import-attributes@npm:7.28.6" @@ -818,6 +1201,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-attributes@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9f47345d09aae16b7ab52ecaf541cde3e3ae1e57e3eb2d4088e062b29dfbd67db55d42d529840557583d66121e2a98788df7a455401cc6d635c8b7700a02efc9 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-meta@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" @@ -851,6 +1245,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 84150d27c553a1d3d921354437f6725ca1d63b49514c25591bfcaaafa6ea4d6c10715b66fe7245e4ad7ab7c6cf4b6e1de7373defd3df00877ab12638170d7772 + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -950,6 +1355,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ef454d2a7a6209dd4255361c072c94ab1293e7ad4b06e7e744d08bb308065d4d6544964eae9b2357c3b33d8d939f9e32d4aa95905bc464407cd8f7101dee4443 + languageName: node + linkType: hard + "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -962,7 +1378,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:7.27.1, @babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.27.1": +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: @@ -973,6 +1389,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-arrow-functions@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0037fd7563c7c91cddb8ce104e270bc260190d29c7a297df65e4306471010b4343366de13fab4602cf8ee6c672d3b313b34a01b62f27a333cad16908c83368d8 + languageName: node + linkType: hard + "@babel/plugin-transform-async-generator-functions@npm:^7.24.3, @babel/plugin-transform-async-generator-functions@npm:^7.25.4, @babel/plugin-transform-async-generator-functions@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.28.6" @@ -986,6 +1413,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-generator-functions@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-remap-async-to-generator": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d8239f43b4051b12cd7a5581367bd2b13ac26235da39d79f182999879f010124341ac500f480140b0961a62ec451a0a963b421c509f9c1a306c313f10fc60451 + languageName: node + linkType: hard + "@babel/plugin-transform-async-to-generator@npm:^7.20.0, @babel/plugin-transform-async-to-generator@npm:^7.24.7, @babel/plugin-transform-async-to-generator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-async-to-generator@npm:7.28.6" @@ -999,6 +1439,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-to-generator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.29.7" + dependencies: + "@babel/helper-module-imports": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-remap-async-to-generator": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e24db9c4c69121daab25883f9a96e6849fa664c78c6bbcfb77fe0a0c6ab29b81ba39e8497985367463d3a88deac3b5bbe15dd1c5d0e5dd492cfccf8efdd27452 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoped-functions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.27.1" @@ -1010,6 +1463,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoped-functions@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 24f9712ade98061cd22088709b86b8e3e19ea416dbe5a69ad504fc3f8f2179af5bdeb32fcb9c24fc861bef515e41ae5ef72cd909e0e42bb0cf15838c4e737149 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.25.0, @babel/plugin-transform-block-scoping@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-block-scoping@npm:7.28.6" @@ -1021,15 +1485,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-class-properties@npm:7.27.1" +"@babel/plugin-transform-block-scoping@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.29.7" dependencies: - "@babel/helper-create-class-features-plugin": ^7.27.1 - "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-plugin-utils": ^7.29.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 475a6e5a9454912fe1bdc171941976ca10ea4e707675d671cdb5ce6b6761d84d1791ac61b6bca81a2e5f6430cb7b9d8e4b2392404110e69c28207a754e196294 + checksum: a17c02f8dfcaf2c26c0c323aaa8e3a1616f2de3ea0a4947e16789bb64cb0f177deff388eb1390c100c82d7e6fecd4d583646bb9305fb3df3ca824b1bdbebdc8e languageName: node linkType: hard @@ -1045,6 +1508,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-class-properties@npm:^7.27.1, @babel/plugin-transform-class-properties@npm:^7.28.0, @babel/plugin-transform-class-properties@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.29.7" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0cc5e7a882e29eead360f02ef79f6b2ec3b3813213b1513d8fdaa931d1d1361fccc92fbacc9b399e42495953d9d6fc722f283b5f3aa272fe016a0b5fe1e6a130 + languageName: node + linkType: hard + "@babel/plugin-transform-class-static-block@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-class-static-block@npm:7.28.6" @@ -1057,19 +1532,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:7.28.4": - version: 7.28.4 - resolution: "@babel/plugin-transform-classes@npm:7.28.4" +"@babel/plugin-transform-class-static-block@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.29.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.27.3 - "@babel/helper-compilation-targets": ^7.27.2 - "@babel/helper-globals": ^7.28.0 - "@babel/helper-plugin-utils": ^7.27.1 - "@babel/helper-replace-supers": ^7.27.1 - "@babel/traverse": ^7.28.4 + "@babel/helper-create-class-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f412e00c86584a9094cc0a2f3dd181b8108a4dced477d609c5406beddd5bf79d05a7ea74db508dc4dcb37172f042d5ef98d3d6311ade61c7ea6fbbbb70f5ec29 + "@babel/core": ^7.12.0 + checksum: fe94eb94d8417de753a26f06a3c50780cdfc3f07e10bcd09dde2fe61dcd9a2714b83b1b2d36733328a3ad09b02e84fa06197f757644ffbcca1673e87c64ecb76 languageName: node linkType: hard @@ -1089,6 +1560,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.28.4, @babel/plugin-transform-classes@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-classes@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.29.7 + "@babel/helper-compilation-targets": ^7.29.7 + "@babel/helper-globals": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-replace-supers": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cc45ff5b5b063339131cd701266af90506db8640e56494de0c78f882da6317f057951bf6507c5b48a0278cf5dad21691baf2af05e24b8c26b0725d677088edbf + languageName: node + linkType: hard + "@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-computed-properties@npm:7.28.6" @@ -1101,6 +1588,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-computed-properties@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/template": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ad945a48e6826c3b34f825e780ab33bf91e18c7924dd263e44bef8d8a6350636305b22af8f00793d3767482004651f4bfb9fed0c92f05c01b99ae80d79956e67 + languageName: node + linkType: hard + "@babel/plugin-transform-destructuring@npm:^7.20.0, @babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.27.3, @babel/plugin-transform-destructuring@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-transform-destructuring@npm:7.28.5" @@ -1113,6 +1612,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-destructuring@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5f56c030beec2ae1640909eb5213fc655f0062046b28699d049cc8b00fb7d9aa1c5ba1dc1c7ee41c8bae97be778066f1f9ea2ecd8fff872a1e8f10fd3addf18c + languageName: node + linkType: hard + "@babel/plugin-transform-dotall-regex@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-dotall-regex@npm:7.28.6" @@ -1125,6 +1636,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dotall-regex@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.29.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 537df0fb915a420df715a2f4da16ab6c08ce2370521edef9a8a59af23a533314109f6abd836c5e127c8cea4a46bc4a05692670cf7ad64868c286075fa2d7848c + languageName: node + linkType: hard + "@babel/plugin-transform-duplicate-keys@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.27.1" @@ -1136,6 +1659,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-keys@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 39bf312a798792e361d2afa9e900eb7d7fd853239a776912bafc5bb3799886374d54a0882d21517296086abdd3e5458405f6f3a7da5dcb493bc86c5a32576bab + languageName: node + linkType: hard + "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.28.6" @@ -1148,6 +1682,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.29.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: fa7fcdbede10dbc06fe4f861e90286f7f599d3f3c43e69445e63c3f48422fd34db0b0dd9bbebccd1dbd04a50fca4ab22fd82d28e7bc8fe9b6d5790c9e694d380 + languageName: node + linkType: hard + "@babel/plugin-transform-dynamic-import@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-dynamic-import@npm:7.27.1" @@ -1159,6 +1705,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dynamic-import@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 58c035e6b9103c225f3d181671d9b3dec140351c3ecf12bc3a66b8653be41161f20135ada00a703244c2bfc9dd57b62fc54f77f2f6fe43df6c598358f377e6fa + languageName: node + linkType: hard + "@babel/plugin-transform-explicit-resource-management@npm:^7.28.0, @babel/plugin-transform-explicit-resource-management@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-explicit-resource-management@npm:7.28.6" @@ -1171,6 +1728,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-explicit-resource-management@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-explicit-resource-management@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/plugin-transform-destructuring": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 28ff30f46d97b91ba5f57ae63499a489fa1ec3dcc427ec851c2aacb34106b573c58eba4be000bc4c28223ba767cfadc008cdfa9f833ed12996e2f014e0a06373 + languageName: node + linkType: hard + "@babel/plugin-transform-exponentiation-operator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.28.6" @@ -1182,6 +1751,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-exponentiation-operator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf0366d77d318d4b6eae6880217e3fdfcb6e5f7913f658583de9537fd4fca1f05f9ac4083d8f946a84eaefec068cbba948be90f4a39484c85bc69082def3162d + languageName: node + linkType: hard + "@babel/plugin-transform-export-namespace-from@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.27.1" @@ -1193,6 +1773,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-export-namespace-from@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d157d62b144d1626b801e557dcede914db33e78f3f4230f487e5709c21efd40648f7f3a47a44a7fce694ad9cd117d2ac3ed796da0102275fd02b4fdb317d906b + languageName: node + linkType: hard + "@babel/plugin-transform-flow-strip-types@npm:^7.16.0, @babel/plugin-transform-flow-strip-types@npm:^7.20.0, @babel/plugin-transform-flow-strip-types@npm:^7.25.2, @babel/plugin-transform-flow-strip-types@npm:^7.25.9, @babel/plugin-transform-flow-strip-types@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-flow-strip-types@npm:7.27.1" @@ -1205,6 +1796,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-flow-strip-types@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/plugin-syntax-flow": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bc6e94f5398bb512b1a1d7a2bfb36dff9dd7d5150a3644e2ff4f361512b6be3c6a164828263fedbbc9eaa0015617b6c4e0e347117a0ae02acc184215cc27a6c2 + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.24.7, @babel/plugin-transform-for-of@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-for-of@npm:7.27.1" @@ -1217,6 +1820,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-for-of@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-for-of@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7641d5eb4ef268df2f7d8736691a565646f42c55fdc2c86a65ed027276415a19ac6cafab2fc386621894c5d3202baacc9f222424bda37fa2ab9a20d7fec921f9 + languageName: node + linkType: hard + "@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.25.1, @babel/plugin-transform-function-name@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-function-name@npm:7.27.1" @@ -1230,6 +1845,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-function-name@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-function-name@npm:7.29.7" + dependencies: + "@babel/helper-compilation-targets": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 87a6329442ef8085fbc160e659f64562f0f5b63be65403b8bbb8e18c67dd7d03b82fb2e1371fdde734e2f05b13a72f88ed8d8cb03807150063954b9604d082cf + languageName: node + linkType: hard + "@babel/plugin-transform-json-strings@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-json-strings@npm:7.28.6" @@ -1241,6 +1869,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-json-strings@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3af97e144e0d986522f01803ffa0f90741530d1610952ac6a92511c356ecbf5616092ab1d21401d25bc7cb8ac90d73c2c7ff35e41766df2708c29d7e588cfa7f + languageName: node + linkType: hard + "@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.25.2, @babel/plugin-transform-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-literals@npm:7.27.1" @@ -1252,6 +1891,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-literals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-literals@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: aadb2b3fe85186c274a07d5486aeef9496ce374e534fbc7b54f77985c75513422d9acec4c532f67b027e939644d93a69c00505b8909e259184c3ee5c5c62c46b + languageName: node + linkType: hard + "@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1, @babel/plugin-transform-logical-assignment-operators@npm:^7.24.7, @babel/plugin-transform-logical-assignment-operators@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.28.6" @@ -1263,6 +1913,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-logical-assignment-operators@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 374d83dfbb2de5e339d2966487c0f0d766cd67422addbd0172104ff2788b60317858172a7ab2cb6ee7d5bffad72ce07120fec009a2ef3b35551013fce4908686 + languageName: node + linkType: hard + "@babel/plugin-transform-member-expression-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.27.1" @@ -1274,6 +1935,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-member-expression-literals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 698cbc9500e8caea1d36b48248112d60e023cea9d0772ac1ecf1639b38b662d9352043747dbe617fe1f6f17709bc17601534f7bf2f22c791fb86f7e2ab43e39f + languageName: node + linkType: hard + "@babel/plugin-transform-modules-amd@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-modules-amd@npm:7.27.1" @@ -1286,6 +1958,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-amd@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.29.7" + dependencies: + "@babel/helper-module-transforms": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6fce7d329230e3be0389b1135b6ffa1224c3f060294409137c5bb7f26d81ac47b6d91651deaef93b17f5e6f99e5ca7edb80b6b855b562b65ad00b3d7f717da40 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.24.8, @babel/plugin-transform-modules-commonjs@npm:^7.27.1, @babel/plugin-transform-modules-commonjs@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.28.6" @@ -1298,17 +1982,43 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.29.7" + dependencies: + "@babel/helper-module-transforms": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e9d8102deca4c2f06507a8d071ca0e161f01cec0e108151142edb39995bd830e312d55d21fac0ceb390ac79a1fee5fb768b719413b8fc5adda5f06ecd8845cd6 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.28.5" + version: 7.29.4 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.29.4" dependencies: - "@babel/helper-module-transforms": ^7.28.3 - "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-module-transforms": ^7.28.6 + "@babel/helper-plugin-utils": ^7.28.6 "@babel/helper-validator-identifier": ^7.28.5 - "@babel/traverse": ^7.28.5 + "@babel/traverse": ^7.29.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d9cbb30669077756048af990a08ad1ba149785c336024affa49848dc4ffc5948bfaaf52d90bbec711a1f320e19e2c60182dbeff40d81cc5b9a09a87919abe07d + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.29.7" + dependencies: + "@babel/helper-module-transforms": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-validator-identifier": ^7.29.7 + "@babel/traverse": ^7.29.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 646748dcf968c107fedfbff38aa37f7a9ebf2ccdf51fd9f578c6cd323371db36bbc5fe0d995544db168f39be9bca32a85fbf3bfff4742d2bed22e21c2847fa46 + checksum: 185d26d1f20fabdb120cb0bacdb2d245a8fbe628778cc2cd096a804c1169e21ae555e482b76fcc04a585edd70d9758a456794ae4d69cd41e638e10f620d65058 languageName: node linkType: hard @@ -1324,6 +2034,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-umd@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.29.7" + dependencies: + "@babel/helper-module-transforms": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 589f5c30a906587d039e2f3bf8267652be272d93d3056667b479f450318c91e55d1674631239ac25e0e9591f4abb7ff225bb0fc8af58e5bfb703d3385ec02082 + languageName: node + linkType: hard + "@babel/plugin-transform-named-capturing-groups-regex@npm:^7.0.0, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.27.1" @@ -1336,6 +2058,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.29.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3a481be133e9ca5d25570b5ed62daae323a51663bacf30fed0d1980e912047ebd34d6326533182db625fc0bbd086d1a23ed68ebb6108e7a68a8650c228afc084 + languageName: node + linkType: hard + "@babel/plugin-transform-new-target@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-new-target@npm:7.27.1" @@ -1347,14 +2081,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1" +"@babel/plugin-transform-new-target@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-new-target@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-plugin-utils": ^7.29.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1c6b3730748782d2178cc30f5cc37be7d7666148260f3f2dfc43999908bdd319bdfebaaf19cf04ac1f9dee0f7081093d3fa730cda5ae1b34bcd73ce406a78be7 + checksum: 35b4c295348d17c9c00cf772663a6e705fd48f5a9a5378d7b548ab4cb71d5f183ca9446d2a86c77f16b037cfe64c621c00e93219aefab43bfd39d8dd2c8b56bb languageName: node linkType: hard @@ -1369,6 +2103,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.27.1, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.28.0, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f486e737ddcec3a88e2e0dc004c28e15156dd255f3b2d944903f3d75666257c96ee7ebf57d80d2cf42eda2bee497db8134a26d657ddc3defcc34b9583ecbd119 + languageName: node + linkType: hard + "@babel/plugin-transform-numeric-separator@npm:^7.24.1, @babel/plugin-transform-numeric-separator@npm:^7.24.7, @babel/plugin-transform-numeric-separator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-numeric-separator@npm:7.28.6" @@ -1380,6 +2125,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-numeric-separator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6177df9e1a8a190bf4a360f8cbcfa614b70ededba61201bd0a38929770b6d00a8a54a19f8fda82cf60688d9bab938427a9fe5dae0a9e8cd8ed79c88a3b2dbcd7 + languageName: node + linkType: hard + "@babel/plugin-transform-object-rest-spread@npm:^7.24.5, @babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.6" @@ -1395,6 +2151,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-rest-spread@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.29.7" + dependencies: + "@babel/helper-compilation-targets": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/plugin-transform-destructuring": ^7.29.7 + "@babel/plugin-transform-parameters": ^7.29.7 + "@babel/traverse": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e09bcc8800cf374962ab98bce5ccceb900266278a3a1e4a68391abec440fdf7371c8059f9091f407a1b167f3acf624c34c9b92188674fdcb7797e3f02509216b + languageName: node + linkType: hard + "@babel/plugin-transform-object-super@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-object-super@npm:7.27.1" @@ -1407,6 +2178,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-super@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-object-super@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-replace-supers": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 65ed8719563572c4917f19b32c476c9a9062fccf89bfd44a418bb734cd866034d66049499cace58e2bb4589da779983f534078bd989333f36268b9da08d4b33c + languageName: node + linkType: hard + "@babel/plugin-transform-optional-catch-binding@npm:^7.24.1, @babel/plugin-transform-optional-catch-binding@npm:^7.24.7, @babel/plugin-transform-optional-catch-binding@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.28.6" @@ -1418,15 +2201,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.27.1" +"@babel/plugin-transform-optional-catch-binding@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": ^7.27.1 - "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/helper-plugin-utils": ^7.29.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c4428d31f182d724db6f10575669aad3dbccceb0dea26aa9071fa89f11b3456278da3097fcc78937639a13c105a82cd452dc0218ce51abdbcf7626a013b928a5 + checksum: 4b6e41e1dc5dbd02cfe0b96214130cca5fd3bd879551fc82188bb3d9a2782af9bab50f2140af9ff946a8ee23b9478ee42810641fb99aa3e033884d7c6103d138 languageName: node linkType: hard @@ -1442,6 +2224,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-chaining@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6255d259bb0143f7938278ebb382aba22311c260919d3f08476509c76335a111b479b3ad7363e86de064f87af85ca4d7f03f08195f0646c525ea70fb587c0a2d + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.27.7": version: 7.27.7 resolution: "@babel/plugin-transform-parameters@npm:7.27.7" @@ -1453,6 +2247,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-parameters@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-parameters@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 615cdd72dc2d08051e6d4e7f0539661e40029257a047ce15c5da5f4394a372a53f6f6d6aece72ad15ccf0590e448c9a742f8576564321c9dcc16262ec6197c9b + languageName: node + linkType: hard + "@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.24.7, @babel/plugin-transform-private-methods@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-private-methods@npm:7.28.6" @@ -1465,6 +2270,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-methods@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.29.7" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5055af2b86a95acbf6bd1a14256edf439ba4f214707f6aa9f6a29d1168c882e5709853c4ff225f55575f88d3a58effbed952d25c5cd70f93785106541f992cdd + languageName: node + linkType: hard + "@babel/plugin-transform-private-property-in-object@npm:^7.22.11, @babel/plugin-transform-private-property-in-object@npm:^7.24.7, @babel/plugin-transform-private-property-in-object@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.28.6" @@ -1478,6 +2295,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-property-in-object@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.29.7 + "@babel/helper-create-class-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 068ff9e35e103b269c707d16f50384646295a6613c5abfdebea24f0430bb18ea4ef40a299e1dcc915bb22f65e2217c3428c20bcd4a3fe5f8ac60ec212835646d + languageName: node + linkType: hard + "@babel/plugin-transform-property-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-property-literals@npm:7.27.1" @@ -1489,6 +2319,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-property-literals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7e7a557df8feb50cd6913158c6d12df0e8a9da58e3f73e7cbfc08af399055b03e77a22b12c73d5bf6bb49239617d6189ccb6021ab03f0225bc54f9c74a880b62 + languageName: node + linkType: hard + "@babel/plugin-transform-react-constant-elements@npm:^7.12.1, @babel/plugin-transform-react-constant-elements@npm:^7.21.3": version: 7.27.1 resolution: "@babel/plugin-transform-react-constant-elements@npm:7.27.1" @@ -1511,6 +2352,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-display-name@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-react-display-name@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ded95cce1816f800db43e8f4e1f7fbb928091bf036438617b8ca7e9ce776079606045a0ca482904bfeff801c4fc726de633153843c441ef31980b8c41ace04c9 + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-development@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.27.1" @@ -1522,6 +2374,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx-development@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.29.7" + dependencies: + "@babel/plugin-transform-react-jsx": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c535bb5ee09e07839a422f7a8e55849cd30525af57021888eceb84d33391290f6250207319bb4fbb4d4cbdcdb894b2a2b963f0769a3e95536370159b4b505855 + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-self@npm:^7.0.0, @babel/plugin-transform-react-jsx-self@npm:^7.24.7": version: 7.27.1 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" @@ -1559,6 +2422,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-react-jsx@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.29.7 + "@babel/helper-module-imports": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/plugin-syntax-jsx": ^7.29.7 + "@babel/types": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d50e5d6f12051c688280b118fc0cdc49f617f7c1f2c41b25733b606aa9a14d2dc84bc544163d115226b9d2cde9f147f49568350b9d100cb47988e5e76cf495c7 + languageName: node + linkType: hard + "@babel/plugin-transform-react-pure-annotations@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.27.1" @@ -1571,6 +2449,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-pure-annotations@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7b6bc9e9db06f2c40685b4f0a043af17a98a8bee833831aa28f70c89876dc649fdd682ae572445143b53fe091258964107bae9d3583480eb1c4f1d9c22780b38 + languageName: node + linkType: hard + "@babel/plugin-transform-regenerator@npm:^7.20.0, @babel/plugin-transform-regenerator@npm:^7.24.7, @babel/plugin-transform-regenerator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-regenerator@npm:7.28.6" @@ -1582,6 +2472,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regenerator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1a136712ba92693402d7fafb96624d1a833e888cd59029a84ed24d8ff083304a3f1d101d8d5013d0400229041c8a1e4ddf08027268f3c876ea226e86734acd25 + languageName: node + linkType: hard + "@babel/plugin-transform-regexp-modifiers@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.28.6" @@ -1594,6 +2495,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regexp-modifiers@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.29.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: bfbc6b898ace99b8412eb6e902b90856188c692e69672d42d48c5e22a5bf9b0d15d35424fda8501bfb06ba0504acc5f1b9e13eacaba232aa58af74472d6068dc + languageName: node + linkType: hard + "@babel/plugin-transform-reserved-words@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-reserved-words@npm:7.27.1" @@ -1605,6 +2518,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-reserved-words@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ffd7f86ddce36c6ded2dd9218f81be8cbae35b1ed01100ac0a98623bd0a76c059188b70953ab5accae8f8430451e8ed4779d533ac5e35c523f5004a981208b7c + languageName: node + linkType: hard + "@babel/plugin-transform-runtime@npm:^7.0.0, @babel/plugin-transform-runtime@npm:^7.16.4, @babel/plugin-transform-runtime@npm:^7.24.7, @babel/plugin-transform-runtime@npm:^7.25.9": version: 7.28.5 resolution: "@babel/plugin-transform-runtime@npm:7.28.5" @@ -1621,7 +2545,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:7.27.1, @babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: @@ -1632,6 +2556,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-shorthand-properties@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c57ef27853f334a6147da9aa00f8a8f4c3a1c217eb2efa73cba2e118edda10754fa23cec2c0c7f7408279ad28fef92c1f663dfec137a7503813331569c3e02f9 + languageName: node + linkType: hard + "@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-spread@npm:7.28.6" @@ -1644,6 +2579,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-spread@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-spread@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: eb25f24d9a5cac163fea91b5872ff2ddb892083624284a6e8a1fa8dfc4c4c6f6230f3b478405eb846df895a3f96631ac19e8c169af33012aafaa144e6192d5d3 + languageName: node + linkType: hard + "@babel/plugin-transform-sticky-regex@npm:^7.0.0, @babel/plugin-transform-sticky-regex@npm:^7.24.7, @babel/plugin-transform-sticky-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" @@ -1655,7 +2602,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:7.27.1, @babel/plugin-transform-template-literals@npm:^7.27.1": +"@babel/plugin-transform-sticky-regex@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 16b570c0270a59c2a29b2118c00e463882e9dda49b51a17dde3ae6b2886995d49f4bf2161a4c743ad1bca39d2aeb3ac963400e095682e105c7f751e6a2156c28 + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-template-literals@npm:7.27.1" dependencies: @@ -1666,6 +2624,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-template-literals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d1014dab020f0f802089de17bba82d929eda6ac87fde5f58fb9763885b8d645ce63fc1df97055c06a12d95a8788334a93b559fcaf1da6d7777a191e5f9c5646e + languageName: node + linkType: hard + "@babel/plugin-transform-typeof-symbol@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-typeof-symbol@npm:7.27.1" @@ -1677,7 +2646,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.25.2, @babel/plugin-transform-typescript@npm:^7.27.1, @babel/plugin-transform-typescript@npm:^7.28.5, @babel/plugin-transform-typescript@npm:^7.5.0": +"@babel/plugin-transform-typeof-symbol@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 90c2308f97c4e3773b7d2010b962ce6122bd9e1163f0caf7bb45819342f547a5a41d36c73d9a828ad89ce2072e2613ea867d28ad59eb440d9e22196438437d02 + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.25.2, @babel/plugin-transform-typescript@npm:^7.28.5, @babel/plugin-transform-typescript@npm:^7.5.0": version: 7.28.6 resolution: "@babel/plugin-transform-typescript@npm:7.28.6" dependencies: @@ -1692,6 +2672,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typescript@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-typescript@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.29.7 + "@babel/helper-create-class-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.29.7 + "@babel/plugin-syntax-typescript": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e95bce53fa2add836eec5ef5221e260cfa4ab889a146f7ba5e29cbd42bfe3183cb94e40b49bfb0d14a75f233982723903d3efad0f528b835ce771e38bd365440 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.27.1" @@ -1703,6 +2698,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-escapes@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cf337bf93a2e76aa82acb60d8a8a567225744cf7f42ffa4dde4c177aef54250f4067db38b8ab2c26f20cf2a589822242891ba8b91739a705f618bf6a4eeca7ff + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-property-regex@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.28.6" @@ -1715,7 +2721,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:7.27.1, @babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.24.7, @babel/plugin-transform-unicode-regex@npm:^7.27.1": +"@babel/plugin-transform-unicode-property-regex@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.29.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 03ee0b5d27eee08ba71bc09e919eb648094123985b7adc7dc875e4172100596a47ab68337abf6814cbd3140c6552cf1044135eb0ec1ec78345e1270e5e6aabba + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.24.7, @babel/plugin-transform-unicode-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-unicode-regex@npm:7.27.1" dependencies: @@ -1727,6 +2745,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-regex@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.29.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1ade0672ae5bbbf2ec1ea0a8de1b5d804ae414283215620097ab21cf7f05dae8916f5b0548a18c6f080ec17135018f5edd2d38f8fa9ca052af570cab5c712786 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-sets-regex@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.28.6" @@ -1739,6 +2769,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-sets-regex@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.29.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 680c22e2a63bffbf6798b0c2f599b06beb7ea4d29ee37a56c9192014143d396c479b12783d9c343e107fa491aeeb65b1ca774fd76825ffb306eef7fb5e7b4b2c + languageName: node + linkType: hard + "@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.12.11, @babel/preset-env@npm:^7.16.4, @babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.25.3, @babel/preset-env@npm:^7.25.9": version: 7.28.6 resolution: "@babel/preset-env@npm:7.28.6" @@ -1819,6 +2861,87 @@ __metadata: languageName: node linkType: hard +"@babel/preset-env@npm:^7.28.0": + version: 7.29.7 + resolution: "@babel/preset-env@npm:7.29.7" + dependencies: + "@babel/compat-data": ^7.29.7 + "@babel/helper-compilation-targets": ^7.29.7 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-validator-option": ^7.29.7 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.29.7 + "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.29.7 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.29.7 + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": ^7.29.7 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.29.7 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.29.7 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-import-assertions": ^7.29.7 + "@babel/plugin-syntax-import-attributes": ^7.29.7 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.29.7 + "@babel/plugin-transform-async-generator-functions": ^7.29.7 + "@babel/plugin-transform-async-to-generator": ^7.29.7 + "@babel/plugin-transform-block-scoped-functions": ^7.29.7 + "@babel/plugin-transform-block-scoping": ^7.29.7 + "@babel/plugin-transform-class-properties": ^7.29.7 + "@babel/plugin-transform-class-static-block": ^7.29.7 + "@babel/plugin-transform-classes": ^7.29.7 + "@babel/plugin-transform-computed-properties": ^7.29.7 + "@babel/plugin-transform-destructuring": ^7.29.7 + "@babel/plugin-transform-dotall-regex": ^7.29.7 + "@babel/plugin-transform-duplicate-keys": ^7.29.7 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.29.7 + "@babel/plugin-transform-dynamic-import": ^7.29.7 + "@babel/plugin-transform-explicit-resource-management": ^7.29.7 + "@babel/plugin-transform-exponentiation-operator": ^7.29.7 + "@babel/plugin-transform-export-namespace-from": ^7.29.7 + "@babel/plugin-transform-for-of": ^7.29.7 + "@babel/plugin-transform-function-name": ^7.29.7 + "@babel/plugin-transform-json-strings": ^7.29.7 + "@babel/plugin-transform-literals": ^7.29.7 + "@babel/plugin-transform-logical-assignment-operators": ^7.29.7 + "@babel/plugin-transform-member-expression-literals": ^7.29.7 + "@babel/plugin-transform-modules-amd": ^7.29.7 + "@babel/plugin-transform-modules-commonjs": ^7.29.7 + "@babel/plugin-transform-modules-systemjs": ^7.29.7 + "@babel/plugin-transform-modules-umd": ^7.29.7 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.29.7 + "@babel/plugin-transform-new-target": ^7.29.7 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.29.7 + "@babel/plugin-transform-numeric-separator": ^7.29.7 + "@babel/plugin-transform-object-rest-spread": ^7.29.7 + "@babel/plugin-transform-object-super": ^7.29.7 + "@babel/plugin-transform-optional-catch-binding": ^7.29.7 + "@babel/plugin-transform-optional-chaining": ^7.29.7 + "@babel/plugin-transform-parameters": ^7.29.7 + "@babel/plugin-transform-private-methods": ^7.29.7 + "@babel/plugin-transform-private-property-in-object": ^7.29.7 + "@babel/plugin-transform-property-literals": ^7.29.7 + "@babel/plugin-transform-regenerator": ^7.29.7 + "@babel/plugin-transform-regexp-modifiers": ^7.29.7 + "@babel/plugin-transform-reserved-words": ^7.29.7 + "@babel/plugin-transform-shorthand-properties": ^7.29.7 + "@babel/plugin-transform-spread": ^7.29.7 + "@babel/plugin-transform-sticky-regex": ^7.29.7 + "@babel/plugin-transform-template-literals": ^7.29.7 + "@babel/plugin-transform-typeof-symbol": ^7.29.7 + "@babel/plugin-transform-unicode-escapes": ^7.29.7 + "@babel/plugin-transform-unicode-property-regex": ^7.29.7 + "@babel/plugin-transform-unicode-regex": ^7.29.7 + "@babel/plugin-transform-unicode-sets-regex": ^7.29.7 + "@babel/preset-modules": 0.1.6-no-external-plugins + babel-plugin-polyfill-corejs2: ^0.4.15 + babel-plugin-polyfill-corejs3: ^0.14.0 + babel-plugin-polyfill-regenerator: ^0.6.6 + core-js-compat: ^3.48.0 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 36deae2ea4329e8490fc4507e6747e07c4cff9df1f1397aa99fae16e03a5195f9c7a3494f571ddfb5002bbc0e18832a8cc711831d686896312fa127823f7fedc + languageName: node + linkType: hard + "@babel/preset-flow@npm:^7.12.1, @babel/preset-flow@npm:^7.13.13, @babel/preset-flow@npm:^7.25.9": version: 7.27.1 resolution: "@babel/preset-flow@npm:7.27.1" @@ -1832,6 +2955,19 @@ __metadata: languageName: node linkType: hard +"@babel/preset-flow@npm:^7.28.0": + version: 7.29.7 + resolution: "@babel/preset-flow@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-validator-option": ^7.29.7 + "@babel/plugin-transform-flow-strip-types": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 562fe8494d7e8e3a894cb9b1213acdc418b42d54f0fe316e97192bb235c8dfe7cde58d351057b9f7896bdc5ff42b605863c00cf6df952d5789cf3d865ab723ba + languageName: node + linkType: hard + "@babel/preset-modules@npm:0.1.6-no-external-plugins": version: 0.1.6-no-external-plugins resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" @@ -1861,18 +2997,19 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:7.27.1": - version: 7.27.1 - resolution: "@babel/preset-typescript@npm:7.27.1" +"@babel/preset-react@npm:^7.28.0": + version: 7.29.7 + resolution: "@babel/preset-react@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": ^7.27.1 - "@babel/helper-validator-option": ^7.27.1 - "@babel/plugin-syntax-jsx": ^7.27.1 - "@babel/plugin-transform-modules-commonjs": ^7.27.1 - "@babel/plugin-transform-typescript": ^7.27.1 + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-validator-option": ^7.29.7 + "@babel/plugin-transform-react-display-name": ^7.29.7 + "@babel/plugin-transform-react-jsx": ^7.29.7 + "@babel/plugin-transform-react-jsx-development": ^7.29.7 + "@babel/plugin-transform-react-pure-annotations": ^7.29.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 38020f1b23e88ec4fbffd5737da455d8939244bddfb48a2516aef93fb5947bd9163fb807ce6eff3e43fa5ffe9113aa131305fef0fb5053998410bbfcfe6ce0ec + checksum: ec9d4d418df3825674ef807020b90a93d6bf6b786a723a59e673c3a32e31927b2f8a50071a17a50fff632f41eda8933e4196974130f2a5cdeb1a040fb2b62b76 languageName: node linkType: hard @@ -1891,6 +3028,21 @@ __metadata: languageName: node linkType: hard +"@babel/preset-typescript@npm:^7.27.1, @babel/preset-typescript@npm:^7.28.0": + version: 7.29.7 + resolution: "@babel/preset-typescript@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": ^7.29.7 + "@babel/helper-validator-option": ^7.29.7 + "@babel/plugin-syntax-jsx": ^7.29.7 + "@babel/plugin-transform-modules-commonjs": ^7.29.7 + "@babel/plugin-transform-typescript": ^7.29.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f2f58cbbbdb84f6b27e20c7835fbd1e2474e7e6075c97a6609c606139bc782c995f0c5eb5b64f5b613997f8a463f3b4cea10cd1f0d706a66bf1aa41fea666725 + languageName: node + linkType: hard + "@babel/register@npm:^7.13.16": version: 7.28.6 resolution: "@babel/register@npm:7.28.6" @@ -1933,7 +3085,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.4, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.7.2": +"@babel/template@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/template@npm:7.29.7" + dependencies: + "@babel/code-frame": ^7.29.7 + "@babel/parser": ^7.29.7 + "@babel/types": ^7.29.7 + checksum: 521eb6a1fd4735074ca8dac0d70810860a80edf3bf78105851571993cd13701a2041987e7398ccc9376eb6235ea1258bf494ccaccf3b67fa98dbe954154a2e93 + languageName: node + linkType: hard + +"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.7.2": version: 7.28.6 resolution: "@babel/traverse@npm:7.28.6" dependencies: @@ -1948,6 +3111,36 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/traverse@npm:7.29.0" + dependencies: + "@babel/code-frame": ^7.29.0 + "@babel/generator": ^7.29.0 + "@babel/helper-globals": ^7.28.0 + "@babel/parser": ^7.29.0 + "@babel/template": ^7.28.6 + "@babel/types": ^7.29.0 + debug: ^4.3.1 + checksum: fbb5085aa525b5d4ecd9fe2f5885d88413fff6ad9c0fac244c37f96069b6d3af9ce825750cd16af1d97d26fa3d354b38dbbdb5f31430e0d99ed89660ab65430e + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/traverse@npm:7.29.7" + dependencies: + "@babel/code-frame": ^7.29.7 + "@babel/generator": ^7.29.7 + "@babel/helper-globals": ^7.29.7 + "@babel/parser": ^7.29.7 + "@babel/template": ^7.29.7 + "@babel/types": ^7.29.7 + debug: ^4.3.1 + checksum: 6c4508fd2a308a6a41fbf40bd2590bccfdc3903de51c640a928c49e810220b9e27323a083cda604d44a27449b57265a701b549de01f479611390863734b4fd38 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.28.6 resolution: "@babel/types@npm:7.28.6" @@ -1958,6 +3151,26 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/types@npm:7.29.0" + dependencies: + "@babel/helper-string-parser": ^7.27.1 + "@babel/helper-validator-identifier": ^7.28.5 + checksum: 83f190438e94c22b2574aaeef7501830311ef266eaabfb06523409f64e2fe855e522951607085d71cad286719adef14e1ba37b671f334a7cd25b0f8506a01e0b + languageName: node + linkType: hard + +"@babel/types@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/types@npm:7.29.7" + dependencies: + "@babel/helper-string-parser": ^7.29.7 + "@babel/helper-validator-identifier": ^7.29.7 + checksum: 71c46837d22c5c63a5ed571f3b68b4261ecabfc3d4be7251b336ccbd26bc52752ae68ae6d16d24ea512311b78b6f54efdfb00dde87a81a4dc3d19e4a45f05b20 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -6015,9 +7228,9 @@ __metadata: linkType: hard "@nevware21/ts-utils@npm:>= 0.10.4 < 2.x, @nevware21/ts-utils@npm:>= 0.11.8 < 2.x, @nevware21/ts-utils@npm:>= 0.12.2 < 2.x, @nevware21/ts-utils@npm:>= 0.9.4 < 2.x": - version: 0.12.5 - resolution: "@nevware21/ts-utils@npm:0.12.5" - checksum: 342d762fe6e546ddc08a7a8521a85c6181f1858b247eb6cce3303639f074b59c166a4b867beceecf81a7ce3a28335a2fc3d841ec4a9743b5ab5565ebf3b193f2 + version: 0.14.0 + resolution: "@nevware21/ts-utils@npm:0.14.0" + checksum: 28b2277dcf1af4888a732ca066c8cb16ea62aa41601abd4e7afb6082abb262bef4a4d453e1457224f32e22cb8342c8282f6f623f2a9924bcfd97fbb5bdfec296 languageName: node linkType: hard @@ -8462,8 +9675,13 @@ __metadata: version: 0.0.0-use.local resolution: "@shopify/react-native-skia@workspace:packages/skia" dependencies: - "@babel/plugin-proposal-nullish-coalescing-operator": 7.18.6 + "@babel/plugin-transform-class-properties": ^7.28.0 "@babel/plugin-transform-explicit-resource-management": ^7.28.0 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.28.0 + "@babel/preset-env": ^7.28.0 + "@babel/preset-flow": ^7.28.0 + "@babel/preset-react": ^7.28.0 + "@babel/preset-typescript": ^7.28.0 "@blazediff/core": ^1.4.0 "@semantic-release/commit-analyzer": ^13.0.0 "@semantic-release/exec": ^7.0.3 @@ -8487,21 +9705,21 @@ __metadata: react: 19.0.0 react-native: 0.83.1 react-native-builder-bob: 0.18.2 - react-native-reanimated: ^4.2.1 - react-native-skia-graphite-android: 147.1.1 - react-native-skia-graphite-apple-ios: 147.1.1 - react-native-skia-graphite-apple-macos: 147.1.1 - react-native-skia-graphite-headers: 147.1.1 - react-native-worklets: ^0.7.0 + react-native-reanimated: 4.3.1 + react-native-skia-graphite-android: 150.0.0 + react-native-skia-graphite-apple-ios: 150.0.0 + react-native-skia-graphite-apple-macos: 150.0.0 + react-native-skia-graphite-headers: 150.0.0 + react-native-worklets: 0.8.3 react-reconciler: 0.31.0 rimraf: 3.0.2 semantic-release: ^24.1.0 semantic-release-yarn: ^3.0.2 - tar: ^7.5.11 + tar: ^7.5.16 ts-jest: 29.4.3 tsx: ^4.21.0 typescript: ^5.2.2 - ws: 8.18.0 + ws: 8.21.0 peerDependencies: react: ">=19.0" react-native: ">=0.78" @@ -8512,7 +9730,6 @@ __metadata: react-native-reanimated: optional: true bin: - install-skia: scripts/install-libs.js setup-skia-web: scripts/setup-canvaskit.js languageName: unknown linkType: soft @@ -9108,6 +10325,48 @@ __metadata: languageName: node linkType: hard +"@turbo/darwin-64@npm:2.9.14": + version: 2.9.14 + resolution: "@turbo/darwin-64@npm:2.9.14" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@turbo/darwin-arm64@npm:2.9.14": + version: 2.9.14 + resolution: "@turbo/darwin-arm64@npm:2.9.14" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@turbo/linux-64@npm:2.9.14": + version: 2.9.14 + resolution: "@turbo/linux-64@npm:2.9.14" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@turbo/linux-arm64@npm:2.9.14": + version: 2.9.14 + resolution: "@turbo/linux-arm64@npm:2.9.14" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@turbo/windows-64@npm:2.9.14": + version: 2.9.14 + resolution: "@turbo/windows-64@npm:2.9.14" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@turbo/windows-arm64@npm:2.9.14": + version: 2.9.14 + resolution: "@turbo/windows-arm64@npm:2.9.14" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@tybys/wasm-util@npm:^0.10.0": version: 0.10.1 resolution: "@tybys/wasm-util@npm:0.10.1" @@ -11610,6 +12869,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.15": + version: 0.4.17 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.17" + dependencies: + "@babel/compat-data": ^7.28.6 + "@babel/helper-define-polyfill-provider": ^0.6.8 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 945f80f413706831b665322690c655f3782ca6fd8c1fbcccaf449d976ebe6151677fb9331442c72e85eae9a05d5e6633be4e15f75d3e788762d825d31f2964ce + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.13.0": version: 0.13.0 resolution: "babel-plugin-polyfill-corejs3@npm:0.13.0" @@ -11622,6 +12894,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs3@npm:^0.14.0": + version: 0.14.2 + resolution: "babel-plugin-polyfill-corejs3@npm:0.14.2" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.8 + core-js-compat: ^3.48.0 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 4bcaf4da658aaeb7a6534e6b65a6a45539c5f53bec596fefd0b44eebd249e5db8bbf239a421ceaff5933a0a7eee11e45791e4f4e04886cdf47bb1d4b1a8015aa + languageName: node + linkType: hard + "babel-plugin-polyfill-regenerator@npm:^0.6.5": version: 0.6.6 resolution: "babel-plugin-polyfill-regenerator@npm:0.6.6" @@ -11633,6 +12917,17 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-regenerator@npm:^0.6.6": + version: 0.6.8 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.8" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.8 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 974464353d6f974e97673385aff616a913c0b76039eab8c5317a2d07c661e080f3dcc213e86f3eae40010172a27ab793cda7a290a8a899716f9a22df9b1d92d2 + languageName: node + linkType: hard + "babel-plugin-syntax-hermes-parser@npm:0.29.1": version: 0.29.1 resolution: "babel-plugin-syntax-hermes-parser@npm:0.29.1" @@ -13509,13 +14804,6 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:2.0.0, convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 - languageName: node - linkType: hard - "convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" @@ -13523,6 +14811,13 @@ __metadata: languageName: node linkType: hard +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + languageName: node + linkType: hard + "cookie-signature@npm:~1.0.6": version: 1.0.7 resolution: "cookie-signature@npm:1.0.7" @@ -13562,6 +14857,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.48.0": + version: 3.49.0 + resolution: "core-js-compat@npm:3.49.0" + dependencies: + browserslist: ^4.28.1 + checksum: 21afa75a64b30810f4cc61e90758346e8df6bd20dd8da5afe08fc041b5fb766cf7c41c9cbc63f8fb96bef4e4a2a90eb6f2d7bbd20ac53b8ff23a58bc87e40231 + languageName: node + linkType: hard + "core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.43.0": version: 3.48.0 resolution: "core-js-pure@npm:3.48.0" @@ -14819,8 +16123,8 @@ __metadata: react-dom: 19.0.0 react-native: 0.83.1 react-native-gesture-handler: ^2.24.0 - react-native-reanimated: ^4.2.1 - react-native-worklets: ^0.7.0 + react-native-reanimated: 4.3.1 + react-native-worklets: 0.8.3 ts-morph: ^25.0.1 ts-node: ^10.9.2 twoslash-cli: 1.3.24 @@ -16734,7 +18038,7 @@ __metadata: version: 0.0.0-use.local resolution: "example@workspace:apps/example" dependencies: - "@babel/core": ^7.25.2 + "@babel/core": ^7.29.6 "@babel/plugin-proposal-explicit-resource-management": ^7.27.4 "@babel/preset-env": ^7.25.3 "@babel/runtime": ^7.25.0 @@ -16769,14 +18073,14 @@ __metadata: react-native: 0.83.1 react-native-gesture-handler: ^2.24.0 react-native-macos: ^0.81.1 - react-native-reanimated: ^4.2.1 + react-native-reanimated: 4.3.1 react-native-safe-area-context: ^5.2.0 react-native-screens: ^4.10.0 react-native-svg: "patch:react-native-svg@npm%3A15.14.0#../../.yarn/patches/react-native-svg-npm-15.14.0-macos-uiimage-fix.patch" react-native-test-app: 4.4.7 react-native-web: ^0.21.2 react-native-windows: ^0.75.0 - react-native-worklets: ^0.7.0 + react-native-worklets: 0.8.3 react-test-renderer: 19.0.0 typescript: ^5.2.2 languageName: unknown @@ -17136,9 +18440,9 @@ __metadata: linkType: hard "fast-uri@npm:^3.0.1": - version: 3.1.0 - resolution: "fast-uri@npm:3.1.0" - checksum: daab0efd3548cc53d0db38ecc764d125773f8bd70c34552ff21abdc6530f26fa4cb1771f944222ca5e61a0a1a85d01a104848ff88c61736de445d97bd616ea7e + version: 3.1.2 + resolution: "fast-uri@npm:3.1.2" + checksum: 73a6e1b04e6fcf7a09ed93316e72d643ef177d26969973784690708612141f2c2f74657120bab75bf5bbc26bfd535a32c90a8c3bc50aca50584cf01f98815afe languageName: node linkType: hard @@ -17570,12 +18874,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.0.0": - version: 1.15.11 - resolution: "follow-redirects@npm:1.15.11" + version: 1.16.0 + resolution: "follow-redirects@npm:1.16.0" peerDependenciesMeta: debug: optional: true - checksum: 20bf55e9504f59e6cc3743ba27edb2ebf41edea1baab34799408f2c050f73f0c612728db21c691276296d2795ea8a812dc532a98e8793619fcab91abe06d017f + checksum: e90dce4607b1f6b8b9883287f912585573c19088209ad82341d550a795b4ba514522b73b1b340cf618279df27975cd46504d09149be60291ba6767384c1fd8f8 languageName: node linkType: hard @@ -17637,15 +18941,15 @@ __metadata: linkType: hard "form-data@npm:^3.0.0": - version: 3.0.4 - resolution: "form-data@npm:3.0.4" + version: 3.0.5 + resolution: "form-data@npm:3.0.5" dependencies: asynckit: ^0.4.0 combined-stream: ^1.0.8 es-set-tostringtag: ^2.1.0 - hasown: ^2.0.2 + hasown: ^2.0.4 mime-types: ^2.1.35 - checksum: 989005f575b9a14a30144df1745ef60c64cf901e648ae198bf63e5caeaf8dacf595a85dfd56f90a845eceb14fe1bea58b3845e8171337a4cf72781fa19867efc + checksum: 03b753d26cd7da91bafbdf40078cb9750b91f204377a228c94b538fcc35ff7df476f1f8c0d2d8acfb7e4cbfb45894ac945ff2ba40908d842cf0d7123d583cee4 languageName: node linkType: hard @@ -18536,6 +19840,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.4": + version: 2.0.4 + resolution: "hasown@npm:2.0.4" + dependencies: + function-bind: ^1.1.2 + checksum: 4bd8f916b629e06324853593ffbdd45e200022952a85ad0c967f3bd4c2e4c7e1f9a9766fbe6186f60bd394e0afc73e719730caa1da15cd9bd832b7cdf53fd26c + languageName: node + linkType: hard + "hast-util-from-parse5@npm:^8.0.0": version: 8.0.3 resolution: "hast-util-from-parse5@npm:8.0.3" @@ -19579,9 +20892,9 @@ __metadata: linkType: hard "ip-address@npm:^10.0.1": - version: 10.1.0 - resolution: "ip-address@npm:10.1.0" - checksum: 76b1abcdf52a32e2e05ca1f202f3a8ab8547e5651a9233781b330271bd7f1a741067748d71c4cbb9d9906d9f1fa69e7ddc8b4a11130db4534fdab0e908c84e0d + version: 10.2.0 + resolution: "ip-address@npm:10.2.0" + checksum: 3ffba04dc4cdaf81ed2ed6edc47eee1494bb97550ef73f1918ca28405d175c03efa416b8337e868123b08c2cc677e3a07c5ce03eda3b1aeb2741c149bd37ddf9 languageName: node linkType: hard @@ -22473,12 +23786,12 @@ __metadata: linkType: hard "launch-editor@npm:^2.6.0, launch-editor@npm:^2.6.1": - version: 2.12.0 - resolution: "launch-editor@npm:2.12.0" + version: 2.14.1 + resolution: "launch-editor@npm:2.14.1" dependencies: picocolors: ^1.1.1 - shell-quote: ^1.8.3 - checksum: b1aa1b92ef4e720d1edd7f80affb90b2fa1cc2c41641cf80158940698c18a4b6a67e2a7cb060547712e858f0ec1a7c8c39f605e0eb299f516a6184f4e680ffc8 + shell-quote: ^1.8.4 + checksum: 232ea8a80146e7fec6c8ece7ebb600d58a82e9938f36111194980188d276935f424754b18e37d5b098f596d30580def723b231e093c27c3bcd703418278afc4c languageName: node linkType: hard @@ -29084,11 +30397,11 @@ __metadata: linkType: hard "qs@npm:^6.12.3, qs@npm:~6.14.0": - version: 6.14.1 - resolution: "qs@npm:6.14.1" + version: 6.14.2 + resolution: "qs@npm:6.14.2" dependencies: side-channel: ^1.1.0 - checksum: 7fffab0344fd75bfb6b8c94b8ba17f3d3e823d25b615900f68b473c3a078e497de8eaa08f709eaaa170eedfcee50638a7159b98abef7d8c89c2ede79291522f2 + checksum: e613d0b8d02cec33c20d1a6015ec2a5db614bf3dd2ffd9bde08bc34a76419213f291c91fb00519a3d8a74e4727f565b350f8394f9d381bc64e6da663d9e031d4 languageName: node linkType: hard @@ -29471,13 +30784,13 @@ __metadata: languageName: node linkType: hard -"react-native-is-edge-to-edge@npm:1.2.1": - version: 1.2.1 - resolution: "react-native-is-edge-to-edge@npm:1.2.1" +"react-native-is-edge-to-edge@npm:^1.3.1": + version: 1.3.1 + resolution: "react-native-is-edge-to-edge@npm:1.3.1" peerDependencies: react: "*" react-native: "*" - checksum: 8fb6d8ab7b953c7d7cec8c987cef24f1c5348a293a85cb49c7c53b54ef110c0ca746736ae730e297603c8c76020df912e93915fb17518c4f2f91143757177aba + checksum: dc82d54e0bf8f89208a538bb0d14e4891af6efae27ed5b7b21be683a72c38c5219ab9be1ea9bd40aa1c905d481174e649d0b71aeceaa9946e6c707f251568282 languageName: node linkType: hard @@ -29533,17 +30846,17 @@ __metadata: languageName: node linkType: hard -"react-native-reanimated@npm:^4.2.1": - version: 4.2.2 - resolution: "react-native-reanimated@npm:4.2.2" +"react-native-reanimated@npm:4.3.1": + version: 4.3.1 + resolution: "react-native-reanimated@npm:4.3.1" dependencies: - react-native-is-edge-to-edge: 1.2.1 - semver: 7.7.3 + react-native-is-edge-to-edge: ^1.3.1 + semver: ^7.7.3 peerDependencies: react: "*" - react-native: "*" - react-native-worklets: ">=0.7.0" - checksum: 2497901472996aece1e350ffa02233ad0f9f7a16e389a201246474fae872f3ec9834a0b7c3801241d5844b9f7dbf0309d868728b3b35555de5d1836b3f527644 + react-native: 0.81 - 0.85 + react-native-worklets: 0.8.x + checksum: 2649672f72dbd52aa612e5c9bcf8ab2dc256d614ed3cd21cd44ba97b26eefd30e0be629f5aec6ba209ccc07aad46831866b69f6bf51fb9708d49431bd608507a languageName: node linkType: hard @@ -29570,31 +30883,31 @@ __metadata: languageName: node linkType: hard -"react-native-skia-graphite-android@npm:147.1.1": - version: 147.1.1 - resolution: "react-native-skia-graphite-android@npm:147.1.1" - checksum: 7b343e6a94616c8feb539722f5deab81ae7750bab7e5feb58515ee1238967496cda7f60b09d5ddc5d4771a08f302ecad4a38092224bb66a52ebcbe46d8f2f6c7 +"react-native-skia-graphite-android@npm:150.0.0": + version: 150.0.0 + resolution: "react-native-skia-graphite-android@npm:150.0.0" + checksum: 0dfbd7c783a08605da646ba77ab6e1a758e348013b53b302fc294d00b3f025f3e4a8667d4d9e5ad573867379ca3750d11d738fa78d9a591da3b55845ebfd32ea languageName: node linkType: hard -"react-native-skia-graphite-apple-ios@npm:147.1.1": - version: 147.1.1 - resolution: "react-native-skia-graphite-apple-ios@npm:147.1.1" - checksum: 52e922c1be7188a279a906d97995093551fe2ba195c73af29725b4fd75c88a19388fa54e02763e991f3c4c073c6a77a209ccacdedba3de2fba0cb5e990005ea4 +"react-native-skia-graphite-apple-ios@npm:150.0.0": + version: 150.0.0 + resolution: "react-native-skia-graphite-apple-ios@npm:150.0.0" + checksum: 76ff0021391b150ec97597b104a3bb3ce0ff0db2ef392f4330137c8a3fba945c545c08253a057a15daaed71a8860ce9bb0685fd4d24f7635b0eca65deb24d765 languageName: node linkType: hard -"react-native-skia-graphite-apple-macos@npm:147.1.1": - version: 147.1.1 - resolution: "react-native-skia-graphite-apple-macos@npm:147.1.1" - checksum: 56b6a70a7d146fb40b179726b1a0618fa89a9e8907111ca5e3bee6f6822294ac40a791cfc090278b09d0ee334b2baafe2c5d69af146a21210ea410941a865be9 +"react-native-skia-graphite-apple-macos@npm:150.0.0": + version: 150.0.0 + resolution: "react-native-skia-graphite-apple-macos@npm:150.0.0" + checksum: 141f83d6b354ebaac76ca172b29a756a0966e3bbf18ee65c45af47d613398a286e2d77ba9723f94503885eb0dc7866be17f38f44d5899860427a4b9215b620a4 languageName: node linkType: hard -"react-native-skia-graphite-headers@npm:147.1.1": - version: 147.1.1 - resolution: "react-native-skia-graphite-headers@npm:147.1.1" - checksum: cb64710b74c8ea44e426e14266a2e4319639f142d9dcaf1fbbb76e2810c3777a66b7c0619066670b26babdee2287abe50b51370174267b19f1b1bd86ebdb79b8 +"react-native-skia-graphite-headers@npm:150.0.0": + version: 150.0.0 + resolution: "react-native-skia-graphite-headers@npm:150.0.0" + checksum: 50fce5f1d647c80a3f560e5f2ae7aeaeb7ed3cb54b02ce6f967eeff7b9c701bd454aaf00cfb1eee5190ffaf76c0fa25a4368a06884e4e63cbd1717bd766274fa languageName: node linkType: hard @@ -29605,7 +30918,7 @@ __metadata: eas-cli: 18.4.0 playwright: 1.59.0 react-native-test-app: ^4.2.0 - turbo: ^2.1.1 + turbo: ^2.9.14 languageName: unknown linkType: soft @@ -29805,26 +31118,27 @@ __metadata: languageName: node linkType: hard -"react-native-worklets@npm:^0.7.0": - version: 0.7.4 - resolution: "react-native-worklets@npm:0.7.4" - dependencies: - "@babel/plugin-transform-arrow-functions": 7.27.1 - "@babel/plugin-transform-class-properties": 7.27.1 - "@babel/plugin-transform-classes": 7.28.4 - "@babel/plugin-transform-nullish-coalescing-operator": 7.27.1 - "@babel/plugin-transform-optional-chaining": 7.27.1 - "@babel/plugin-transform-shorthand-properties": 7.27.1 - "@babel/plugin-transform-template-literals": 7.27.1 - "@babel/plugin-transform-unicode-regex": 7.27.1 - "@babel/preset-typescript": 7.27.1 - convert-source-map: 2.0.0 - semver: 7.7.3 +"react-native-worklets@npm:0.8.3": + version: 0.8.3 + resolution: "react-native-worklets@npm:0.8.3" + dependencies: + "@babel/plugin-transform-arrow-functions": ^7.27.1 + "@babel/plugin-transform-class-properties": ^7.27.1 + "@babel/plugin-transform-classes": ^7.28.4 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.27.1 + "@babel/plugin-transform-optional-chaining": ^7.27.1 + "@babel/plugin-transform-shorthand-properties": ^7.27.1 + "@babel/plugin-transform-template-literals": ^7.27.1 + "@babel/plugin-transform-unicode-regex": ^7.27.1 + "@babel/preset-typescript": ^7.27.1 + convert-source-map: ^2.0.0 + semver: ^7.7.3 peerDependencies: "@babel/core": "*" + "@react-native/metro-config": "*" react: "*" - react-native: "*" - checksum: eb92247e208c6ee641dd639319628213aa2f22249b2fb09d5b9b0ea8a13e7bbb906eabc9dfebfe00404eec5d3e233378cc4991b9a43565338a4f083a68b7bd5f + react-native: 0.81 - 0.85 + checksum: a44e50fc0ec765612df3f6b6104444d28e94634f3642b689df2638c5c9187ddadd7069953bb9d9a68ca253422e6630db36ffcfee80eea5f71f73cc99539307fd languageName: node linkType: hard @@ -30669,7 +31983,7 @@ __metadata: version: 0.0.0-use.local resolution: "remotion-skia@workspace:apps/remotion" dependencies: - "@babel/core": ^7.20.2 + "@babel/core": ^7.29.6 "@babel/plugin-transform-flow-strip-types": ^7.25.9 "@babel/preset-env": ^7.20.2 "@babel/preset-flow": ^7.25.9 @@ -31532,15 +32846,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.7.3, semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.7.1, semver@npm:^7.7.2, semver@npm:^7.7.3": - version: 7.7.3 - resolution: "semver@npm:7.7.3" - bin: - semver: bin/semver.js - checksum: f013a3ee4607857bcd3503b6ac1d80165f7f8ea94f5d55e2d3e33df82fce487aa3313b987abf9b39e0793c83c9fc67b76c36c067625141a9f6f704ae0ea18db2 - languageName: node - linkType: hard - "semver@npm:^5.5.0, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" @@ -31559,6 +32864,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.1.3, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.7.1, semver@npm:^7.7.2, semver@npm:^7.7.3": + version: 7.7.3 + resolution: "semver@npm:7.7.3" + bin: + semver: bin/semver.js + checksum: f013a3ee4607857bcd3503b6ac1d80165f7f8ea94f5d55e2d3e33df82fce487aa3313b987abf9b39e0793c83c9fc67b76c36c067625141a9f6f704ae0ea18db2 + languageName: node + linkType: hard + "semver@npm:^7.6.2": version: 7.7.4 resolution: "semver@npm:7.7.4" @@ -31880,10 +33194,10 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.6.1, shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.3": - version: 1.8.3 - resolution: "shell-quote@npm:1.8.3" - checksum: 550dd84e677f8915eb013d43689c80bb114860649ec5298eb978f40b8f3d4bc4ccb072b82c094eb3548dc587144bb3965a8676f0d685c1cf4c40b5dc27166242 +"shell-quote@npm:^1.6.1, shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.4": + version: 1.8.4 + resolution: "shell-quote@npm:1.8.4" + checksum: 082dc836baa8ade01144ee3068af487ea45ba570ea6ab13a5eddc11ab16a976b8857b51ef2caf7dc9a1e173ff0aea685b8f78b4f6f5a0a1ef24c7b17c51350e2 languageName: node linkType: hard @@ -33318,16 +34632,16 @@ __metadata: languageName: node linkType: hard -"tar@npm:^7.5.11": - version: 7.5.11 - resolution: "tar@npm:7.5.11" +"tar@npm:^7.5.16": + version: 7.5.16 + resolution: "tar@npm:7.5.16" dependencies: "@isaacs/fs-minipass": ^4.0.0 chownr: ^3.0.0 minipass: ^7.1.2 minizlib: ^3.1.0 yallist: ^5.0.0 - checksum: 7f6785a85dd571b88985e493ec86f692962cbfa7b4017961fddfd2241e0ff3bcd89ed347f4c02b5433aa22b30cca5566e8711543df054fda8fd12425f505378f + checksum: 9b7f886f5ce8681a7430f80b9b377bfa498e6feb957b9afe6507db08e59d309f8546b7f76a0c2e47bdb54da4602575a5c7519e287fe94de8302e635032fc94f1 languageName: node linkType: hard @@ -33982,74 +35296,32 @@ __metadata: languageName: node linkType: hard -"turbo-darwin-64@npm:2.8.0": - version: 2.8.0 - resolution: "turbo-darwin-64@npm:2.8.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"turbo-darwin-arm64@npm:2.8.0": - version: 2.8.0 - resolution: "turbo-darwin-arm64@npm:2.8.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"turbo-linux-64@npm:2.8.0": - version: 2.8.0 - resolution: "turbo-linux-64@npm:2.8.0" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"turbo-linux-arm64@npm:2.8.0": - version: 2.8.0 - resolution: "turbo-linux-arm64@npm:2.8.0" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"turbo-windows-64@npm:2.8.0": - version: 2.8.0 - resolution: "turbo-windows-64@npm:2.8.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"turbo-windows-arm64@npm:2.8.0": - version: 2.8.0 - resolution: "turbo-windows-arm64@npm:2.8.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"turbo@npm:^2.1.1": - version: 2.8.0 - resolution: "turbo@npm:2.8.0" - dependencies: - turbo-darwin-64: 2.8.0 - turbo-darwin-arm64: 2.8.0 - turbo-linux-64: 2.8.0 - turbo-linux-arm64: 2.8.0 - turbo-windows-64: 2.8.0 - turbo-windows-arm64: 2.8.0 +"turbo@npm:^2.9.14": + version: 2.9.14 + resolution: "turbo@npm:2.9.14" + dependencies: + "@turbo/darwin-64": 2.9.14 + "@turbo/darwin-arm64": 2.9.14 + "@turbo/linux-64": 2.9.14 + "@turbo/linux-arm64": 2.9.14 + "@turbo/windows-64": 2.9.14 + "@turbo/windows-arm64": 2.9.14 dependenciesMeta: - turbo-darwin-64: + "@turbo/darwin-64": optional: true - turbo-darwin-arm64: + "@turbo/darwin-arm64": optional: true - turbo-linux-64: + "@turbo/linux-64": optional: true - turbo-linux-arm64: + "@turbo/linux-arm64": optional: true - turbo-windows-64: + "@turbo/windows-64": optional: true - turbo-windows-arm64: + "@turbo/windows-arm64": optional: true bin: turbo: bin/turbo - checksum: 0880b6a4e769d9fa489775c6008a02be4effcee5ff045775049fa3d1dc27aa4aa6811e084a3d89a3129c0ad9f6b001849f3fd5fcaa277d93c7d677c4c8cd2263 + checksum: 8cc51fa1b82e6b3603c164a38aa1e99a6d1f27b1bedc8a47190fb56d1a5e69b5bae6c38df95b7fc99ca139ac73e3f6a0e1df150cbd629476a7128269307a2099 languageName: node linkType: hard @@ -34955,11 +36227,11 @@ __metadata: linkType: hard "uuid@npm:^11.0.0": - version: 11.1.0 - resolution: "uuid@npm:11.1.0" + version: 11.1.1 + resolution: "uuid@npm:11.1.1" bin: uuid: dist/esm/bin/uuid - checksum: 840f19758543c4631e58a29439e51b5b669d5f34b4dd2700b6a1d15c5708c7a6e0c3e2c8c4a2eae761a3a7caa7e9884d00c86c02622ba91137bd3deade6b4b4a + checksum: 1c1ea6ffc9fd02a343d77151734af65644ebf5bac733b59bdab85859cf793cf03ac8d60909fa19dcd2272e154b20734c464b667afd8bdac02b4da5e206079469 languageName: node linkType: hard @@ -35230,9 +36502,9 @@ __metadata: path-browserify: ^1.0.1 react: 19.0.0 react-dom: 19.0.0 - react-native-reanimated: ^4.2.1 + react-native-reanimated: 4.3.1 react-native-web: ^0.21.1 - react-native-worklets: ^0.7.0 + react-native-worklets: 0.8.3 react-scripts: 5.0.1 typescript: ^5.2.2 web-vitals: ^2.1.0 @@ -35392,8 +36664,8 @@ __metadata: linkType: hard "webpack-dev-server@npm:^5.2.2": - version: 5.2.3 - resolution: "webpack-dev-server@npm:5.2.3" + version: 5.2.4 + resolution: "webpack-dev-server@npm:5.2.4" dependencies: "@types/bonjour": ^3.5.13 "@types/connect-history-api-fallback": ^1.5.4 @@ -35432,7 +36704,7 @@ __metadata: optional: true bin: webpack-dev-server: bin/webpack-dev-server.js - checksum: 2b7f2096529945f578e86966d9a0994b0a87b82e3bb3a7cd1ccea2fb81aa95724473a88c9b2033ae3d2f799d13330342948ea77638029d10c8c0c746aac545f7 + checksum: 4e1b13dc170b9964e579e5703dd56e97c2fbb6b101586cfda56f58f1ea0327ea9fcb9e4f36ff6264ee02ab69298697df87bd9617716d9c8379d2a6dc22bb103f languageName: node linkType: hard @@ -36140,9 +37412,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:8.18.0": - version: 8.18.0 - resolution: "ws@npm:8.18.0" +"ws@npm:8.21.0": + version: 8.21.0 + resolution: "ws@npm:8.21.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -36151,7 +37423,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 + checksum: 83ff89ae011bc5c3c5605a45a0d50e12589143c7500ca4de83a8d43b3cd26e71f422cb3206fd1a9e6d541d666eeb66255c30d095d62d413b3c7afe5d2c5cb928 languageName: node linkType: hard

    ?=9 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­5Y`CTK_a{;{ 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 z�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