diff --git a/apps/readest-app/src/app/reader/components/FoliateViewer.tsx b/apps/readest-app/src/app/reader/components/FoliateViewer.tsx index a70582b5..cb5a435b 100644 --- a/apps/readest-app/src/app/reader/components/FoliateViewer.tsx +++ b/apps/readest-app/src/app/reader/components/FoliateViewer.tsx @@ -687,6 +687,14 @@ const FoliateViewer: React.FC<{ } else { view.renderer.removeAttribute('animated'); } + // iOS WebKit composites large/persistent page layers without the Android + // high-DPR Blink freeze, so opt this renderer into the GPU-accelerated + // page-turn path (persistent compositor layers + no main-thread + // rafAnimateScroll fallback) to keep 120Hz ProMotion turns smooth + // (readest#4768). + if (appService?.isIOSApp) { + view.renderer.setAttribute('gpu-composite', ''); + } if (viewSettings.disableSwipe) { view.renderer.setAttribute('no-swipe', ''); } else { diff --git a/packages/foliate-js b/packages/foliate-js index 982f168c..23ec1c79 160000 --- a/packages/foliate-js +++ b/packages/foliate-js @@ -1 +1 @@ -Subproject commit 982f168c668dedcf38b2304bec788337712d60aa +Subproject commit 23ec1c7957af6a5dcbd7d340314fe5238ef4e665