Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync changes from mozilla-central gfx/wr #3928

Merged
merged 14 commits into from Apr 23, 2020
Merged

Conversation

@moz-gfx
Copy link

moz-gfx commented Apr 21, 2020

No description provided.

jamienicol and others added 5 commits Apr 21, 2020
Move more shader parsing code to webrender_build, so it can be used
both at runtime and build time.

At build time optimize a set of shaders and feature flag combinations,
using glslopt. Some features are skipped because they are not
supported by the gl version, because the optimizer does not support
them, or because webrender does not need them currently.

Use build-parallel to ensure the optimization is performed in parallel
using the make jobserver. Write the optimized shader source to a
hashmap to be used at runtime, in addition to the unoptimized source.

Differential Revision: https://phabricator.services.mozilla.com/D70032

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/416526bbe3dac4ac5c8d299a086f252438c06020
Add a gecko pref "gfx.webrender.use-optimized-shaders". If enabled,
then when attempting to compile a webrender shader first look for the
optimized source. If the optimized source is not present, emit a
warning and fall back to the unoptimized source.

Use the optimized source by default in wrench, and add the flag
"--use-unoptimized-shaders" to override this.

Differential Revision: https://phabricator.services.mozilla.com/D70033

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/37870a77af5371a9a6d80cf7814e4bc28b037533
@moz-gfx
Copy link
Author

moz-gfx commented Apr 21, 2020

@bors-servo r=auto

@bors-servo
Copy link
Contributor

bors-servo commented Apr 21, 2020

📌 Commit e6b9178 has been approved by auto

@bors-servo
Copy link
Contributor

bors-servo commented Apr 21, 2020

Testing commit e6b9178 with merge adc5036...

bors-servo added a commit that referenced this pull request Apr 21, 2020
Sync changes from mozilla-central gfx/wr
@bors-servo
Copy link
Contributor

bors-servo commented Apr 21, 2020

💔 Test failed - status-taskcluster

gw3583 and others added 2 commits Apr 22, 2020
… on default-subregion.svg and mix-blend-mode-and-filter.svg CLOSED TREE

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/84855eefe4c47deb80d3a9693f5aa7c9f5b9f03c
@moz-gfx
Copy link
Author

moz-gfx commented Apr 22, 2020

@bors-servo r=auto

@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2020

💡 This pull request was already approved, no need to approve it again.

  • This pull request previously failed. You should add more commits to fix the bug, or use retry to trigger a build again.
@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2020

📌 Commit e6b9178 has been approved by auto

@staktrace
Copy link
Contributor

staktrace commented Apr 22, 2020

Looks like we need to update the docker image to include clang to make @jamienicol 's glsl thing work. I'm trying to do that

@jamienicol
Copy link
Contributor

jamienicol commented Apr 22, 2020

Thanks @kats! For future reference, what did I break here and how do I avoid breaking it in the future?

@staktrace
Copy link
Contributor

staktrace commented Apr 22, 2020

So the webrender tests run in two configurations, since WebRender is used both as part of Firefox and as a standalone project. In Firefox CI they are run via the config in taskcluster/ci/webrender/kind.yml, but here on github for the standalone testing they are run via the configuration in .taskcluster.yml. Both invoke the ci-scripts/linux-*-tests.sh and similar scripts, so that the actual set of tests run in both environments is the same, but the setup of the environment is different. In Firefox CI the webrender/kind.yml file defines the dependencies on toolchains and base docker image (which is defined in-tree at taskcluster/docker/webrender/). The .taskcluster.yml file does similarly for standalone testing, but uses a different docker image and can't directly declare dependencies on firefox toolchains. So that latter thing is what broke the standalone testing.

In terms of avoiding it in the future, I guess the way to know would have been to clone this github repo, copy over your changes to a fork, and make a PR to let the run .taskcluster.yml file do its testing. I'm doing that in #3929 right now with additional changes to test my fixes. In general this sort of breakage is pretty rare, and should only happen if we introduce new dependencies into the build that aren't just rust crates. That was the case here.

(Aside: in theory you shouldn't need to create a PR, and should be able to run the taskcluster-github integration on your own fork directly but the documentation for that is missing, see bug 1619286).

@moz-gfx
Copy link
Author

moz-gfx commented Apr 22, 2020

@bors-servo r=auto

@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2020

📌 Commit f78503d has been approved by auto

@jamienicol
Copy link
Contributor

jamienicol commented Apr 22, 2020

Cool, thanks. I'll be aware of the standalone webrender taskcluster configuration in the unlikely event I make a similar change again :)

(Just realised I tagged the wrong username in my last reply, sorry other kats!)

nical added 3 commits Apr 22, 2020
…th API. r=gw

Now that the capture code is gone, we don't use these serde implementations. They get in the way of changing the way transactions are represented so I'd like to remove a bunch of them for now.

Differential Revision: https://phabricator.services.mozilla.com/D71604

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/a307cb281ea1ac328796b23650d010d53084205a
The code is untested, and mostly obsoleted by (multi) frame captures.
Also it gets in the way of some other changes I need to make.

Differential Revision: https://phabricator.services.mozilla.com/D71372

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/4ab8d5caf58fe9d7e2e0ef5b3d6ff94c4e395cff
…the api crate. r=gw

This is a small preliminary refactoring that will be needed to let the api talk to the scene builder thread.

Differential Revision: https://phabricator.services.mozilla.com/D71325

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/d3387bfa2b029f4bbc636bc521fe789de4085606
@moz-gfx
Copy link
Author

moz-gfx commented Apr 22, 2020

@bors-servo r=auto

@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2020

📌 Commit 4b82bd4 has been approved by auto

jamienicol and others added 3 commits Apr 22, 2020
In bug 1589669 we ensured that webrender snaps the asynchronous scroll
offset correctly. Prior to that, the fractional offsets of picture
cache tiles were changing every frame, leading to excessive picture
cache invalidation. Since then, however, we have landed bug 1609002,
which made it so that asynchronous scrolling is split in to the scroll
offset and the visual viewport transform. The visual viewport
transform is sent to webrender as an animated transform property, and
since this was not being snapped it regressed the picture caching
invalidation fix. This change ensures that offset is snapped
correctly.

Differential Revision: https://phabricator.services.mozilla.com/D71920

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/1ba2c8fbef070eac296d96460b2e3c7c50479fa9
…ly. r=jrmuizel

The list of pre-optimized shaders was being generated in a
non-deterministic order, causing large build time regressions. This
sort the list of shaders before writing them to the shaders.rs file.

Differential Revision: https://phabricator.services.mozilla.com/D71905

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/19e4643b08381f59a829506cea2ceb5b986d64a5
@moz-gfx
Copy link
Author

moz-gfx commented Apr 22, 2020

@bors-servo r=auto

@bors-servo
Copy link
Contributor

bors-servo commented Apr 22, 2020

📌 Commit 66e9749 has been approved by auto

@staktrace
Copy link
Contributor

staktrace commented Apr 23, 2020

@staktrace
Copy link
Contributor

staktrace commented Apr 23, 2020

@bors-servo r=auto

@bors-servo
Copy link
Contributor

bors-servo commented Apr 23, 2020

📌 Commit 45243ae has been approved by auto

@bors-servo
Copy link
Contributor

bors-servo commented Apr 23, 2020

Testing commit 45243ae with merge 061de08...

@bors-servo
Copy link
Contributor

bors-servo commented Apr 23, 2020

☀️ Test successful - status-appveyor, status-taskcluster
Approved by: auto
Pushing 061de08 to master...

@bors-servo bors-servo merged commit 061de08 into servo:master Apr 23, 2020
3 checks passed
3 checks passed
Community-TC (pull_request) TaskGroup: success
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
homu Test successful
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

7 participants
You can’t perform that action at this time.