OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/trees/layer_tree_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <cmath> | 10 #include <cmath> |
(...skipping 10170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10181 settings.gpu_rasterization_forced = true; | 10181 settings.gpu_rasterization_forced = true; |
10182 EXPECT_TRUE(CreateHostImpl(settings, FakeOutputSurface::Create3d())); | 10182 EXPECT_TRUE(CreateHostImpl(settings, FakeOutputSurface::Create3d())); |
10183 | 10183 |
10184 host_impl_->SetHasGpuRasterizationTrigger(false); | 10184 host_impl_->SetHasGpuRasterizationTrigger(false); |
10185 host_impl_->SetContentIsSuitableForGpuRasterization(false); | 10185 host_impl_->SetContentIsSuitableForGpuRasterization(false); |
10186 EXPECT_EQ(GpuRasterizationStatus::ON_FORCED, | 10186 EXPECT_EQ(GpuRasterizationStatus::ON_FORCED, |
10187 host_impl_->gpu_rasterization_status()); | 10187 host_impl_->gpu_rasterization_status()); |
10188 EXPECT_TRUE(host_impl_->use_gpu_rasterization()); | 10188 EXPECT_TRUE(host_impl_->use_gpu_rasterization()); |
10189 } | 10189 } |
10190 | 10190 |
| 10191 class MsaaIsSlowLayerTreeHostImplTest : public LayerTreeHostImplTest { |
| 10192 public: |
| 10193 void CreateHostImplWithMsaaIsSlow(bool msaa_is_slow) { |
| 10194 LayerTreeSettings settings = DefaultSettings(); |
| 10195 settings.gpu_rasterization_enabled = true; |
| 10196 settings.gpu_rasterization_msaa_sample_count = 4; |
| 10197 auto context_provider = TestContextProvider::Create(); |
| 10198 context_provider->UnboundTestContext3d()->SetMaxSamples(4); |
| 10199 context_provider->UnboundTestContext3d()->set_msaa_is_slow(msaa_is_slow); |
| 10200 auto msaa_is_normal_output_surface = |
| 10201 FakeOutputSurface::Create3d(context_provider); |
| 10202 EXPECT_TRUE( |
| 10203 CreateHostImpl(settings, std::move(msaa_is_normal_output_surface))); |
| 10204 } |
| 10205 }; |
| 10206 |
| 10207 TEST_F(MsaaIsSlowLayerTreeHostImplTest, GpuRasterizationStatusMsaaIsSlow) { |
| 10208 // Ensure that without the msaa_is_slow cap we raster unsuitable content with |
| 10209 // msaa. |
| 10210 CreateHostImplWithMsaaIsSlow(false); |
| 10211 host_impl_->SetHasGpuRasterizationTrigger(true); |
| 10212 host_impl_->SetContentIsSuitableForGpuRasterization(false); |
| 10213 EXPECT_EQ(GpuRasterizationStatus::MSAA_CONTENT, |
| 10214 host_impl_->gpu_rasterization_status()); |
| 10215 EXPECT_TRUE(host_impl_->use_gpu_rasterization()); |
| 10216 |
| 10217 // Ensure that with the msaa_is_slow cap we don't raster unsuitable content |
| 10218 // with msaa. |
| 10219 CreateHostImplWithMsaaIsSlow(true); |
| 10220 host_impl_->SetHasGpuRasterizationTrigger(true); |
| 10221 host_impl_->SetContentIsSuitableForGpuRasterization(false); |
| 10222 EXPECT_EQ(GpuRasterizationStatus::OFF_CONTENT, |
| 10223 host_impl_->gpu_rasterization_status()); |
| 10224 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); |
| 10225 } |
| 10226 |
10191 // A mock output surface which lets us detect calls to ForceReclaimResources. | 10227 // A mock output surface which lets us detect calls to ForceReclaimResources. |
10192 class MockReclaimResourcesOutputSurface : public FakeOutputSurface { | 10228 class MockReclaimResourcesOutputSurface : public FakeOutputSurface { |
10193 public: | 10229 public: |
10194 static scoped_ptr<MockReclaimResourcesOutputSurface> Create3d() { | 10230 static scoped_ptr<MockReclaimResourcesOutputSurface> Create3d() { |
10195 return make_scoped_ptr(new MockReclaimResourcesOutputSurface( | 10231 return make_scoped_ptr(new MockReclaimResourcesOutputSurface( |
10196 TestContextProvider::Create(), TestContextProvider::CreateWorker(), | 10232 TestContextProvider::Create(), TestContextProvider::CreateWorker(), |
10197 false)); | 10233 false)); |
10198 } | 10234 } |
10199 | 10235 |
10200 MOCK_METHOD0(ForceReclaimResources, void()); | 10236 MOCK_METHOD0(ForceReclaimResources, void()); |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10357 // There should not be any jitter measured till we hit the fixed point hits | 10393 // There should not be any jitter measured till we hit the fixed point hits |
10358 // threshold. | 10394 // threshold. |
10359 float expected_jitter = | 10395 float expected_jitter = |
10360 (i == pending_tree->kFixedPointHitsThreshold) ? 500 : 0; | 10396 (i == pending_tree->kFixedPointHitsThreshold) ? 500 : 0; |
10361 EXPECT_EQ(jitter, expected_jitter); | 10397 EXPECT_EQ(jitter, expected_jitter); |
10362 } | 10398 } |
10363 } | 10399 } |
10364 | 10400 |
10365 } // namespace | 10401 } // namespace |
10366 } // namespace cc | 10402 } // namespace cc |
OLD | NEW |