OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "cc/layers/heads_up_display_layer.h" | 9 #include "cc/layers/heads_up_display_layer.h" |
10 #include "cc/layers/layer_impl.h" | 10 #include "cc/layers/layer_impl.h" |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 | 89 |
90 std::unique_ptr<TestWebGraphicsContext3D> context3d = CreateContext3d(); | 90 std::unique_ptr<TestWebGraphicsContext3D> context3d = CreateContext3d(); |
91 base::AutoLock lock(context3d_lock_); | 91 base::AutoLock lock(context3d_lock_); |
92 context3d_ = context3d.get(); | 92 context3d_ = context3d.get(); |
93 | 93 |
94 if (context_should_support_io_surface_) { | 94 if (context_should_support_io_surface_) { |
95 context3d_->set_have_extension_io_surface(true); | 95 context3d_->set_have_extension_io_surface(true); |
96 context3d_->set_have_extension_egl_image(true); | 96 context3d_->set_have_extension_egl_image(true); |
97 } | 97 } |
98 | 98 |
99 if (delegating_renderer()) | 99 DCHECK(delegating_renderer()); |
100 return FakeOutputSurface::CreateDelegating3d(std::move(context3d)); | 100 return FakeOutputSurface::CreateDelegating3d(std::move(context3d)); |
101 else | |
102 return FakeOutputSurface::Create3d(std::move(context3d)); | |
103 } | 101 } |
104 | 102 |
105 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 103 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, |
106 LayerTreeHostImpl::FrameData* frame, | 104 LayerTreeHostImpl::FrameData* frame, |
107 DrawResult draw_result) override { | 105 DrawResult draw_result) override { |
108 if (draw_result == DRAW_ABORTED_MISSING_HIGH_RES_CONTENT) { | 106 if (draw_result == DRAW_ABORTED_MISSING_HIGH_RES_CONTENT) { |
109 // Only valid for single-threaded compositing, which activates | 107 // Only valid for single-threaded compositing, which activates |
110 // immediately and will try to draw again when content has finished. | 108 // immediately and will try to draw again when content has finished. |
111 DCHECK(!host_impl->task_runner_provider()->HasImplThread()); | 109 DCHECK(!host_impl->task_runner_provider()->HasImplThread()); |
112 return draw_result; | 110 return draw_result; |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
773 | 771 |
774 protected: | 772 protected: |
775 bool lose_after_evict_; | 773 bool lose_after_evict_; |
776 FakeContentLayerClient client_; | 774 FakeContentLayerClient client_; |
777 LayerTreeHostImpl* impl_host_; | 775 LayerTreeHostImpl* impl_host_; |
778 int num_commits_; | 776 int num_commits_; |
779 bool lost_context_; | 777 bool lost_context_; |
780 }; | 778 }; |
781 | 779 |
782 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, | 780 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, |
783 LoseAfterEvict_SingleThread_DirectRenderer) { | |
784 lose_after_evict_ = true; | |
785 RunTest(CompositorMode::SINGLE_THREADED, false); | |
786 } | |
787 | |
788 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, | |
789 LoseAfterEvict_SingleThread_DelegatingRenderer) { | 781 LoseAfterEvict_SingleThread_DelegatingRenderer) { |
790 lose_after_evict_ = true; | 782 lose_after_evict_ = true; |
791 RunTest(CompositorMode::SINGLE_THREADED, true); | 783 RunTest(CompositorMode::SINGLE_THREADED, true); |
792 } | 784 } |
793 | 785 |
794 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, | 786 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, |
795 LoseAfterEvict_MultiThread_DirectRenderer) { | |
796 lose_after_evict_ = true; | |
797 RunTest(CompositorMode::THREADED, false); | |
798 } | |
799 | |
800 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, | |
801 LoseAfterEvict_MultiThread_DelegatingRenderer) { | 787 LoseAfterEvict_MultiThread_DelegatingRenderer) { |
802 lose_after_evict_ = true; | 788 lose_after_evict_ = true; |
803 RunTest(CompositorMode::THREADED, true); | 789 RunTest(CompositorMode::THREADED, true); |
804 } | 790 } |
805 | 791 |
806 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, | 792 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, |
807 LoseBeforeEvict_SingleThread_DirectRenderer) { | |
808 lose_after_evict_ = false; | |
809 RunTest(CompositorMode::SINGLE_THREADED, false); | |
810 } | |
811 | |
812 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, | |
813 LoseBeforeEvict_SingleThread_DelegatingRenderer) { | 793 LoseBeforeEvict_SingleThread_DelegatingRenderer) { |
814 lose_after_evict_ = false; | 794 lose_after_evict_ = false; |
815 RunTest(CompositorMode::SINGLE_THREADED, true); | 795 RunTest(CompositorMode::SINGLE_THREADED, true); |
816 } | 796 } |
817 | 797 |
818 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, | 798 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, |
819 LoseBeforeEvict_MultiThread_DirectRenderer) { | |
820 lose_after_evict_ = false; | |
821 RunTest(CompositorMode::THREADED, false); | |
822 } | |
823 | |
824 TEST_F(LayerTreeHostContextTestLostContextAndEvictTextures, | |
825 LoseBeforeEvict_MultiThread_DelegatingRenderer) { | 799 LoseBeforeEvict_MultiThread_DelegatingRenderer) { |
826 lose_after_evict_ = false; | 800 lose_after_evict_ = false; |
827 RunTest(CompositorMode::THREADED, true); | 801 RunTest(CompositorMode::THREADED, true); |
828 } | 802 } |
829 | 803 |
830 class LayerTreeHostContextTestLayersNotified : public LayerTreeHostContextTest { | 804 class LayerTreeHostContextTestLayersNotified : public LayerTreeHostContextTest { |
831 public: | 805 public: |
832 LayerTreeHostContextTestLayersNotified() | 806 LayerTreeHostContextTestLayersNotified() |
833 : LayerTreeHostContextTest(), num_commits_(0) {} | 807 : LayerTreeHostContextTest(), num_commits_(0) {} |
834 | 808 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
896 }; | 870 }; |
897 | 871 |
898 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostContextTestLayersNotified); | 872 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostContextTestLayersNotified); |
899 | 873 |
900 class LayerTreeHostContextTestDontUseLostResources | 874 class LayerTreeHostContextTestDontUseLostResources |
901 : public LayerTreeHostContextTest { | 875 : public LayerTreeHostContextTest { |
902 public: | 876 public: |
903 LayerTreeHostContextTestDontUseLostResources() : lost_context_(false) { | 877 LayerTreeHostContextTestDontUseLostResources() : lost_context_(false) { |
904 context_should_support_io_surface_ = true; | 878 context_should_support_io_surface_ = true; |
905 | 879 |
906 child_output_surface_ = FakeOutputSurface::Create3d(); | 880 child_output_surface_ = FakeOutputSurface::CreateDelegating3d(); |
907 child_output_surface_->BindToClient(&output_surface_client_); | 881 child_output_surface_->BindToClient(&output_surface_client_); |
908 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 882 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
909 child_resource_provider_ = FakeResourceProvider::Create( | 883 child_resource_provider_ = FakeResourceProvider::Create( |
910 child_output_surface_.get(), shared_bitmap_manager_.get()); | 884 child_output_surface_.get(), shared_bitmap_manager_.get()); |
911 } | 885 } |
912 | 886 |
913 static void EmptyReleaseCallback(const gpu::SyncToken& sync_token, | 887 static void EmptyReleaseCallback(const gpu::SyncToken& sync_token, |
914 bool lost) {} | 888 bool lost) {} |
915 | 889 |
916 void SetupTree() override { | 890 void SetupTree() override { |
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1599 void AfterTest() override {} | 1573 void AfterTest() override {} |
1600 | 1574 |
1601 bool deferred_; | 1575 bool deferred_; |
1602 }; | 1576 }; |
1603 | 1577 |
1604 SINGLE_AND_MULTI_THREAD_TEST_F( | 1578 SINGLE_AND_MULTI_THREAD_TEST_F( |
1605 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame); | 1579 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame); |
1606 | 1580 |
1607 } // namespace | 1581 } // namespace |
1608 } // namespace cc | 1582 } // namespace cc |
OLD | NEW |