Re: WebPerfWG call - Tuesday November 5th 2019 @ 10:15am PST

Hey all!

Belatedly (due to travel...) I got around to cleaning up the minutes
<https://docs.google.com/document/d/e/2PACX-1vQYnogr5mo0P1FCL9BaCdOauvw-CmSDZASy8XuOHEWKVWg8AFdwK8aodVbMQpTg6tH28IgnwYNGgf9Q/pub>
from our last call (video <https://youtu.be/3FT_pyOeXqk>). We also
have detailed
transcripts
<https://www.rev.com/transcript-editor/shared/6IsMYMSQX9BvO5vQSBuEikR5kB7Ynkax0KUDMiddl8R3SWqmYN-iwI0f_Gg6tJSBoe4cuEHRHn9t4JN_pKcoRImSUxU?loadFrom=SharedLink>
(thanks
to Steven!) which I'd try to integrate with the video itself. Please let me
know if you find them useful.

Posting the minutes here for safe keeping:
WebPerfWG call minutes - November 5th 2019

Ross McIlroy, Ryosuke Niwa, Thomas Kelly, Steven Bougnon, Yoav Weiss,
Phillipe Le Hegaret, Nicolas Pena, Ilya Grigorik, Nic Jansma, Will Hawkins,
Subrata Ashe, Benjamin De Kosnik
Next call

   - November 19th @ 11AM PST

requestIdleCallback

   - https://github.com/w3c/requestidlecallback/issues/82
   <https://www.google.com/url?q=https://github.com/w3c/requestidlecallback/issues/82&sa=D&ust=1574094149867000>


   - Ross: spec bug, have a PR that should address it


   - PR: https://github.com/rmcilroy/requestidlecallback/pull/1
   <https://www.google.com/url?q=https://github.com/rmcilroy/requestidlecallback/pull/1&sa=D&ust=1574094149868000>


   - Ryosuke: why doesn’t each event loop have a list of idle callbacks?


   - Instead of associating with group of similar agents, have it be
   connected to agent that similar agents share


   - AI: Ryosuke to followup on PR with suggested approach


   - We might want to PR whatwg spec to add concept of idle queues


   - https://github.com/w3c/requestidlecallback/issues/71
   <https://www.google.com/url?q=https://github.com/w3c/requestidlecallback/issues/71&sa=D&ust=1574094149869000>


   - Ryosuke: this should talk about event loop and task sources
   - … anytime there is a pending task, we should not be scheduling
   - Ross: this issue is about predicting the deadline
   - Ryosuke: we should explain how to predict this


   - as is, it’s completely UA defined


   - Yoav: as an upperbound, time until next timer to fire?
   - Ryouske: what about web audio or media that schedules rIC. Right now
   the spec doesn’t talk about them, and the only thing WebKit can implement
   is timer predictions.
   - Ross: for Chrome.. We’re making a forward looking prediction


   - … we only look at already queued timers
   - … for each task queue that we have, take the min
   - … we also take into account our compositor decision about next frame


   - Yoav: if high priority task lands, tough..
   - Ross: right, once we’ve started executing we can’t do anything. We
   support bailing before calling the callback if we see things have changed.
   But called code can query deadline and yield if the time period changes to
   zero.
   - Ryosuke: is this behavior specced?
   - Ross: yes, step 1 in 6.2
   - Ryosuke: It should explicitly say “if any task source’s task is being
   queued”. I’ll file a bug about that.
   - Ross: for the actual deadline, did you discuss it?
   - Yoav: you mentioned tasks queued to run in the future
   - Ryosuke: what are future scheduled tasks — e.g. web audio?


   - I would probably just check for timer


   - Ross: Media and webaudio are probably ones. But not highly familiar
   with them.
   - Yoav: Can’t we find what those tasks are from Chromium’s and Gecko’s
   implementations?
   - Ross: one gotcha here is that Webkit uses Grand-Central-Station,
   whereas for Firefox and Chrome we have our own scheduler.
   - Ben: clarification on pending tasks
   - Ross: HTML spec does not have a good definition


   - In Chrome we have multiple prioritized queues, within the queue the
   tasks are not prioritized


   - Yoav: and it’s hard to traceback the scheduling code from the
   scheduler itself, right?
   - Ryosuke: we’d probably just look at the timer


   - we can’t query raF, that’s owned by core animation


   - Ross: we kinda have similar problem, we rely on browser process to
   tell us


   - … we know what is expected, we speculate based on frame frequency


   - Ryosuke: we can also do that, I guess
   - Ross: … fundamentally, it’s a prediction and heuristic


   - … the definitive bit here if+when task is scheduled, resetting to idle
   time to 0 should be specced more concretely


   - Yoav: agreement on..


   - set to 0 when task is scheduled
   - Next rendering opportunity, even if speculative
   - UA-defined timers to make the prediction


   - Ryosuke: we should probably simplify the spec to talk about timers and
   next rendering opportunity (instead of talking about rAF), but drop e.g.
   discussion on web audio that we’re not properly defining
   - Ross: rAF is defined in terms of next rendering opportunity, that sg.
   We should still keep rAF as a note.
   - Yoav: ok, and get rid of audio, etc.
   - Yoav: So to recap: We need to define the list of available timers, the
   next rendering opportunity, and UA-defined timers (and move all the current
   list as a note under that).
   - AI (Ross): Specify setting deadline to zero.
   - AI (Yoav): Specify language around what the deadline value is


On Sat, Nov 2, 2019 at 11:20 AM Yoav Weiss <yoav@yoav.ws> wrote:

> Apologies for living in the past - the meeting is of course on *November
> 5th*
>
> On Sat, Nov 2, 2019 at 11:04 AM Yoav Weiss <yoav@yoav.ws> wrote:
>
>> Hey all,
>>
>> Let's meet up to talk about performance!
>>
>> On the agenda
>> <https://docs.google.com/document/d/10dz_7QM5XCNsGeI63R864lF9gFqlqQD37B4q8Q46LMM/edit?pli=1#heading=h.7w371gk7vqyd>
>> we have long tasks and the buffered flag, and a couple of
>> requestIdleCallback issues.
>> *We'll start the call 15 minutes later than usual,* as I have some
>> schedule clashes. Apologies for that!
>>
>> You can join the call on the typical hangout link
>> <https://meet.google.com/agz-fbji-spp>. As always, *the call will be
>> recorded and available online*.
>>
>> See y'all Tuesday!
>> Cheers :)
>> Yoav
>>
>

Received on Monday, 18 November 2019 15:30:25 UTC