Bug 173442 - Eventual Variable Refresh Rate support (HTML 5.3)
Summary: Eventual Variable Refresh Rate support (HTML 5.3)
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Canvas (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P4 Enhancement
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-06-15 14:41 PDT by mdrejhon
Modified: 2022-07-19 09:25 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mdrejhon 2017-06-15 14:41:19 PDT
Long Term Enhancement Project: Support for variable refresh rates in WebKit

With the proliferation of variable refresh capable displays (FreeSync, GSYNC, VESA Adaptive-Sync, HDMI 2.1 VRR, Apple ProMotion), there is a need to prepare the WebKit engine over the coming few years as the new iPad and the new Microsoft XBox both support variable refresh rates, as several HDTVs shown off at CES 2017.

Variable refresh rate displays lets software decide when to begin refresh cycles.  

The goal is animations run at a specific frame rate (e.g. 48 fps or 75 fps), the display refresh rate follows along for the dominant element (e.g. full screen canvas, WebGL, video, etc).  The refresh rate changes seamlessly even every refresh cycle, if necessary -- so sudden framerate changes are seamlessly possible without stutters (software simulation via frame interpolation -- http://www.testufo.com/#test=stutter&demo=gsync ...) as modern variable refresh rate displays can change refresh rates with no visual flash or disruption unlike previous displays.,

Currently, as an Invited Expert to W3C Web Platform Working Group, work is currently ongoing to prepare browser engines for emerging dynamic variable refresh rate operation capability -- https://github.com/w3c/html/issues/375

Specific potential pre-alpha proposals towards variable refresh rate support are located at:
PHASE 1 -- No API changes -- https://github.com/w3c/html/issues/375#issuecomment-306591154
PHASE 2 -- New API changes -- https://github.com/w3c/html/issues/375#issuecomment-306603305

While this is very early to report this to Webkit, I'm adding this because I'm aware of ongoing work to refactor the animation engines in WebKit, and it needs to have a migration path to become VRR-compatible -- to avoid coding into a corner between a rock and hard place.
Comment 1 mdrejhon 2017-06-15 14:48:01 PDT
Also a very useful comments thread I've also posted on the potential gotchas, and considerations:
https://github.com/w3c/html/issues/375#issuecomment-306590982
Comment 2 Brent Fulgham 2022-07-18 14:40:06 PDT
Feature Request (may be largely complete now)
Comment 3 Radar WebKit Bug Importer 2022-07-18 14:40:29 PDT
<rdar://problem/97220919>
Comment 4 Simon Fraser (smfr) 2022-07-19 09:25:49 PDT
Our proposed API for animation with different frame rates is at https://github.com/WebKit/explainers/tree/main/animation-frame-rate