Skip to content

Conversation

@theashraf
Copy link
Member

Integrates ThorVG's partial rendering optimization via a dedicated
feature flag. Partial rendering tracks dirty regions and only redraws
changed portions of the scene

Changes:

  • Add tvg-partial feature to dotlottie-rs (included in dev bundle)
  • Add tvg-partial to dotlottie-ffi defaults (matches ThorVG upstream)
  • Configure THORVG_PARTIAL_RENDER_SUPPORT in build.rs
  • Add feature_partial_rendering input to build.yml workflow
  • Support tvg-partial in all platform builds (Apple, Android, WASM, Linux)

@changeset-bot
Copy link

changeset-bot bot commented Nov 4, 2025

⚠️ No Changeset found

Latest commit: c42d96f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Contributor

github-actions bot commented Nov 4, 2025

📊 Benchmark Results

dotlottie-rs

Benchmark Change Confidence Interval Status
load_animation_data +2.80% [+2.23%, +3.38%] ⚡ Slight change
state_machine_load +1.74% [+1.40%, +1.99%] ✅ No change
load_dotlottie_data +0.04% [-0.27%, +0.32%] ✅ No change
set_theme +0.01% [-0.32%, +0.28%] ✅ No change
animation_loop_frame_interpolation -1.20% [-4.31%, +1.88%] ✅ No change
state_machine_load_data -1.47% [-1.77%, -1.05%] ✅ No change
animation_loop_no_frame_interpolation -2.73% [-5.54%, +0.13%] ⚡ Slight change
load_animation_path -3.55% [-3.98%, -3.15%] ⚡ Slight change
How to interpret these results
  • Change: Estimated performance difference (negative = faster, positive = slower)
  • Confidence Interval: 95% confidence bounds for the change
  • Regression: Lower bound > +5% (confidently slower)
  • Improvement: Upper bound < -5% (confidently faster)

Criterion uses statistical analysis to account for noise and provide reliable comparisons.

@hermet
Copy link
Member

hermet commented Nov 4, 2025

@theashraf Hello, Please note that the partial rendering is not practically beneficial for dotlottie runtime at this time. Rather it may have downsides, such as increasing the binary size. You can add the support with an option but not recommend in enabling for production.

@theashraf
Copy link
Member Author

@theashraf Hello, Please note that the partial rendering is not practically beneficial for dotlottie runtime at this time. Rather it may have downsides, such as increasing the binary size. You can add the support with an option but not recommend in enabling for production.

Thanks @hermet! we'll introduce it as an optional feature for experimental builds, and it won’t be enabled in production

@theashraf theashraf force-pushed the feat/tvg-partial branch 2 times, most recently from 4a9afcb to 5c064b2 Compare November 5, 2025 05:08
   Integrates ThorVG's partial rendering optimization via a dedicated
   feature flag. Partial rendering tracks dirty regions and only redraws
   changed portions of the scene, improving performance

   Changes:
   - Add tvg-partial feature to dotlottie-rs (included in dev bundle)
   - Add tvg-partial to dotlottie-ffi defaults (matches ThorVG upstream)
   - Configure THORVG_PARTIAL_RENDER_SUPPORT in build.rs
   - Add feature_partial_rendering input to build.yml workflow
   - Support tvg-partial in all platform builds (Apple, Android, WASM, Linux)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants