Commit 11caa3d7 authored by Xianda Sun's avatar Xianda Sun Committed by Commit Bot

Revert "cc: Enable mask tiling"

This reverts commit 83daa38b.

Reason for revert: The patch potentially caused crbug.com/736248, need further investigation.

Original change's description:
> cc: Enable mask tiling
> 
> Set the cc flag enable_mask_tiling to true. Masks without filters are
> now tiled.
> 
> Bug: 567293, 567296
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: Iaeb8477b1aba550f0eec1afd9ef0cbb27381ccc1
> Reviewed-on: https://chromium-review.googlesource.com/543517
> Commit-Queue: Xianda Sun <sunxd@chromium.org>
> Reviewed-by: Chris harrelson <chrishtr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#481563}

TBR=trchen@chromium.org,chrishtr@chromium.org,enne@chromium.org,sunxd@chromium.org,schenney@chromium.org

Change-Id: I0f83150b90caca0ef2e65e6c886509c06863df47
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 567293, 567296
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/545775Reviewed-by: default avatarXianda Sun <sunxd@chromium.org>
Commit-Queue: Xianda Sun <sunxd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481881}
parent 9fcf0a70
......@@ -403,9 +403,6 @@ void RenderSurfaceImpl::AppendQuads(DrawMode draw_mode,
// mask layers.
DCHECK(BlendMode() != SkBlendMode::kDstIn)
<< "kDstIn blend mode with mask layer is unsupported.";
TRACE_EVENT1("cc", "RenderSurfaceImpl::AppendQuads",
"mask_layer_gpu_memory_usage",
mask_layer->GPUMemoryUsageInBytes());
if (mask_layer->mask_type() == Layer::LayerMaskType::MULTI_TEXTURE_MASK) {
TileMaskLayer(render_pass, shared_quad_state, visible_layer_rect);
return;
......
......@@ -1026,7 +1026,6 @@ void ComputeMaskDrawProperties(LayerImpl* mask_layer,
property_trees->transform_tree);
mask_layer->draw_properties().visible_layer_rect =
gfx::Rect(mask_layer->bounds());
mask_layer->draw_properties().opacity = 1;
}
void ComputeSurfaceDrawProperties(PropertyTrees* property_trees,
......
......@@ -7322,93 +7322,6 @@ class LayerTreeTestMaskWithNonExactTextureSize : public LayerTreeTest {
SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeTestMaskWithNonExactTextureSize);
class LayerTreeTestSolidColorMaskLayer : public LayerTreeTest {
protected:
void SetupTree() override {
// Root
// |
// +-- Content Layer
// +--Mask
scoped_refptr<Layer> root = Layer::Create();
scoped_refptr<FakePictureLayer> content_layer =
FakePictureLayer::Create(&client_);
root->AddChild(content_layer);
gfx::Size content_size(100, 100);
std::unique_ptr<RecordingSource> recording_source =
FakeRecordingSource::CreateFilledRecordingSource(content_size);
PaintFlags paint;
static_cast<FakeRecordingSource*>(recording_source.get())
->add_draw_rect_with_flags(gfx::Rect(content_size), paint);
client_.set_fill_with_nonsolid_color(true);
static_cast<FakeRecordingSource*>(recording_source.get())->Rerecord();
scoped_refptr<FakePictureLayer> mask_layer =
FakePictureLayer::CreateWithRecordingSource(
&client_, std::move(recording_source));
content_layer->SetMaskLayer(mask_layer.get());
gfx::Size root_size(100, 100);
root->SetBounds(root_size);
content_layer->SetBounds(content_size);
mask_layer->SetBounds(content_size);
mask_layer->SetLayerMaskType(Layer::LayerMaskType::MULTI_TEXTURE_MASK);
layer_tree_host()->SetRootLayer(root);
LayerTreeTest::SetupTree();
client_.set_bounds(root->bounds());
}
void BeginTest() override { PostSetNeedsCommitToMainThread(); }
DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
LayerTreeHostImpl::FrameData* frame_data,
DrawResult draw_result) override {
EXPECT_EQ(2u, frame_data->render_passes.size());
RenderPass* root_pass = frame_data->render_passes.back().get();
EXPECT_EQ(2u, root_pass->quad_list.size());
// There's a solid color quad under everything.
EXPECT_EQ(DrawQuad::SOLID_COLOR, root_pass->quad_list.back()->material);
// Mask layer tiles should not be skipped even if the mask layer is solid
// color.
EXPECT_EQ(DrawQuad::RENDER_PASS, root_pass->quad_list.front()->material);
const RenderPassDrawQuad* render_pass_quad =
RenderPassDrawQuad::MaterialCast(root_pass->quad_list.front());
EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(),
render_pass_quad->rect.ToString());
EXPECT_EQ(gfx::RectF().ToString(),
render_pass_quad->mask_uv_rect.ToString());
EndTest();
return draw_result;
}
void AfterTest() override {}
FakeContentLayerClient client_;
};
class LayerTreeTestSingleTextureSolidColorMaskLayer
: public LayerTreeTestSolidColorMaskLayer {
public:
void InitializeSettings(LayerTreeSettings* settings) override {
settings->enable_mask_tiling = false;
}
};
SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeTestSingleTextureSolidColorMaskLayer);
class LayerTreeTestMultiTextureSolidColorMaskLayer
: public LayerTreeTestSolidColorMaskLayer {
public:
void InitializeSettings(LayerTreeSettings* settings) override {
settings->enable_mask_tiling = true;
}
};
SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeTestMultiTextureSolidColorMaskLayer);
class LayerTreeTestPageScaleFlags : public LayerTreeTest {
protected:
void SetupTree() override {
......
......@@ -94,7 +94,7 @@ class CC_EXPORT LayerTreeSettings {
// TODO(sunxd): remove this flag when filter demoting and aa of mask layers
// are implemented.
bool enable_mask_tiling = true;
bool enable_mask_tiling = false;
// If set to true, the compositor may selectively defer image decodes to the
// Image Decode Service and raster tiles without images until the decode is
......
<!DOCTYPE html>
<html>
<script>
if (window.testRunner) {
testRunner.dumpAsTextWithPixelResults();
}
</script>
<body style="overflow:hidden">
<div style="-webkit-transform-origin: 0 0; transform:translate(50px,50px) scale(1.5); background: green; width:30em; height:8em;">
<div style="-webkit-transform-origin: 0 0; transform:scale(1.5);">
<!-- Use short lines of text to avoid accumulating error -->
Text on<br/>
a scaled<br/>
composited<br/>
layer<br/>
</div>
</div>
</body>
</html>
This is a testharness.js-based test.
FAIL Verify canvas tainting of fetched image in a Service Worker assert_equals: expected "finish" but got "failure:Result of url:https://web-platform.test:8444/service-workers/service-worker/resources/fetch-access-control.py?PNGIMAGE&mode=cors&url=https%3A%2F%2Fwww1.web-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Ffetch-access-control.py%3FPNGIMAGE%26ACAOrigin%3Dhttps%3A%2F%2Fweb-platform.test%3A8444 cross_origin: use-credentials must be LOAD_ERROR but NOT_TAINTED"
Harness: the test ran to completion.
This is a testharness.js-based test.
FAIL Verify canvas tainting of fetched image in a Service Worker assert_equals: expected "finish" but got "failure:Result of url:https://web-platform.test:8444/service-workers/service-worker/resources/fetch-access-control.py?PNGIMAGE&mode=cors&url=https%3A%2F%2Fwww1.web-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Ffetch-access-control.py%3FPNGIMAGE%26ACAOrigin%3Dhttps%3A%2F%2Fweb-platform.test%3A8444 cross_origin: use-credentials must be LOAD_ERROR but NOT_TAINTED"
Harness: the test ran to completion.
This is a testharness.js-based test.
FAIL Verify canvas tainting of fetched image in a Service Worker assert_equals: expected "finish" but got "failure:Result of url:https://www1.web-platform.test:8444/service-workers/service-worker/resources/fetch-access-control.py?PNGIMAGE&mode=cors&credentials=same-origin&url=https%3A%2F%2Fwww1.web-platform.test%3A8444%2Fservice-workers%2Fservice-worker%2Fresources%2Ffetch-access-control.py%3FPNGIMAGE%26ACAOrigin%3Dhttps%3A%2F%2Fweb-platform.test%3A8444 cross_origin: must be TAINTED but NOT_TAINTED"
Harness: the test ran to completion.
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