Open
Bug 720575
Opened 13 years ago
Updated 2 years ago
Make thumbnailing faster and/or asynchronous
Categories
(Core :: Graphics: Canvas2D, defect)
Core
Graphics: Canvas2D
Tracking
()
NEW
People
(Reporter: ttaubert, Unassigned)
References
(Depends on 3 open bugs, Blocks 3 open bugs)
Details
(Whiteboard: [Async:ready])
Spin-off from bug 497543 comment #74:
"When thumbnailing a visible tab, we could just recompose the layer subtree for that tab. This should be very fast (apart from reading back from the GPU). With OMTC, it can be made asynchronous as well if necessary. This will require new layers API and some drawWindow implementation changes, though. We could make it even cheaper by making a new API to deliver a copy of the visible tab next time we recompose it normally; then we could keep a copy of what was composited for the visible tab, and read it back asynchronously."
Comment 1•12 years ago
|
||
We already have the support to do this use draw widget layers feature so morphing this bug into optimizing thumbnailing by using this feature.
Component: Canvas: 2D → Places
Product: Core → Toolkit
Summary: Make drawWindow() faster and/or asynchronous → Make thumbnailing faster and/or asynchronous
Comment 2•12 years ago
|
||
(In reply to Benoit Girard (:BenWa) from comment #1)
> We already have the support to do this use draw widget layers feature
Do you mean DRAWWINDOW_USE_WIDGET_LAYERS? Last I heard there were various issues making that not suitable for use here (like maybe bug 678392 comment 48, but there are others I can't find at the moment).
It also doesn't really cover the "async" parts of comment 0. I see we have asyncDrawXULElement now, but bug 619591 means there's no way to tell when it's done...
Updated•12 years ago
|
Component: Places → Canvas: 2D
Product: Toolkit → Core
Comment 3•12 years ago
|
||
DRAWWINDOW_USE_WIDGET_LAYERS will only ever work for content that is currently visible on screen, so if you want to use this for background tabs it's not going to help.
Comment 4•12 years ago
|
||
We only currently need to capture tabs that are on screen, AFAIK, but having a fast/async way to do background tabs could be useful too.
Comment 5•12 years ago
|
||
We could extend DRAWWINDOW_USE_WIDGET_LAYERS to composite the screen without doing a finish with hardware compositing. This would be somewhat async since we wouldn't wait on the GPU to complete thus reducing main thread wait for thumbnail. That + off main thread encoding would help.
Comment 6•12 years ago
|
||
I discussed the issue with nical. It would be rather simple to extend the composer with an async API that would callback with a copy of the screen after the next redisplay.
Updated•12 years ago
|
Whiteboard: [Async]
Updated•11 years ago
|
Comment 7•11 years ago
|
||
https://wiki.mozilla.org/User:Roc/ScreenCaptureAPI has a proposal for improving things here (not quite sure how that compares to bug 744100).
Comment 8•11 years ago
|
||
For reference, here is the Telemetry:
http://telemetry.mozilla.org/#path=nightly/27/FX_THUMBNAILS_CAPTURE_TIME_MS
50% of cases are above 21ms, which is not good.
5% are 80ms, which is bad.
Updated•11 years ago
|
Whiteboard: [Async] → [Async:ready]
Updated•9 years ago
|
blocking-b2g: 2.2r? → ---
tracking-b2g:
backlog → ---
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•