Closed Bug 1406507 Opened 2 years ago Closed 2 years ago

Eliminate ipdl serialization of display list buffer

Categories

(Core :: Graphics: WebRender, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
Tracking Status
firefox57 --- unaffected
firefox58 --- unaffected

People

(Reporter: jrmuizel, Assigned: jrmuizel)

References

Details

(Whiteboard: [wr-mvp])

Attachments

(1 file)

No description provided.
Whiteboard: [wr-mvp] [triage]
Do we have an anticipated performance improvement goal?
This will just shave some overhead off the client side painting path.
Whiteboard: [wr-mvp] [triage] → [wr-mvp]
Depends on: 1379680
Jeff has patches to do this, assigning to him.
Assignee: nobody → jmuizelaar
Status: NEW → ASSIGNED
Priority: P2 → P1
This eliminates a copy of the displaylist on the compositor thread.
Attachment #8933184 - Flags: review?(bugmail)
The first part of this (https://bug1379680.bmoattachments.org/attachment.cgi?id=8919383) accidentally landed as part of bug 1379680.
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/f0fbf9120a1e
Use an ipc::ByteBuf instead of ByteBuffer to send the DisplayList instead of a ByteBuffer. r=kats
(In reply to Jeff Muizelaar [:jrmuizel] from comment #5)
> The first part of this
> (https://bug1379680.bmoattachments.org/attachment.cgi?id=8919383)
> accidentally landed as part of bug 1379680.

I did a backout/reland of that code so it shows up correctly in blame.
Keywords: leave-open
(In reply to Pulsebot from comment #6)
> Pushed by kgupta@mozilla.com:
> https://hg.mozilla.org/integration/mozilla-inbound/rev/f0fbf9120a1e
> Use an ipc::ByteBuf instead of ByteBuffer to send the DisplayList instead of
> a ByteBuffer. r=kats

Also, doesn't this patch make wr::ByteBuffer obsolete? As in, we should remove it from the codebase.
Comment on attachment 8933184 [details] [diff] [review]
Move the displaylist ByteBuf into a Vec instead of copying

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

r=me with the ByteBuf->VecU8 converter moved to a constructor.

::: gfx/webrender_bindings/WebRenderTypes.h
@@ +577,5 @@
>    }
>  
> +  // It would be nice to have a constructor that
> +  // accpets a ByteBuf but including "mozilla/ipc/ByteBuf.h"
> +  // causes a mess of 'base/process_util.h' file not found

We should be able to do this if we put the impl of the constructor into a .cpp file and just forward-declare ByteBuf in this header file. I wrote a patch (should work, but still compiling locally), you can see/steal it from

https://treeherder.mozilla.org/#/jobs?repo=try&revision=65e2f5b3d15fa99dbcaf7b2927b8e0efa3c49185
Attachment #8933184 - Flags: review?(bugmail) → review+
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #8)
> Also, doesn't this patch make wr::ByteBuffer obsolete? As in, we should
> remove it from the codebase.

Looks like somebody decided to use it in totally unrelated code. I left a comment at https://bugzilla.mozilla.org/show_bug.cgi?id=1351488#c70
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #9)
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=65e2f5b3d15fa99dbcaf7b2927b8e0efa3c49185

Make sure to add the 'explicit' keyword on the new constructor. I always forget that!
I landed with the wrong bug number. https://hg.mozilla.org/integration/mozilla-inbound/rev/d4a1478b58f0d11d29042b7108971f1347117f2c

I'll reland once the tree reopens.
Pushed by jmuizelaar@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/bdfdf0fa1889
Move the displaylist ByteBuf into a Vec instead of copying. r=kats
Whiteboard: [wr-mvp] → [wr-reserve]
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Whiteboard: [wr-reserve] → [wr-mvp]
Removing leave-open keyword from resolved bugs, per :sylvestre.
Keywords: leave-open
You need to log in before you can comment on or make changes to this bug.