Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(704)

Side by Side Diff: cc/trees/layer_tree_host_pixeltest_blending.cc

Issue 639773010: Prevent division by 0 in set_luminance shader function. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: adjusting test error values Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/shader.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/image_layer.h" 5 #include "cc/layers/image_layer.h"
6 #include "cc/layers/solid_color_layer.h" 6 #include "cc/layers/solid_color_layer.h"
7 #include "cc/test/layer_tree_pixel_test.h" 7 #include "cc/test/layer_tree_pixel_test.h"
8 #include "cc/test/pixel_comparator.h" 8 #include "cc/test/pixel_comparator.h"
9 9
10 #if !defined(OS_ANDROID) 10 #if !defined(OS_ANDROID)
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 background->SetIsRootForIsolatedGroup(true); 226 background->SetIsRootForIsolatedGroup(true);
227 root->AddChild(background); 227 root->AddChild(background);
228 228
229 CreateBlendingColorLayers(kRootSize, kRootSize, background.get(), flags); 229 CreateBlendingColorLayers(kRootSize, kRootSize, background.get(), flags);
230 230
231 this->impl_side_painting_ = false; 231 this->impl_side_painting_ = false;
232 this->force_antialiasing_ = (flags & kUseAntialiasing); 232 this->force_antialiasing_ = (flags & kUseAntialiasing);
233 233
234 if ((flags & kUseAntialiasing) && (type == PIXEL_TEST_GL)) { 234 if ((flags & kUseAntialiasing) && (type == PIXEL_TEST_GL)) {
235 // Anti aliasing causes differences up to 7 pixels at the edges. 235 // Anti aliasing causes differences up to 7 pixels at the edges.
236 int large_error_allowed = 7; 236 // Several pixels have 9 units difference on the alpha channel.
237 int large_error_allowed = (flags & kUseMasks) ? 7 : 9;
237 // Blending results might differ with one pixel. 238 // Blending results might differ with one pixel.
238 int small_error_allowed = 1; 239 int small_error_allowed = 1;
239 // Most of the errors are one pixel errors. 240 // Most of the errors are one pixel errors.
240 float percentage_pixels_small_error = 12.5f; 241 float percentage_pixels_small_error = (flags & kUseMasks) ? 7.7f : 12.1f;
241 // Because of anti-aliasing, around 3% of pixels (at the edges) have 242 // Because of anti-aliasing, around 3% of pixels (at the edges) have
242 // bigger errors (from small_error_allowed + 1 to large_error_allowed). 243 // bigger errors (from small_error_allowed + 1 to large_error_allowed).
243 float percentage_pixels_error = 15.0f; 244 float percentage_pixels_error = (flags & kUseMasks) ? 12.4f : 15.f;
244 // The average error is still close to 1. 245 // The average error is still close to 1.
245 float average_error_allowed_in_bad_pixels = 1.3f; 246 float average_error_allowed_in_bad_pixels =
247 (flags & kUseMasks) ? 1.3f : 1.f;
246 248
247 // The sepia filter generates more small errors, but the number of large 249 // The sepia filter generates more small errors, but the number of large
248 // errors remains around 3%. 250 // errors remains around 3%.
249 if (flags & kUseColorMatrix) { 251 if (flags & kUseColorMatrix) {
250 percentage_pixels_small_error = 26.f; 252 percentage_pixels_small_error = (flags & kUseMasks) ? 14.0f : 26.f;
251 percentage_pixels_error = 29.f; 253 percentage_pixels_error = (flags & kUseMasks) ? 18.5f : 29.f;
254 average_error_allowed_in_bad_pixels = (flags & kUseMasks) ? 0.9f : 0.7f;
252 } 255 }
253 256
254 // Anti-aliased pixels in combination with non-separable blend modes and
255 // a white background produces several black pixels (6 for these tests).
256 // Having a mask will hide the black pixels.
257 // TODO(rosca): fix this issue for non-separable blend modes.
258 if (!(flags & kUseMasks))
259 large_error_allowed = 255;
260
261 pixel_comparator_.reset( 257 pixel_comparator_.reset(
262 new FuzzyPixelComparator(false, // discard_alpha 258 new FuzzyPixelComparator(false, // discard_alpha
263 percentage_pixels_error, 259 percentage_pixels_error,
264 percentage_pixels_small_error, 260 percentage_pixels_small_error,
265 average_error_allowed_in_bad_pixels, 261 average_error_allowed_in_bad_pixels,
266 large_error_allowed, 262 large_error_allowed,
267 small_error_allowed)); 263 small_error_allowed));
268 } else if ((flags & kUseColorMatrix) && (type == PIXEL_TEST_GL)) { 264 } else if ((flags & kUseColorMatrix) && (type == PIXEL_TEST_GL)) {
269 float percentage_pixels_error = 100.f; 265 float percentage_pixels_error = 100.f;
270 float percentage_pixels_small_error = 0.f; 266 float percentage_pixels_small_error = 0.f;
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 RunBlendingWithRenderPass( 430 RunBlendingWithRenderPass(
435 PIXEL_TEST_SOFTWARE, 431 PIXEL_TEST_SOFTWARE,
436 FILE_PATH_LITERAL("blending_render_pass_mask_cm.png"), 432 FILE_PATH_LITERAL("blending_render_pass_mask_cm.png"),
437 kUseMasks | kUseAntialiasing | kUseColorMatrix); 433 kUseMasks | kUseAntialiasing | kUseColorMatrix);
438 } 434 }
439 435
440 } // namespace 436 } // namespace
441 } // namespace cc 437 } // namespace cc
442 438
443 #endif // OS_ANDROID 439 #endif // OS_ANDROID
OLDNEW
« no previous file with comments | « cc/output/shader.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698