Skip to content

Comments

@remotion/web-renderer: Skip very compressed transforms for performance#6202

Merged
JonnyBurger merged 1 commit intomainfrom
optimize-many-layers
Jan 3, 2026
Merged

@remotion/web-renderer: Skip very compressed transforms for performance#6202
JonnyBurger merged 1 commit intomainfrom
optimize-many-layers

Conversation

@JonnyBurger
Copy link
Member

No description provided.

Copilot AI review requested due to automatic review settings January 3, 2026 08:54
@vercel
Copy link
Contributor

vercel bot commented Jan 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
bugs Ready Ready Preview, Comment Jan 3, 2026 8:54am
remotion Ready Ready Preview, Comment Jan 3, 2026 8:54am

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a performance optimization to handle extremely compressed transforms in the web renderer. When transforms compress an axis to near-zero scale (e.g., rotating 89.96° around the X-axis), the inverse matrix calculation can become numerically unstable or explode, causing performance issues. The PR detects these cases early and returns an empty rect, avoiding unnecessary computation for nearly invisible content.

Key Changes

  • Added compression detection logic that checks if any axis is compressed below 1/100 of original scale
  • Added comprehensive test case with many layers containing complex 3D transforms
  • Early return for compressed transforms prevents expensive matrix inversions

Reviewed changes

Copilot reviewed 4 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/web-renderer/src/drawing/get-pretransform-rect.ts Added scale factor checking to detect and skip very compressed transforms
packages/web-renderer/src/test/many-layers.test.tsx New test case for rendering performance with many layers
packages/web-renderer/src/test/fixtures/many-layers.tsx Test fixture with complex nested transforms and multiple layers
packages/web-renderer/src/test/Root.tsx Registered new test composition in the root component
packages/web-renderer/src/test/__screenshots__/* Screenshot baseline files for visual regression testing

@JonnyBurger JonnyBurger merged commit bb11f7f into main Jan 3, 2026
21 checks passed
@JonnyBurger JonnyBurger deleted the optimize-many-layers branch January 3, 2026 09:47
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.

1 participant