Add an option to not decode until paint, and then use that on mobile

RESOLVED INVALID

Status

()

RESOLVED INVALID
7 years ago
7 years ago

People

(Reporter: khuey, Assigned: jrmuizel)

Tracking

({perf})

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [MemShrink:P2])

On mobile we prerender content off-screen, so we can rely on painting to decide when to decode images.
Keywords: perf
Whiteboard: [MemShrink]
I have 100% for sure seen patches that do exactly this, written by romaxa. I don't remember if they made it into mobile.
is that about video rendering? is it about GL accelerated mode or SW?
With GL we decode data only on final stage with yuv shader...
with software rendering we do decode on child process and then swap on UI process, we can enable neon yuv conversion for software rendering too, but in that case we should make BasicShadowImageLayer::Swap recognizing YUVImage and do neon conversion right there (it is pretty cheap), but still bring one additional memcpy-equivalent operation to UI process.
Also in order to do that we need to move YUV conversion functionality into separate function, see bug 686742
Depends on: 686742
Ok, then it is about this bug 622470
No longer depends on: 686742

Updated

7 years ago
Assignee: nobody → jmuizelaar
Whiteboard: [MemShrink] → [MemShrink:P2]
We already discard images even if they're on the foreground tab on mobile (see bug 691169) - this was bug 622470.. The only thing I don't know for sure is whether bug 622470 also makes it so we don't decode images until they're drawn (i.e., true decode on draw). Oleg, can you comment on that?

It's possible there's nothing to do here.
> It's possible there's nothing to do here.

Can anyone comment on this?
Romaxa/Oleg hopefully!
yep, in bug 622470, I've made images decoding only for visible area, and decode rest as soon as scrolling performed.
Also offscreen images are discarded when getting invisible after scrolling.
So I guess this bug does not make sense (of course if it was not broken again somewhere else..)
Excellent!
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.