Bug 1510078 - Update webrender to commit f450af9277e2474e2a2a2c1358689ca9486e2a09 (WR PR #3345). r=kats
authorWR Updater Bot <graphics-team@mozilla.staktrace.com>
Tue, 27 Nov 2018 01:16:27 +0000
changeset 504608 895fcf304c2a19969e8d075457a7cee36ea06895
parent 504607 40310bdbb6708f03fd171eb194abb09d7e02f72b
child 504609 4585bb8bd85ac70f17a25bc2407d29b964a4e744
push id10290
push userffxbld-merge
push dateMon, 03 Dec 2018 16:23:23 +0000
treeherdermozilla-beta@700bed2445e6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskats
bugs1510078
milestone65.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1510078 - Update webrender to commit f450af9277e2474e2a2a2c1358689ca9486e2a09 (WR PR #3345). r=kats https://github.com/servo/webrender/pull/3345 Differential Revision: https://phabricator.services.mozilla.com/D13025
gfx/webrender_bindings/revision.txt
gfx/wr/.taskcluster.yml
gfx/wr/ci-scripts/linux-debug-tests.sh
gfx/wr/ci-scripts/linux-release-tests.sh
gfx/wr/ci-scripts/macos-debug-tests.sh
gfx/wr/ci-scripts/macos-release-tests.sh
gfx/wr/wrench/script/headless.py
--- a/gfx/webrender_bindings/revision.txt
+++ b/gfx/webrender_bindings/revision.txt
@@ -1,1 +1,1 @@
-90fa51c71579ce434013953cee35a9bd159ab398
+f450af9277e2474e2a2a2c1358689ca9486e2a09
--- a/gfx/wr/.taskcluster.yml
+++ b/gfx/wr/.taskcluster.yml
@@ -63,19 +63,17 @@ tasks:
         - /bin/bash
         - '--login'
         - '-c'
         - >-
           curl https://sh.rustup.rs -sSf | sh -s -- -y &&
           git clone {{event.head.repo.url}} webrender && cd webrender &&
           git checkout {{event.head.sha}} &&
           servo-tidy &&
-          (cd wrench && python script/headless.py reftest) &&
-          (cd wrench && python script/headless.py rawtest) &&
-          (cd wrench && cargo build --release)
+          ci-scripts/linux-release-tests.sh
     routes:
       - "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.linux-release"
   - metadata:
       name: Linux debug tests
       description: Runs debug-mode WebRender CI stuff on a Linux TC worker
       owner: '{{ event.head.user.email }}'
       source: '{{ event.head.repo.url }}'
     provisionerId: '{{ taskcluster.docker.provisionerId }}'
@@ -98,32 +96,25 @@ tasks:
         - /bin/bash
         - '--login'
         - '-c'
         - >-
           curl https://sh.rustup.rs -sSf | sh -s -- -y &&
           git clone {{event.head.repo.url}} webrender && cd webrender &&
           git checkout {{event.head.sha}} &&
           servo-tidy &&
-          (cd webrender_api && cargo test --verbose --features "ipc") &&
-          (cd webrender && cargo build --verbose --no-default-features) &&
-          (cd webrender && cargo build --verbose --no-default-features --features capture) &&
-          (cd webrender && cargo build --verbose --features capture,profiler) &&
-          (cd webrender && cargo build --verbose --features replay) &&
-          (cd wrench && cargo build --verbose --features env_logger) &&
-          (cd examples && cargo build --verbose) &&
-          (cargo test --all --verbose)
+          ci-scripts/linux-debug-tests.sh
     routes:
       - "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.linux-debug"
   # For the OS X jobs we use a pool of machines that we are managing, because
   # Mozilla releng doesn't have any spare OS X machines for us at this time.
   # Talk to :kats or :jrmuizel if you need more details about this. The machines
   # are hooked up to taskcluster using taskcluster-worker; they use a worker-type
-  # of kats-webrender-ci-osx. They are set up with all the dependencies needed
-  # to build and test webrender, including Rust (currently 1.24), servo-tidy,
+  # of webrender-ci-osx. They are set up with all the dependencies needed
+  # to build and test webrender, including Rust (currently 1.30), servo-tidy,
   # mako, zlib, etc. Note that unlike the docker-worker used for Linux, these
   # machines WILL persist state from one run to the next, so any cleanup needs
   # to be handled explicitly.
   - metadata:
       name: OS X release tests
       description: Runs release-mode WebRender CI stuff on a OS X TC worker
       owner: '{{ event.head.user.email }}'
       source: '{{ event.head.repo.url }}'
@@ -154,19 +145,17 @@ tasks:
             RUST_LOG=sccache=trace SCCACHE_ERROR_LOG=$PWD/../artifacts/sccache.log sccache --start-server
             export RUST_BACKTRACE=full
             export RUSTFLAGS='--deny warnings'
             export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
             export RUSTC_WRAPPER=sccache
             echo 'exec make -j1 "$@"' > $HOME/make # See #2638
             chmod +x $HOME/make
             export MAKE="$HOME/make"
-            (cd wrench && python script/headless.py reftest)
-            (cd wrench && cargo build --release)
-            (cd wrench && cargo run --release -- --precache reftest reftests/clip/fixed-position-clipping.yaml)
+            ci-scripts/macos-release-tests.sh
             sccache --stop-server || true
       artifacts:
         - name: public/sccache.log
           path: artifacts/sccache.log
           type: file
     routes:
       - "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.osx-release"
   - metadata:
@@ -201,24 +190,16 @@ tasks:
             RUST_LOG=sccache=trace SCCACHE_ERROR_LOG=$PWD/../artifacts/sccache.log sccache --start-server
             export RUST_BACKTRACE=full
             export RUSTFLAGS='--deny warnings'
             export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
             export RUSTC_WRAPPER=sccache
             echo 'exec make -j1 "$@"' > $HOME/make # See #2638
             chmod +x $HOME/make
             export MAKE="$HOME/make"
-            (cd webrender_api && cargo test --verbose --features "ipc")
-            (cd webrender && cargo check --verbose --no-default-features)
-            (cd webrender && cargo check --verbose --no-default-features --features capture)
-            (cd webrender && cargo check --verbose --features capture,profiler)
-            (cd webrender && cargo check --verbose --features replay)
-            (cd webrender && cargo check --verbose --no-default-features --features pathfinder)
-            (cd wrench && cargo check --verbose --features env_logger)
-            (cd examples && cargo check --verbose)
-            (cargo test --all --verbose)
+            ci-scripts/macos-debug-tests.sh
             sccache --stop-server || true
       artifacts:
         - name: public/sccache.log
           path: artifacts/sccache.log
           type: file
     routes:
       - "index.garbage.webrender.ci.{{event.head.user.login}}.{{event.head.repo.branch}}.osx-debug"
new file mode 100755
--- /dev/null
+++ b/gfx/wr/ci-scripts/linux-debug-tests.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+# This must be run from the root webrender directory!
+# Users may set the CARGOFLAGS environment variable to pass
+# additional flags to cargo if desired.
+
+set -o errexit
+set -o nounset
+set -o pipefail
+set -o xtrace
+
+CARGOFLAGS=${CARGOFLAGS:-"--verbose"}  # default to --verbose if not set
+
+pushd webrender_api
+cargo test ${CARGOFLAGS} --features "ipc"
+popd
+
+pushd webrender
+cargo build ${CARGOFLAGS} --no-default-features
+cargo build ${CARGOFLAGS} --no-default-features --features capture
+cargo build ${CARGOFLAGS} --features capture,profiler
+cargo build ${CARGOFLAGS} --features replay
+popd
+
+pushd wrench
+cargo build ${CARGOFLAGS} --features env_logger
+popd
+
+pushd examples
+cargo build ${CARGOFLAGS}
+popd
+
+cargo test ${CARGOFLAGS} --all
new file mode 100755
--- /dev/null
+++ b/gfx/wr/ci-scripts/linux-release-tests.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+# This must be run from the root webrender directory!
+# Users may set the CARGOFLAGS environment variable to pass
+# additional flags to cargo if desired.
+
+set -o errexit
+set -o nounset
+set -o pipefail
+set -o xtrace
+
+CARGOFLAGS=${CARGOFLAGS:-""}  # default to empty if not set
+
+pushd wrench
+python script/headless.py reftest
+python script/headless.py rawtest
+cargo build ${CARGOFLAGS} --release
+popd
new file mode 100755
--- /dev/null
+++ b/gfx/wr/ci-scripts/macos-debug-tests.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+# This must be run from the root webrender directory!
+# Users may set the CARGOFLAGS environment variable to pass
+# additional flags to cargo if desired.
+
+set -o errexit
+set -o nounset
+set -o pipefail
+set -o xtrace
+
+CARGOFLAGS=${CARGOFLAGS:-"--verbose"}  # default to --verbose if not set
+
+pushd webrender_api
+cargo test ${CARGOFLAGS} --features "ipc"
+popd
+
+pushd webrender
+cargo check ${CARGOFLAGS} --no-default-features
+cargo check ${CARGOFLAGS} --no-default-features --features capture
+cargo check ${CARGOFLAGS} --features capture,profiler
+cargo check ${CARGOFLAGS} --features replay
+cargo check ${CARGOFLAGS} --no-default-features --features pathfinder
+popd
+
+pushd wrench
+cargo check ${CARGOFLAGS} --features env_logger
+popd
+
+pushd examples
+cargo check ${CARGOFLAGS}
+popd
+
+cargo test ${CARGOFLAGS} --all
new file mode 100755
--- /dev/null
+++ b/gfx/wr/ci-scripts/macos-release-tests.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+# This must be run from the root webrender directory!
+# Users may set the CARGOFLAGS environment variable to pass
+# additional flags to cargo if desired.
+
+set -o errexit
+set -o nounset
+set -o pipefail
+set -o xtrace
+
+CARGOFLAGS=${CARGOFLAGS:-""}  # default to empty if not set
+
+pushd wrench
+python script/headless.py reftest
+cargo build ${CARGOFLAGS} --release
+cargo run ${CARGOFLAGS} --release -- --precache \
+    reftest reftests/clip/fixed-position-clipping.yaml
+popd
--- a/gfx/wr/wrench/script/headless.py
+++ b/gfx/wr/wrench/script/headless.py
@@ -60,16 +60,18 @@ def set_osmesa_env(bin_path):
         osmesa_path = path.join(find_dep_path_newest('osmesa-src', bin_path),
                                 "out", "src", "gallium", "targets", "osmesa", ".libs")
         glapi_path = path.join(find_dep_path_newest('osmesa-src', bin_path),
                                "out", "src", "mapi", "shared-glapi", ".libs")
         os.environ["DYLD_LIBRARY_PATH"] = osmesa_path + ":" + glapi_path
         os.environ["GALLIUM_DRIVER"] = "softpipe"
 
 
-subprocess.check_call(['cargo', 'build', '--release', '--verbose', '--features', 'headless'])
+extra_flags = os.getenv('CARGOFLAGS', None)
+extra_flags = extra_flags.split(' ') if extra_flags else []
+subprocess.check_call(['cargo', 'build'] + extra_flags + ['--release', '--verbose', '--features', 'headless'])
 set_osmesa_env('../target/release/')
 # TODO(gw): We have an occasional accuracy issue or bug (could be WR or OSMesa)
 #           where the output of a previous test that uses intermediate targets can
 #           cause 1.0 / 255.0 pixel differences in a subsequent test. For now, we
 #           run tests with no-scissor mode, which ensures a complete target clear
 #           between test runs. But we should investigate this further...
 subprocess.check_call(['../target/release/wrench', '--no-scissor', '-h'] + sys.argv[1:])