gecko-dev/gfx/wr/wrench
Nicolas Silva c1f7e63ce2 Bug 1583879 - Skip uploading and rendering empty blob tiles. r=jrmuizel
This patch adds a notion of "fully transparent" image in the resource cache.
These are not uploaded in the texture cache and image requests return the
necessary information to allow the frame building code to skip emitting
primitives accordingly.

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

--HG--
extra : moz-landing-system : lando
2019-10-09 13:34:51 +00:00
..
benchmarks Bug 1528157 - Optimize GPU time for clip mask generation. r=kvark 2019-02-19 20:52:27 +00:00
examples Bug 1525741 - Support animating yaml files in wrench. r=kvark 2019-02-07 18:03:59 +00:00
reftests Bug 1587047 - Update wrench reftest expectations. r=gw 2019-10-08 20:18:50 +00:00
res
script Bug 1559975: Fix python2/3 compat in gfx/ r=ahal 2019-07-05 14:28:55 +00:00
src Bug 1583879 - Skip uploading and rendering empty blob tiles. r=jrmuizel 2019-10-09 13:34:51 +00:00
.gitignore
android.txt Bug 1581628 - Update wrench jobs to work with NDK r20. r=jrmuizel 2019-09-27 13:50:43 +00:00
build.rs
Cargo.toml Bug 1581628 - Update wrench jobs to work with NDK r20. r=jrmuizel 2019-09-27 13:50:43 +00:00
README.md

wrench

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

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.

replay and show

Binary recordings can be generated by webrender and replayed with wrench replay. Enable binary recording in RendererOptions.

RendererOptions {
    ...
    recorder: Some(Box::new(BinaryRecorder::new("wr-frame.bin"))),
    ...
}

If you are working on gecko integration you can enable recording in webrender_bindings/src/bindings.rs by setting

static ENABLE_RECORDING: bool = true;

wrench replay --save yaml will convert the recording into frames described in yaml. Frames can then be replayed with wrench show.

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