Closed Bug 1382683 Opened 3 years ago Closed 2 years ago

SurfacePipe changes regressed GIF decoding time

Categories

(Core :: ImageLib, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla62
Tracking Status
firefox62 --- fixed

People

(Reporter: jrmuizel, Assigned: aosmond)

References

Details

(Keywords: perf, Whiteboard: [gfx-noted])

Attachments

(3 files)

: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
https://hg.mozilla.org/mozilla-central/rev/3b84413763f8
https://hg.mozilla.org/mozilla-central/rev/1f1623675fdc
https://hg.mozilla.org/mozilla-central/rev/b37bf166ab83
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
Blocks: 1467311
You need to log in before you can comment on or make changes to this bug.