gecko-dev/gfx/wr/wrench
Jeff Muizelaar 81aac9064d Bug 1563770. Always include a visible rect with blob images. r=nical
I suspect we may change things more in the future as we blob's size
just be the visible rect but this is an incremental step in the right
direction.

It also includes some changes to make sure that we always update our
tiles appropriately.

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

--HG--
extra : moz-landing-system : lando
2019-07-13 19:07:05 +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 1555483 - Part 5: Add wrench reftests for SVG filters and update test expectations r=gw 2019-07-10 22:37:48 +00:00
res
script Bug 1559975: Fix python2/3 compat in gfx/ r=ahal 2019-07-05 14:28:55 +00:00
src Bug 1563770. Always include a visible rect with blob images. r=nical 2019-07-13 19:07:05 +00:00
.gitignore
android.txt Bug 1555479 - Update wrench mozharness script to support running on a device as well. r=gbrown 2019-06-08 08:59:06 +00:00
build.rs
Cargo.toml Bug 1563588 - Update glutin to 0.19, winit to 0.18 r=nical 2019-07-10 11:12:08 +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