# Failures of any GM tests listed in this file will be ignored [1], as
# if they had been marked "ignore-failure": true in the per-builder
# expected-results.json files.
#
# The idea is that, if you modify a GM test in such a way that you know it will
# require rebaselines on multiple platforms, you should add that test's name to
# this list within the same CL that modifies the test.
# Then, AS SOON AS POSSIBLE, you should rebaseline the tests (they will show up
# as status "failure-ignored") and remove the line you added to this file.
# If there are any lingering failures that need to be suppressed (ignored), you
# MUST move those suppressions into the per-builder expected-results.json files.
#
# The test name must match exactly (no partial string matches).
# See http://skbug.com/2022
#
# Any lines starting with '#' are comments and will be ignored.
# Other than that, each line must either be whitespace or list just one test.
#
# For more information, see https://code.google.com/p/skia/issues/detail?id=1600
# ('GM expectations: create tool to suppress failures until new baselines are
# checked in')
#
#
# [1] Differences between renderModes (e.g., normal rendering path and
# "serialized") are NEVER ignored.  See
# https://code.google.com/p/skia/issues/detail?id=1748 ('gm: add new result
# type, RenderModeMismatch')

# EXAMPLES: (remove the first '#' on each line)
#
## Added as part of MADE-UP BUG
## http://skbug.com/123456 : ignoring failures on gradtext GM test
## epoger will rebaseline by 25 Dec 2013
#gradtext

# To be rebaselined (fmalita)
textblob

# Expected diffs on gpu cubics (egdaniel)
bezier_cubic_effects

# reed
matrixconvolution

# Added as part of https://codereview.chromium.org/466363009/
fontcache

#humper: https://codereview.chromium.org/470233002/
imagefilterscropexpand_565.png
xfermodeimagefilter_565.png
bitmapsource_8888.png
imagefiltersscaled_565.png
resizeimagefilter_8888.png
resizeimagefilter_565.png
imagefiltersclipped_565.png
tileimagefilter_565.png
displacement_8888.png
imagefiltersscaled_8888.png
xfermodeimagefilter_8888.png
imagefiltersclipped_8888.png
imagefilterscropexpand_8888.png
offsetimagefilter_8888.png
displacement_565.png
bitmapsource_565.png
tileimagefilter_8888.png
imagefiltersgraph_8888.png
offsetimagefilter_565.png
imagefiltersgraph_565.png
downsamplebitmap_checkerboard_high_512_256
downsamplebitmap_image_high_mandrill_512.png
downsamplebitmap_text_high_72.00pt
filterbitmap_checkerboard_192_192
filterbitmap_checkerboard_32_2
filterbitmap_checkerboard_32_32
filterbitmap_checkerboard_32_8
filterbitmap_checkerboard_4_4
filterbitmap_image_mandrill_128.png
filterbitmap_image_mandrill_16.png
filterbitmap_image_mandrill_256.png
filterbitmap_image_mandrill_512.png
filterbitmap_image_mandrill_32.png
filterbitmap_image_mandrill_64.png
filterbitmap_text_3.00pt
filterbitmap_text_7.00pt
