gecko-dev/gfx/wr/wrench
Jim Blandy 1f4b5cd074 Bug 1649861: Turn of RendererOptions::clear_caches_with_quads under SWGL. r=lsalzman
The `clear_caches_with_quads` flags is meant to work around a bug in some
drivers' scissored clears, but its implementation uses the `GL_ALWAYS` depth
comparison function, which SWGL doesn't support.

SWGL does scissored clears very well, so simply turning this workaround off on
SWGL avoids the problem and gets good results.

Of course we could just make SWGL support `GL_ALWAYS`, but that would be kind of
annoying, since it basically disables depth checks altogether, and we want to
use entirely different paths when depth checks aren't needed.

Differential Revision: https://phabricator.services.mozilla.com/D81918
2020-07-01 22:27:56 +00:00
..
benchmarks
examples
reftests Bug 1647862 - Fix panic when casting large rects to i32. r=Bert 2020-06-28 22:00:56 +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 1649861: Turn of RendererOptions::clear_caches_with_quads under SWGL. r=lsalzman 2020-07-01 22:27:56 +00:00
.gitignore
Cargo.toml Bug 1646741 - Update gleam to 0.12. r=kvark 2020-06-18 18:11:13 +00:00
README.md
android.txt Bug 1581628 - Update wrench jobs to work with NDK r20. r=jrmuizel 2019-09-27 13:50:43 +00:00
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