Reduce per-frame GPU cache uploads.

RESOLVED FIXED in Firefox 67

Status

()

P3
normal
RESOLVED FIXED
a month ago
a month ago

People

(Reporter: gw, Assigned: gw)

Tracking

unspecified
mozilla67
Points:
---

Firefox Tracking Flags

(firefox67 fixed)

Details

Attachments

(1 attachment)

Comment hidden (empty)
(Assignee)

Comment 1

a month ago

By retaining a global GPU cache handle for a dummy image block, we
can reduce the per-frame GPU cache uploads quite a bit, which
helps with compositor time.

Priority: -- → P3

Comment 2

a month ago
Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6e756f4116ee
Reduce GPU cache uploads a bit. r=kvark,nical

Backed out for bustage on gfx/wr/webrender/src/frame_builder.rs

backout: https://hg.mozilla.org/integration/autoland/rev/787a2598c88f6033f3379e45fefea11422899276

push: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=6e756f4116ee200a742b598e58a0b3934507eb8f

failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=227735056&repo=autoland&lineNumber=18752

[task 2019-02-11T20:52:59.800Z] 20:52:59 INFO - [style 0.0.1] cargo:rerun-if-changed=/builds/worker/workspace/build/src/obj-firefox/dist/include/nsGkAtomList.h
[task 2019-02-11T20:52:59.800Z] 20:52:59 INFO - [style 0.0.1] cargo:rerun-if-changed=/builds/worker/workspace/build/src/servo/components/style/gecko/pseudo_element_definition.mako.rs
[task 2019-02-11T20:52:59.804Z] 20:52:59 ERROR - error[E0277]: the trait bound frame_builder::FrameGlobalResources: serde::Serialize is not satisfied
[task 2019-02-11T20:52:59.805Z] 20:52:59 INFO - --> gfx/wr/webrender/src/frame_builder.rs:94:40
[task 2019-02-11T20:52:59.805Z] 20:52:59 INFO - |
[task 2019-02-11T20:52:59.805Z] 20:52:59 INFO - 94 | #[cfg_attr(feature = "capture", derive(Serialize))]
[task 2019-02-11T20:52:59.805Z] 20:52:59 INFO - | ^^^^^^^^^ the trait serde::Serialize is not implemented for frame_builder::FrameGlobalResources
[task 2019-02-11T20:52:59.806Z] 20:52:59 INFO - |
[task 2019-02-11T20:52:59.806Z] 20:52:59 INFO - = note: required by serde::ser::SerializeStruct::serialize_field
[task 2019-02-11T20:52:59.806Z] 20:52:59 ERROR - error: aborting due to previous error
[task 2019-02-11T20:52:59.807Z] 20:52:59 INFO - For more information about this error, try rustc --explain E0277.
[task 2019-02-11T20:52:59.807Z] 20:52:59 ERROR - error: Could not compile webrender.
[task 2019-02-11T20:52:59.807Z] 20:52:59 INFO - Caused by:
[task 2019-02-11T20:52:59.812Z] 20:52:59 INFO - process didn't exit successfully: /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/rustc/bin/rustc --crate-name webrender gfx/wr/webrender/src/lib.rs --color never --crate-type lib --emit=dep-info,link -C opt-level=2 -C panic=abort -C codegen-units=1 --cfg 'feature="capture"' --cfg 'feature="ron"' --cfg 'feature="serde"' --cfg 'feature="serialize_program"' --cfg 'feature="smallvec"' --cfg 'feature="webrender_api"' --cfg 'feature="webrender_build"' -C metadata=07f330505092d35f -C extra-filename=-07f330505092d35f --out-dir /builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C linker=/builds/worker/workspace/build/src/build/cargo-linker -L dependency=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps -L dependency=/builds/worker/workspace/build/src/obj-firefox/release/deps --extern app_units=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libapp_units-d34300cd75caa704.rlib --extern bincode=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libbincode-b0a91b66a8b10911.rlib --extern bitflags=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libbitflags-9b4c1676baec1b72.rlib --extern byteorder=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libbyteorder-e84704e3d0962d01.rlib --extern cfg_if=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libcfg_if-dd225364fe3bacf9.rlib --extern freetype=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libfreetype-782423869d0539d6.rlib --extern fxhash=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libfxhash-a10fe74c5403ff46.rlib --extern gleam=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libgleam-588bcd3908e99887.rlib --extern lazy_static=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/liblazy_static-1c9e5ec64534cb35.rlib --extern libc=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/liblibc-930a7bf71af2ebf7.rlib --extern log=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/liblog-830a3ef42d5b9445.rlib --extern malloc_size_of_derive=/builds/worker/workspace/build/src/obj-firefox/release/deps/libmalloc_size_of_derive-6b3a9e68eb9ae674.so --extern num_traits=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libnum_traits-85a724fe97809009.rlib --extern plane_split=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libplane_split-311ad0d32d57733a.rlib --extern rayon=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/librayon-484eca0f89650647.rlib --extern ron=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libron-a813b873b0091c5e.rlib --extern serde=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libserde-bb043b2f42611d9e.rlib --extern sha2=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libsha2-9ed047230058aa81.rlib --extern smallvec=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libsmallvec-6f44a2f642d6a1d8.rlib --extern thread_profiler=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libthread_profiler-27828c53fbaea13c.rlib --extern time=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libtime-8b3d0fa7c9e75bdd.rlib --extern webrender_api=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libwebrender_api-c75565f7961a5ddb.rlib --extern webrender_build=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libwebrender_build-19915a617adbfc9c.rlib --extern wr_malloc_size_of=/builds/worker/workspace/build/src/obj-firefox/x86_64-unknown-linux-gnu/release/deps/libwr_malloc_size_of-ec48bf317e533b6d.rlib -C opt-level=2 -C debuginfo=2 -Dwarnings (exit code: 1)
[task 2019-02-11T20:52:59.813Z] 20:52:59 INFO - warning: build failed, waiting for other jobs to finish...

Flags: needinfo?(gwatson)
(Assignee)

Comment 4

a month ago

I think this might be a rebase issue with another patch that is currently in the queue - I'll wait until that lands and then re-submit this.

Flags: needinfo?(gwatson)

Sounds like a rebase conflict with bug 1526593. It's possible to pull autoland and rebase on top of that if you don't want to wait until it reaches m-c. Ping me if you want me to walk you through it.

(Assignee)

Comment 6

a month ago

Ah, that makes sense, thanks. I'll just wait and land it tomorrow - it's a small optimization I noticed while working on other things, no urgency.

Comment 7

a month ago
Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/95aa45a1529f
Reduce GPU cache uploads a bit. r=kvark,nical

Comment 8

a month ago
bugherder
Status: NEW → RESOLVED
Last Resolved: a month ago
status-firefox67: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
Assignee: nobody → gwatson
You need to log in before you can comment on or make changes to this bug.