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

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

Issue 251343002: Remove offscreen compositor contexts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-offscreencontext: include Created 6 years, 8 months 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 | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 5498 matching lines...) Expand 10 before | Expand all | Expand 10 after
5509 output_surface_ = output_surface.get(); 5509 output_surface_ = output_surface.get();
5510 5510
5511 EXPECT_TRUE(CreateHostImpl(DefaultSettings(), 5511 EXPECT_TRUE(CreateHostImpl(DefaultSettings(),
5512 output_surface.PassAs<OutputSurface>())); 5512 output_surface.PassAs<OutputSurface>()));
5513 5513
5514 scoped_ptr<SolidColorLayerImpl> root_layer = 5514 scoped_ptr<SolidColorLayerImpl> root_layer =
5515 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); 5515 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
5516 SetupRootLayerImpl(root_layer.PassAs<LayerImpl>()); 5516 SetupRootLayerImpl(root_layer.PassAs<LayerImpl>());
5517 5517
5518 onscreen_context_provider_ = TestContextProvider::Create(); 5518 onscreen_context_provider_ = TestContextProvider::Create();
5519 offscreen_context_provider_ = TestContextProvider::Create();
5520 } 5519 }
5521 5520
5522 virtual void UpdateRendererCapabilitiesOnImplThread() OVERRIDE { 5521 virtual void UpdateRendererCapabilitiesOnImplThread() OVERRIDE {
5523 did_update_renderer_capabilities_ = true; 5522 did_update_renderer_capabilities_ = true;
5524 } 5523 }
5525 5524
5526 FakeOutputSurface* output_surface_; 5525 FakeOutputSurface* output_surface_;
5527 scoped_refptr<TestContextProvider> onscreen_context_provider_; 5526 scoped_refptr<TestContextProvider> onscreen_context_provider_;
5528 scoped_refptr<TestContextProvider> offscreen_context_provider_;
5529 bool did_update_renderer_capabilities_; 5527 bool did_update_renderer_capabilities_;
5530 }; 5528 };
5531 5529
5532 5530
5533 TEST_F(LayerTreeHostImplTestDeferredInitialize, Success) { 5531 TEST_F(LayerTreeHostImplTestDeferredInitialize, Success) {
5534 // Software draw. 5532 // Software draw.
5535 DrawFrame(); 5533 DrawFrame();
5536 5534
5537 EXPECT_FALSE(host_impl_->output_surface()->context_provider()); 5535 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5538 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5539 5536
5540 // DeferredInitialize and hardware draw. 5537 // DeferredInitialize and hardware draw.
5541 did_update_renderer_capabilities_ = false; 5538 did_update_renderer_capabilities_ = false;
5542 EXPECT_TRUE(output_surface_->InitializeAndSetContext3d( 5539 EXPECT_TRUE(
5543 onscreen_context_provider_, offscreen_context_provider_)); 5540 output_surface_->InitializeAndSetContext3d(onscreen_context_provider_));
5544 EXPECT_EQ(onscreen_context_provider_, 5541 EXPECT_EQ(onscreen_context_provider_,
5545 host_impl_->output_surface()->context_provider()); 5542 host_impl_->output_surface()->context_provider());
5546 EXPECT_EQ(offscreen_context_provider_,
5547 host_impl_->offscreen_context_provider());
5548 EXPECT_TRUE(did_update_renderer_capabilities_); 5543 EXPECT_TRUE(did_update_renderer_capabilities_);
5549 5544
5550 // Defer intialized GL draw. 5545 // Defer intialized GL draw.
5551 DrawFrame(); 5546 DrawFrame();
5552 5547
5553 // Revert back to software. 5548 // Revert back to software.
5554 did_update_renderer_capabilities_ = false; 5549 did_update_renderer_capabilities_ = false;
5555 output_surface_->ReleaseGL(); 5550 output_surface_->ReleaseGL();
5556 EXPECT_FALSE(host_impl_->output_surface()->context_provider()); 5551 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5557 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5558 EXPECT_TRUE(did_update_renderer_capabilities_); 5552 EXPECT_TRUE(did_update_renderer_capabilities_);
5559 5553
5560 // Software draw again. 5554 // Software draw again.
5561 DrawFrame(); 5555 DrawFrame();
5562 } 5556 }
5563 5557
5564 TEST_F(LayerTreeHostImplTestDeferredInitialize, Fails_OnscreenContext_0) { 5558 TEST_F(LayerTreeHostImplTestDeferredInitialize, Fails) {
5565 // Software draw. 5559 // Software draw.
5566 DrawFrame(); 5560 DrawFrame();
5567 5561
5568 // Fail initialization of the onscreen context before the OutputSurface binds 5562 // Fail initialization of the onscreen context before the OutputSurface binds
5569 // it to the thread. 5563 // it to the thread.
5570 onscreen_context_provider_->UnboundTestContext3d()->set_context_lost(true); 5564 onscreen_context_provider_->UnboundTestContext3d()->set_context_lost(true);
5571 5565
5572 EXPECT_FALSE(host_impl_->output_surface()->context_provider()); 5566 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5573 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5574 5567
5575 // DeferredInitialize fails. 5568 // DeferredInitialize fails.
5576 did_update_renderer_capabilities_ = false; 5569 did_update_renderer_capabilities_ = false;
5577 EXPECT_FALSE(output_surface_->InitializeAndSetContext3d( 5570 EXPECT_FALSE(
5578 onscreen_context_provider_, offscreen_context_provider_)); 5571 output_surface_->InitializeAndSetContext3d(onscreen_context_provider_));
5579 EXPECT_FALSE(host_impl_->output_surface()->context_provider()); 5572 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5580 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5581 EXPECT_FALSE(did_update_renderer_capabilities_); 5573 EXPECT_FALSE(did_update_renderer_capabilities_);
5582 5574
5583 // Software draw again. 5575 // Software draw again.
5584 DrawFrame(); 5576 DrawFrame();
5585 } 5577 }
5586 5578
5587 // TODO(boliu): After r239415, fails_OnscreenContext_1 and 2 are exactly the
5588 // same as 0. They were supposed to test makeCurrent failing in the
5589 // OutputSurface, LayerTreeHostImpl, and GLRenderer respectively.
5590 TEST_F(LayerTreeHostImplTestDeferredInitialize, Fails_OnscreenContext_1) {
5591 // Software draw.
5592 DrawFrame();
5593
5594 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5595 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5596
5597 onscreen_context_provider_->UnboundTestContext3d()->set_context_lost(true);
5598
5599 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5600 // DeferredInitialize fails.
5601 did_update_renderer_capabilities_ = false;
5602 EXPECT_FALSE(output_surface_->InitializeAndSetContext3d(
5603 onscreen_context_provider_, offscreen_context_provider_));
5604 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5605 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5606 EXPECT_FALSE(did_update_renderer_capabilities_);
5607 }
5608
5609 TEST_F(LayerTreeHostImplTestDeferredInitialize, Fails_OnscreenContext_2) {
5610 // Software draw.
5611 DrawFrame();
5612
5613 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5614 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5615
5616 onscreen_context_provider_->UnboundTestContext3d()->set_context_lost(true);
5617
5618 // DeferredInitialize fails.
5619 did_update_renderer_capabilities_ = false;
5620 EXPECT_FALSE(output_surface_->InitializeAndSetContext3d(
5621 onscreen_context_provider_, offscreen_context_provider_));
5622 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5623 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5624 EXPECT_FALSE(did_update_renderer_capabilities_);
5625 }
5626
5627 TEST_F(LayerTreeHostImplTestDeferredInitialize, Fails_OffscreenContext) {
5628 // Software draw.
5629 DrawFrame();
5630
5631 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5632 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5633
5634 // Fail initialization of the offscreen context.
5635 onscreen_context_provider_->UnboundTestContext3d()->set_context_lost(true);
5636
5637 // DeferredInitialize fails.
5638 did_update_renderer_capabilities_ = false;
5639 EXPECT_FALSE(output_surface_->InitializeAndSetContext3d(
5640 onscreen_context_provider_, offscreen_context_provider_));
5641 EXPECT_FALSE(host_impl_->output_surface()->context_provider());
5642 EXPECT_FALSE(host_impl_->offscreen_context_provider());
5643 EXPECT_FALSE(did_update_renderer_capabilities_);
5644 }
5645
5646 // Checks that we have a non-0 default allocation if we pass a context that 5579 // Checks that we have a non-0 default allocation if we pass a context that
5647 // doesn't support memory management extensions. 5580 // doesn't support memory management extensions.
5648 TEST_F(LayerTreeHostImplTest, DefaultMemoryAllocation) { 5581 TEST_F(LayerTreeHostImplTest, DefaultMemoryAllocation) {
5649 LayerTreeSettings settings; 5582 LayerTreeSettings settings;
5650 host_impl_ = LayerTreeHostImpl::Create(settings, 5583 host_impl_ = LayerTreeHostImpl::Create(settings,
5651 this, 5584 this,
5652 &proxy_, 5585 &proxy_,
5653 &stats_instrumentation_, 5586 &stats_instrumentation_,
5654 shared_bitmap_manager_.get(), 5587 shared_bitmap_manager_.get(),
5655 0); 5588 0);
(...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after
6386 EXPECT_EQ(host_impl_->global_tile_state().hard_memory_limit_in_bytes, 6319 EXPECT_EQ(host_impl_->global_tile_state().hard_memory_limit_in_bytes,
6387 300u * 1024u * 1024u); 6320 300u * 1024u * 1024u);
6388 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes, 6321 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes,
6389 150u * 1024u * 1024u); 6322 150u * 1024u * 1024u);
6390 EXPECT_EQ(host_impl_->global_tile_state().unused_memory_limit_in_bytes, 6323 EXPECT_EQ(host_impl_->global_tile_state().unused_memory_limit_in_bytes,
6391 75u * 1024u * 1024u); 6324 75u * 1024u * 1024u);
6392 } 6325 }
6393 6326
6394 } // namespace 6327 } // namespace
6395 } // namespace cc 6328 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698