SurfacePipe changes regressed GIF decoding time

RESOLVED FIXED in Firefox 62

Status

()

defect
P3
normal
RESOLVED FIXED
2 years ago
Last year

People

(Reporter: jrmuizel, Assigned: aosmond)

Tracking

({perf})

unspecified
mozilla62
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox62 fixed)

Details

(Whiteboard: [gfx-noted])

Attachments

(3 attachments)

:aosmond, can you comment to the bug?
Flags: needinfo?(aosmond)
Whiteboard: [gfx-noted]
Assignee: nobody → aosmond
Status: NEW → ASSIGNED
Flags: needinfo?(aosmond)
I still need to write new SurfacePipe tests. But comparing nightly with a pgo Linux build with parts 1 and 2 applied gives ~23% reduction in decode time. This should put us more or less where we were without SurfacePipe.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=b83718d5d2098158a4c3698ee993e21c77b6590e

This is consistent with my findings on comparing local optimized builds.
To be specific, my ThinkPad W540 goes from ~17ms/frame to ~14ms/frame.
Keywords: perf
Testing on a 2013 Macbook Pro, I go from ~19ms/frame to ~11ms/frame, or ~41% reduction in decode time.
These numbers are from testing the first GIF in the page reported in bug 1454149.
See Also: → 1454149
Attachment #8979054 - Flags: review?(tnikkel)
Attachment #8979055 - Flags: review?(tnikkel)
Attachment #8979111 - Flags: review?(tnikkel)
Comment on attachment 8979054 [details] [diff] [review]
0001-Bug-1382683-Part-1.-Implement-SurfacePipe-WritePixel.patch, v1

Review of attachment 8979054 [details] [diff] [review]:
-----------------------------------------------------------------

::: image/SurfacePipe.h
@@ +175,5 @@
>      return *result;
>    }
>  
> +  /**
> +   * Write pixels to the surface bu calling a lambda which may write as many

bu -> by
Attachment #8979054 - Flags: review?(tnikkel) → review+
Attachment #8979055 - Flags: review?(tnikkel) → review+
Attachment #8979111 - Flags: review?(tnikkel) → review+
Pushed by aosmond@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/3b84413763f8
Part 1. Implement SurfacePipe::WritePixelBlocks for faster writing of pixels. r=tnikkel
https://hg.mozilla.org/integration/mozilla-inbound/rev/1f1623675fdc
Part 2. Switch nsGIFDecoder2 to write pixels in blocks instead of individually. r=tnikkel
https://hg.mozilla.org/integration/mozilla-inbound/rev/b37bf166ab83
Part 3. Add gtests for SurfaceFilter/Pipe::WritePixelBlocks. r=tnikkel
Blocks: 1467311
You need to log in before you can comment on or make changes to this bug.