gecko-dev/gfx/wr/wrench
Glenn Watson 082e587b98 Bug 1643435 - Fix incorrect z ordering of compositor surface overlays. r=Bert
Ensure that even if an entire picture cache slice is opaque, if it
has intersecting compositor surfaces we respect the draw order of
those tiles, to ensure correct z-buffer ordering.

Differential Revision: https://phabricator.services.mozilla.com/D78628
2020-06-08 20:13:01 +00:00
..
benchmarks
examples
reftests Bug 1643435 - Fix incorrect z ordering of compositor surface overlays. r=Bert 2020-06-08 20:13:01 +00:00
res
script Bug 1631028: Add usage comments to gfx/wr/wrench/script/headless.py. DONTBUILD r=kvark 2020-04-20 13:45:18 +00:00
src Bug 1641671 - represent font size as f32 to avoid quantization issues. r=aosmond 2020-05-29 01:48:52 +00:00
.gitignore
Cargo.toml Bug 1634439 - Update RON dependency to 0.5 r=aosmond 2020-05-04 18:49:46 +00:00
README.md
android.txt
build.rs

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