Go to file
commit-bot@chromium.org 99589af4e3 Add support for reading a directory of images with --expectations (-r).
DM writes out its images in a hierarchy that's a little different than GM,
so this can't read GM's output.  But it can read its own, written with -w.

Example usage:
  $ out/Release/dm -w /tmp/baseline
  $ out/Release/dm -r /tmp/baseline -w /tmp/new
  (and optionally)
  $ mkdir /tmp/diff; out/Release/skdiff /tmp/baseline /tmp/new /tmp/diff

GM's IndividualImageExpectationsSource and Expectations are a little too eager
about decoding and hashing the expected images, so I took the opportunity to
add DM::Expectations that mostly replaces skiagm::ExpectationsSource and
skiagm::Expectations in DM.  It mainly exists to move the image decoding and
comparison off the main thread, which would otherwise be a major speed
bottleneck.

I tried to use skiagm code where possible.  One notable place where I differed
is in this new feature.  When -r is a directory of images, DM does no hashing.
It considerably faster to read the expected file into an SkBitmap and do a
byte-for-byte comparison than to hash the two bitmaps and check those.

The example usage above isn't quite working 100% yet.  Expectations on some GMs
fail, even with no binary change.  I haven't pinned down whether this is due to
  - a bug in DM
  - flaky GMs
  - unthreadsafe GMs
  - flaky image decoding
  - unthreadsafe image decoding
  - something else
but I intend to.  Leon, Derek and I have suspected PNG decoding isn't
threadsafe, but are as yet unable to prove it.

I also seem to be able to cause malloc to fail on my laptop if I run too many
configs at once, though I never seem to be using more than ~1G of RAM.  Will
track that down too.

BUG=
R=reed@google.com, bsalomon@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/108963002

git-svn-id: http://skia.googlecode.com/svn/trunk@12596 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-10 14:53:16 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Make sure four_byte_interp benches the entire FourByteInterp call. 2013-12-05 16:43:08 +00:00
debugger Convert debugger settings controls to combo boxes. 2013-11-21 15:37:29 +00:00
dm Add support for reading a directory of images with --expectations (-r). 2013-12-10 14:53:16 +00:00
expectations Add clipped-bitmap-shaders-*-hq_angle.png to ignore-tests.txt 2013-12-10 12:56:56 +00:00
experimental Add a canvas object with drawRect() and inval(). 2013-12-10 14:13:03 +00:00
forth Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
gm [PDF] PDF rasterizers fed garbage data in release mode. 2013-12-09 23:22:15 +00:00
gyp Add support for reading a directory of images with --expectations (-r). 2013-12-10 14:53:16 +00:00
include Make GrBicubicEffect take tile modes rather than GrTextureParams. 2013-12-10 12:53:39 +00:00
platform_tools Add support for MIPS to android build 2013-12-10 12:53:56 +00:00
resources Bench baseline for mostly 0 image. 2013-09-25 21:42:12 +00:00
samplecode Revert "Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""" 2013-12-06 21:43:05 +00:00
src Make GrBicubicEffect take tile modes rather than GrTextureParams. 2013-12-10 12:53:39 +00:00
tests Sanitizing source files in Housekeeper-Nightly 2013-12-10 07:02:03 +00:00
third_party Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
tools Add more valgrind suppressions 2013-12-09 13:55:33 +00:00
trybots_to_run/chrome Deleting the hardcoded list of compile bots in trybots_to_run. 2013-04-09 11:59:42 +00:00
.gitignore Add a canvas object with drawRect() and inval(). 2013-12-10 14:13:03 +00:00
codereview.settings Removing blank lines from codereview.settings. 2013-02-26 16:01:21 +00:00
DEPS Reverting r12427 2013-12-02 13:50:38 +00:00
Doxyfile Pointing to http://skia-autogen.googlecode.com/svn/docs/html/index.html in Doxyfile 2012-07-03 11:35:07 +00:00
gyp_skia Fix ninja build on Android 2013-10-01 15:31:54 +00:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
LICENSE Manually update copyright notices in files that defied the automated process 2011-07-28 14:24:55 +00:00
make.bat Make make.bat and gyp_skia work with VS 2012. 2013-05-07 19:31:20 +00:00
make.py Use SKIA_OUT variable in make.py 2013-07-23 15:45:50 +00:00
Makefile pathops work in progress 2013-11-01 17:36:03 +00:00
Makefile.old Replace GR_*_BUILD by their SK_BUILD_FOR_* equivalents. 2013-09-25 20:57:51 +00:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py If any change is made to the public API then make sure there is an LGTM from an owner. 2013-08-12 14:51:20 +00:00
README whitespace commit to trigger buildbot 2011-07-15 14:11:58 +00:00
README.chromium add root files from chrome 2013-08-13 19:11:15 +00:00
skia.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
whitespace.txt adding to whitespace.txt using a pure git checkout 2013-12-09 19:08:44 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at http://code.google.com/p/skia/wiki/DocRoot