Why it matters
Each WebGL context has its own GPU state and memory; browsers cap them (≈16) and mobile GPUs struggle with more than one.
How to fix it
Share one canvas/renderer across scenes (scissor/viewport per view) or render secondary visuals as video/images.
More smoothness rules
void smooth reports 18 rules in this category. How the page feels after it loads: dropped frames during a scripted scroll, long animation frames, INP of real clicks, shifts after input, animated layout properties, idle rAF loops and reduced-motion handling.
will-change-overusewill-change is applied too broadlyreduced-motion-ignoredAnimations keep running with prefers-reduced-motionraf-loop-idlerequestAnimationFrame loop runs while idlescroll-timeline-no-fallbackContent is invisible without scroll-driven-animation supportreact-commits-on-scrollReact re-renders while the page scrollsreact-wasted-rendersReact component re-renders with unchanged propsreact-render-stormOne React commit re-renders hundreds of componentsreact-idle-commitsReact keeps committing while the page is idle