Commit 2a1b9b7f authored by Sean Gilhuly's avatar Sean Gilhuly Committed by Commit Bot

Add disabled AA pixel tests for SkiaRenderer

Some AA pixels tests are not passing on SkiaRenderer. De-parameterize
them, and use the prefix DISABLED_ so they can be run without modifying
the test code.

These tests can be run with:
out/Default/viz_unittests --gtest_filter=SkiaRendererAAPixelTest*
  --gtest_also_run_disabled_tests

Bug: 939442
Change-Id: I3a88baddd379c401d62722ec460aaac0f4caf332
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1541939Reviewed-by: default avatarJonathan Backer <backer@chromium.org>
Commit-Queue: Sean Gilhuly <sgilhuly@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644882}
parent 4dd49ab6
...@@ -3047,42 +3047,102 @@ TYPED_TEST(ExternalStencilPixelTest, RenderSurfacesIgnoreStencil) { ...@@ -3047,42 +3047,102 @@ TYPED_TEST(ExternalStencilPixelTest, RenderSurfacesIgnoreStencil) {
cc::ExactPixelComparator(true))); cc::ExactPixelComparator(true)));
} }
// Software renderer does not support anti-aliased edges. template <typename RendererType>
TYPED_TEST(GLOnlyRendererPixelTest, AntiAliasing) { class RendererAAPixelTest : public RendererPixelTest<RendererType> {
gfx::Rect rect(this->device_viewport_size_); public:
void AntiAliasing() {
gfx::Rect rect(this->device_viewport_size_);
int id = 1; int id = 1;
std::unique_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); std::unique_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
gfx::Transform red_quad_to_target_transform; gfx::Transform red_quad_to_target_transform;
red_quad_to_target_transform.Rotate(10); red_quad_to_target_transform.Rotate(10);
SharedQuadState* red_shared_state = CreateTestSharedQuadState( SharedQuadState* red_shared_state = CreateTestSharedQuadState(
red_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); red_quad_to_target_transform, rect, pass.get(), gfx::RRectF());
auto* red = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); auto* red = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
red->SetNew(red_shared_state, rect, rect, SK_ColorRED, false); red->SetNew(red_shared_state, rect, rect, SK_ColorRED, false);
gfx::Transform yellow_quad_to_target_transform; gfx::Transform yellow_quad_to_target_transform;
yellow_quad_to_target_transform.Rotate(5); yellow_quad_to_target_transform.Rotate(5);
SharedQuadState* yellow_shared_state = CreateTestSharedQuadState( SharedQuadState* yellow_shared_state = CreateTestSharedQuadState(
yellow_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); yellow_quad_to_target_transform, rect, pass.get(), gfx::RRectF());
auto* yellow = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); auto* yellow = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
yellow->SetNew(yellow_shared_state, rect, rect, SK_ColorYELLOW, false); yellow->SetNew(yellow_shared_state, rect, rect, SK_ColorYELLOW, false);
gfx::Transform blue_quad_to_target_transform; gfx::Transform blue_quad_to_target_transform;
SharedQuadState* blue_shared_state = CreateTestSharedQuadState( SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
blue_quad_to_target_transform, rect, pass.get(), gfx::RRectF()); blue_quad_to_target_transform, rect, pass.get(), gfx::RRectF());
auto* blue = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); auto* blue = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false); blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false);
RenderPassList pass_list; RenderPassList pass_list;
pass_list.push_back(std::move(pass)); pass_list.push_back(std::move(pass));
EXPECT_TRUE(this->RunPixelTest( EXPECT_TRUE(this->RunPixelTest(
&pass_list, base::FilePath(FILE_PATH_LITERAL("anti_aliasing.png")), &pass_list, base::FilePath(FILE_PATH_LITERAL("anti_aliasing.png")),
cc::FuzzyPixelOffByOneComparator(true))); cc::FuzzyPixelOffByOneComparator(true)));
}
void AntiAliasingPerspective() {
gfx::Rect rect(this->device_viewport_size_);
std::unique_ptr<RenderPass> pass = CreateTestRootRenderPass(1, rect);
gfx::Rect red_rect(0, 0, 180, 500);
gfx::Transform red_quad_to_target_transform(
1.0f, 2.4520f, 10.6206f, 19.0f, 0.0f, 0.3528f, 5.9737f, 9.5f, 0.0f,
-0.2250f, -0.9744f, 0.0f, 0.0f, 0.0225f, 0.0974f, 1.0f);
SharedQuadState* red_shared_state = CreateTestSharedQuadState(
red_quad_to_target_transform, red_rect, pass.get(), gfx::RRectF());
auto* red = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
red->SetNew(red_shared_state, red_rect, red_rect, SK_ColorRED, false);
gfx::Rect green_rect(19, 7, 180, 10);
SharedQuadState* green_shared_state = CreateTestSharedQuadState(
gfx::Transform(), green_rect, pass.get(), gfx::RRectF());
auto* green = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
green->SetNew(green_shared_state, green_rect, green_rect, SK_ColorGREEN,
false);
SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
gfx::Transform(), rect, pass.get(), gfx::RRectF());
auto* blue = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false);
RenderPassList pass_list;
pass_list.push_back(std::move(pass));
EXPECT_TRUE(this->RunPixelTest(
&pass_list,
base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")),
cc::FuzzyPixelOffByOneComparator(true)));
}
};
// TODO(crbug.com/939442): Combine these tests once they are passing on
// SkiaRenderer.
using GLRendererAAPixelTest = RendererAAPixelTest<GLRenderer>;
using SkiaRendererAAPixelTest = RendererAAPixelTest<SkiaRenderer>;
// Software renderer does not support anti-aliased edges.
TEST_F(GLRendererAAPixelTest, AntiAliasing) {
AntiAliasing();
}
TEST_F(SkiaRendererAAPixelTest, DISABLED_AntiAliasing) {
AntiAliasing();
}
TEST_F(GLRendererAAPixelTest, AntiAliasingPerspective) {
AntiAliasingPerspective();
}
TEST_F(SkiaRendererAAPixelTest, DISABLED_AntiAliasingPerspective) {
AntiAliasingPerspective();
} }
// This test tests that anti-aliasing works for axis aligned quads. // This test tests that anti-aliasing works for axis aligned quads.
...@@ -3292,41 +3352,6 @@ TYPED_TEST(GLCapableRendererPixelTest, TileDrawQuadForceAntiAliasingOff) { ...@@ -3292,41 +3352,6 @@ TYPED_TEST(GLCapableRendererPixelTest, TileDrawQuadForceAntiAliasingOff) {
cc::ExactPixelComparator(false))); cc::ExactPixelComparator(false)));
} }
TYPED_TEST(GLOnlyRendererPixelTest, AntiAliasingPerspective) {
gfx::Rect rect(this->device_viewport_size_);
std::unique_ptr<RenderPass> pass = CreateTestRootRenderPass(1, rect);
gfx::Rect red_rect(0, 0, 180, 500);
gfx::Transform red_quad_to_target_transform(
1.0f, 2.4520f, 10.6206f, 19.0f, 0.0f, 0.3528f, 5.9737f, 9.5f, 0.0f,
-0.2250f, -0.9744f, 0.0f, 0.0f, 0.0225f, 0.0974f, 1.0f);
SharedQuadState* red_shared_state = CreateTestSharedQuadState(
red_quad_to_target_transform, red_rect, pass.get(), gfx::RRectF());
auto* red = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
red->SetNew(red_shared_state, red_rect, red_rect, SK_ColorRED, false);
gfx::Rect green_rect(19, 7, 180, 10);
SharedQuadState* green_shared_state = CreateTestSharedQuadState(
gfx::Transform(), green_rect, pass.get(), gfx::RRectF());
auto* green = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
green->SetNew(green_shared_state, green_rect, green_rect, SK_ColorGREEN,
false);
SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
gfx::Transform(), rect, pass.get(), gfx::RRectF());
auto* blue = pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
blue->SetNew(blue_shared_state, rect, rect, SK_ColorBLUE, false);
RenderPassList pass_list;
pass_list.push_back(std::move(pass));
EXPECT_TRUE(this->RunPixelTest(
&pass_list,
base::FilePath(FILE_PATH_LITERAL("anti_aliasing_perspective.png")),
cc::FuzzyPixelOffByOneComparator(true)));
}
// Trilinear filtering is only supported in the gl renderer. // Trilinear filtering is only supported in the gl renderer.
TYPED_TEST(GLCapableRendererPixelTest, TrilinearFiltering) { TYPED_TEST(GLCapableRendererPixelTest, TrilinearFiltering) {
gfx::Rect viewport_rect(this->device_viewport_size_); gfx::Rect viewport_rect(this->device_viewport_size_);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment