<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>312407</bug_id>
          
          <creation_ts>2026-04-15 13:25:00 -0700</creation_ts>
          <short_desc>CSS linear() easing curve forces animations onto the main thread</short_desc>
          <delta_ts>2026-04-15 13:46:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>Safari 26</version>
          <rep_platform>All</rep_platform>
          <op_sys>iOS 26</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>312015</dup_id>
          
          <bug_file_loc>https://loading-text-jank-ncourygoogle.yoyo.codes</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nick Coury">ncoury</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>graouts</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2200788</commentid>
    <comment_count>0</comment_count>
    <who name="Nick Coury">ncoury</who>
    <bug_when>2026-04-15 13:25:00 -0700</bug_when>
    <thetext>Reproduction at https://loading-text-jank-ncourygoogle.yoyo.codes

Reproduces on iOS Safari and Desktop Safari 26.

Description
When working with CSS `linear()` easing curves (we are using them for spring physics), we found our animations are dropping a significant number of frames and janking severely, despite only utilizing transform and opacity to keep them on the compositor. We narrowed this down to the use of https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/easing-function/linear and if we use other easing curves the animation is properly run off the main thread.

Digging for more details I noticed there&apos;s a history around this already:
https://bugs.webkit.org/show_bug.cgi?id=240061 - Original implementation supported accelerated animations but contained bugs
https://bugs.webkit.org/show_bug.cgi?id=260136 - Removed accelerated animation support for correctness
https://bugs.webkit.org/show_bug.cgi?id=281429 - Marked as WAI in the short term until 250970 is resolved
https://bugs.webkit.org/show_bug.cgi?id=250970 - Resolved, moving accelerated animations to another thread
https://bugs.webkit.org/show_bug.cgi?id=307776 - Open bug identifying animations to run 60Hz+

Does this indicate there&apos;s a reasonable path to accelerating linear() curves again? Getting high polish spring physics is difficult on web without linear() + accelerated animations off the main thread at high refresh rates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2200795</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2026-04-15 13:34:07 -0700</bug_when>
    <thetext>This is true of the released Safari so far. However, once the &quot;Time-based Threaded Animations&quot; feature flag is enabled, this will won&apos;t be the case anymore. You can already try this in Safari Technology Preview where this flag is enabled by default. I can&apos;t however comment on when this will make it to a Safari release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2200799</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2026-04-15 13:38:13 -0700</bug_when>
    <thetext>Duping to bug 312015 where we enabled the relevant flag by default on all Cocoa ports.

*** This bug has been marked as a duplicate of bug 312015 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2200802</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2026-04-15 13:41:33 -0700</bug_when>
    <thetext>Note also that we shipped support for this for scroll-driven animations in macOS 26.4 and iOS 26.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2200806</commentid>
    <comment_count>4</comment_count>
    <who name="Nick Coury">ncoury</who>
    <bug_when>2026-04-15 13:46:22 -0700</bug_when>
    <thetext>Incredible! Just verified it works on STP. Look forward to it rolling out.

And yes, we saw the 26.4 support and had actually been holding off on more aggressive use of scroll-driven animations until now. We&apos;re actively building out new animations on it and looking forward to the results. Thank you for all the help!</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>