gecko-dev/gfx/wr/wrench
Glenn Watson a34d3f438e Bug 1720624 - Remove WrSpaceAndClip type r=nical
This was used when defining scroll layers and also backdrop-filter.

Removing it from the scroll layer API allows removal of the implicit
clip rect that a scroll node previously created (Gecko doesn't use
this). To maintain compatibility with wrench tests, add a flag that
allows a test to specify a clip rect should be created for the scroll
layer (we should remove this from wrench in future and port the tests
to create explicit clip rects as required).

The usage of backdrop-filter was the only remaining place this type
was used, so it's now ported to use the clip-chain API.

This simplifies the scroll layer API and removes an extra clip rect
from each scroll layer instance, as a small performance improvement.

Differential Revision: https://phabricator.services.mozilla.com/D119938
2021-07-18 22:32:27 +00:00
..
benchmarks
examples
invalidation
reftests Bug 1720624 - Remove WrSpaceAndClip type r=nical 2021-07-18 22:32:27 +00:00
res
script
src Bug 1720624 - Remove WrSpaceAndClip type r=nical 2021-07-18 22:32:27 +00:00
.gitignore
android.txt
build.rs
Cargo.toml
README.md

wrench

wrench is a tool for debugging webrender outside of a browser engine.

Build

Build wrench with cargo build --release within the wrench directory.

headless

wrench has an optional headless mode for use in continuous integration. To run in headless mode, instead of using cargo run -- args, use ./headless.py args.

show

If you are working on gecko integration you can capture a frame via the following steps.

  • Visit about:support and check that the "Compositing" value in the "Graphics" table says "WebRender". Enable gfx.webrender.all in about:config if necessary to enable WebRender.
  • Hit ctrl-shift-3 to capture the frame. The data will be put in ~/wr-capture.
  • View the capture with wrench show ~/wr-capture.

reftest

Wrench also has a reftest system for catching regressions.

  • To run all reftests, run script/headless.py reftest
  • To run specific reftests, run script/headless.py reftest path/to/test/or/dir
  • To examine test failures, use the reftest analyzer
  • To add a new reftest, create an example frame and a reference frame in reftests/ and then add an entry to reftests/reftest.list