| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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.h" | 5 #include "cc/trees/layer_tree_host.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 output_surface()->ReturnResource(resources_to_return[i], &ack); | 241 output_surface()->ReturnResource(resources_to_return[i], &ack); |
| 242 host_impl->ReclaimResources(&ack); | 242 host_impl->ReclaimResources(&ack); |
| 243 host_impl->OnSwapBuffersComplete(); | 243 host_impl->OnSwapBuffersComplete(); |
| 244 } | 244 } |
| 245 }; | 245 }; |
| 246 | 246 |
| 247 class LayerTreeHostDelegatedTestCaseSingleDelegatedLayer | 247 class LayerTreeHostDelegatedTestCaseSingleDelegatedLayer |
| 248 : public LayerTreeHostDelegatedTest, | 248 : public LayerTreeHostDelegatedTest, |
| 249 public DelegatedRendererLayerClient { | 249 public DelegatedRendererLayerClient { |
| 250 public: | 250 public: |
| 251 LayerTreeHostDelegatedTestCaseSingleDelegatedLayer() : available_(false) {} |
| 252 |
| 251 virtual void SetupTree() OVERRIDE { | 253 virtual void SetupTree() OVERRIDE { |
| 252 root_ = Layer::Create(); | 254 root_ = Layer::Create(); |
| 253 root_->SetAnchorPoint(gfx::PointF()); | 255 root_->SetAnchorPoint(gfx::PointF()); |
| 254 root_->SetBounds(gfx::Size(10, 10)); | 256 root_->SetBounds(gfx::Size(10, 10)); |
| 255 | 257 |
| 256 delegated_ = FakeDelegatedRendererLayer::Create(this); | 258 delegated_ = FakeDelegatedRendererLayer::Create(this); |
| 257 delegated_->SetAnchorPoint(gfx::PointF()); | 259 delegated_->SetAnchorPoint(gfx::PointF()); |
| 258 delegated_->SetBounds(gfx::Size(10, 10)); | 260 delegated_->SetBounds(gfx::Size(10, 10)); |
| 259 delegated_->SetIsDrawable(true); | 261 delegated_->SetIsDrawable(true); |
| 260 | 262 |
| 261 root_->AddChild(delegated_); | 263 root_->AddChild(delegated_); |
| 262 layer_tree_host()->SetRootLayer(root_); | 264 layer_tree_host()->SetRootLayer(root_); |
| 263 LayerTreeHostDelegatedTest::SetupTree(); | 265 LayerTreeHostDelegatedTest::SetupTree(); |
| 264 } | 266 } |
| 265 | 267 |
| 266 virtual void BeginTest() OVERRIDE { | 268 virtual void BeginTest() OVERRIDE { |
| 267 PostSetNeedsCommitToMainThread(); | 269 PostSetNeedsCommitToMainThread(); |
| 268 } | 270 } |
| 269 | 271 |
| 270 virtual void AfterTest() OVERRIDE {} | 272 virtual void AfterTest() OVERRIDE {} |
| 271 | 273 |
| 274 // DelegatedRendererLayerClient implementation. |
| 272 virtual void DidCommitFrameData() OVERRIDE {} | 275 virtual void DidCommitFrameData() OVERRIDE {} |
| 276 virtual void UnusedResourcesAreAvailable() OVERRIDE { available_ = true; } |
| 277 |
| 278 bool TestAndResetAvailable() { |
| 279 bool available = available_; |
| 280 available_ = false; |
| 281 return available; |
| 282 } |
| 273 | 283 |
| 274 protected: | 284 protected: |
| 275 scoped_refptr<Layer> root_; | 285 scoped_refptr<Layer> root_; |
| 276 scoped_refptr<DelegatedRendererLayer> delegated_; | 286 scoped_refptr<DelegatedRendererLayer> delegated_; |
| 287 bool available_; |
| 277 }; | 288 }; |
| 278 | 289 |
| 279 class LayerTreeHostDelegatedTestClientDidCommitCallback | 290 class LayerTreeHostDelegatedTestClientDidCommitCallback |
| 280 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { | 291 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { |
| 281 public: | 292 public: |
| 282 LayerTreeHostDelegatedTestClientDidCommitCallback() | 293 LayerTreeHostDelegatedTestClientDidCommitCallback() |
| 283 : LayerTreeHostDelegatedTestCaseSingleDelegatedLayer(), | 294 : LayerTreeHostDelegatedTestCaseSingleDelegatedLayer(), |
| 284 num_did_commit_frame_data_(0) {} | 295 num_did_commit_frame_data_(0) {} |
| 285 | 296 |
| 286 virtual void DidCommit() OVERRIDE { | 297 virtual void DidCommit() OVERRIDE { |
| (...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 AddTransferableResource(frame2.get(), 555); | 750 AddTransferableResource(frame2.get(), 555); |
| 740 delegated_->SetFrameData(frame2.Pass()); | 751 delegated_->SetFrameData(frame2.Pass()); |
| 741 | 752 |
| 742 // The resource 999 from frame1 is returned since it is still on the main | 753 // The resource 999 from frame1 is returned since it is still on the main |
| 743 // thread. | 754 // thread. |
| 744 ReturnedResourceArray returned_resources; | 755 ReturnedResourceArray returned_resources; |
| 745 delegated_->TakeUnusedResourcesForChildCompositor(&returned_resources); | 756 delegated_->TakeUnusedResourcesForChildCompositor(&returned_resources); |
| 746 { | 757 { |
| 747 unsigned expected[] = {999}; | 758 unsigned expected[] = {999}; |
| 748 EXPECT_RESOURCES(expected, returned_resources); | 759 EXPECT_RESOURCES(expected, returned_resources); |
| 760 EXPECT_TRUE(TestAndResetAvailable()); |
| 749 } | 761 } |
| 750 | 762 |
| 751 PostSetNeedsCommitToMainThread(); | 763 PostSetNeedsCommitToMainThread(); |
| 752 } | 764 } |
| 753 | 765 |
| 754 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 766 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 755 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); | 767 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); |
| 756 FakeDelegatedRendererLayerImpl* delegated_impl = | 768 FakeDelegatedRendererLayerImpl* delegated_impl = |
| 757 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); | 769 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); |
| 758 | 770 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 847 AddTextureQuad(frame.get(), 999); | 859 AddTextureQuad(frame.get(), 999); |
| 848 AddTransferableResource(frame.get(), 999); | 860 AddTransferableResource(frame.get(), 999); |
| 849 AddTextureQuad(frame.get(), 555); | 861 AddTextureQuad(frame.get(), 555); |
| 850 AddTransferableResource(frame.get(), 555); | 862 AddTransferableResource(frame.get(), 555); |
| 851 delegated_->SetFrameData(frame.Pass()); | 863 delegated_->SetFrameData(frame.Pass()); |
| 852 break; | 864 break; |
| 853 case 2: | 865 case 2: |
| 854 // All of the resources are in use. | 866 // All of the resources are in use. |
| 855 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 867 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 856 EXPECT_EQ(0u, resources.size()); | 868 EXPECT_EQ(0u, resources.size()); |
| 869 EXPECT_FALSE(TestAndResetAvailable()); |
| 857 | 870 |
| 858 // Keep using 999 but stop using 555. | 871 // Keep using 999 but stop using 555. |
| 859 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 872 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 860 AddTextureQuad(frame.get(), 999); | 873 AddTextureQuad(frame.get(), 999); |
| 861 AddTransferableResource(frame.get(), 999); | 874 AddTransferableResource(frame.get(), 999); |
| 862 AddTextureQuad(frame.get(), 444); | 875 AddTextureQuad(frame.get(), 444); |
| 863 AddTransferableResource(frame.get(), 444); | 876 AddTransferableResource(frame.get(), 444); |
| 864 delegated_->SetFrameData(frame.Pass()); | 877 delegated_->SetFrameData(frame.Pass()); |
| 865 break; | 878 break; |
| 866 case 3: | 879 case 3: |
| 867 // 555 is no longer in use. | 880 // 555 is no longer in use. |
| 868 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 881 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 869 { | 882 { |
| 870 unsigned expected[] = {555}; | 883 unsigned expected[] = {555}; |
| 871 EXPECT_RESOURCES(expected, resources); | 884 EXPECT_RESOURCES(expected, resources); |
| 885 EXPECT_TRUE(TestAndResetAvailable()); |
| 872 } | 886 } |
| 873 | 887 |
| 874 // Stop using any resources. | 888 // Stop using any resources. |
| 875 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 889 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 876 delegated_->SetFrameData(frame.Pass()); | 890 delegated_->SetFrameData(frame.Pass()); |
| 877 break; | 891 break; |
| 878 case 4: | 892 case 4: |
| 879 // Postpone collecting resources for a frame. They should still be there | 893 // Postpone collecting resources for a frame. They should still be there |
| 880 // the next frame. | 894 // the next frame. |
| 881 layer_tree_host()->SetNeedsCommit(); | 895 layer_tree_host()->SetNeedsCommit(); |
| 882 return; | 896 return; |
| 883 case 5: | 897 case 5: |
| 884 // 444 and 999 are no longer in use. We sent two refs to 999, so we | 898 // 444 and 999 are no longer in use. We sent two refs to 999, so we |
| 885 // should get two back. | 899 // should get two back. |
| 886 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 900 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 887 { | 901 { |
| 888 unsigned expected[] = {444, 999, 999}; | 902 unsigned expected[] = {444, 999, 999}; |
| 889 EXPECT_RESOURCES(expected, resources); | 903 EXPECT_RESOURCES(expected, resources); |
| 904 EXPECT_TRUE(TestAndResetAvailable()); |
| 890 } | 905 } |
| 891 EndTest(); | 906 EndTest(); |
| 892 break; | 907 break; |
| 893 } | 908 } |
| 894 | 909 |
| 895 // Resource are never immediately released. | 910 // Resources are never immediately released. |
| 896 ReturnedResourceArray empty_resources; | 911 ReturnedResourceArray empty_resources; |
| 897 delegated_->TakeUnusedResourcesForChildCompositor(&empty_resources); | 912 delegated_->TakeUnusedResourcesForChildCompositor(&empty_resources); |
| 898 EXPECT_TRUE(empty_resources.empty()); | 913 EXPECT_EQ(0u, empty_resources.size()); |
| 914 EXPECT_FALSE(TestAndResetAvailable()); |
| 899 } | 915 } |
| 900 | 916 |
| 901 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, | 917 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, |
| 902 bool result) OVERRIDE { | 918 bool result) OVERRIDE { |
| 903 ReturnUnusedResourcesFromParent(host_impl); | 919 ReturnUnusedResourcesFromParent(host_impl); |
| 904 } | 920 } |
| 905 | 921 |
| 906 virtual void AfterTest() OVERRIDE {} | 922 virtual void AfterTest() OVERRIDE {} |
| 907 }; | 923 }; |
| 908 | 924 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 930 AddTextureQuad(frame.get(), 555); | 946 AddTextureQuad(frame.get(), 555); |
| 931 AddTransferableResource(frame.get(), 555); | 947 AddTransferableResource(frame.get(), 555); |
| 932 AddTextureQuad(frame.get(), 444); | 948 AddTextureQuad(frame.get(), 444); |
| 933 AddTransferableResource(frame.get(), 444); | 949 AddTransferableResource(frame.get(), 444); |
| 934 delegated_->SetFrameData(frame.Pass()); | 950 delegated_->SetFrameData(frame.Pass()); |
| 935 break; | 951 break; |
| 936 case 2: | 952 case 2: |
| 937 // All of the resources are in use. | 953 // All of the resources are in use. |
| 938 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 954 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 939 EXPECT_EQ(0u, resources.size()); | 955 EXPECT_EQ(0u, resources.size()); |
| 956 EXPECT_FALSE(TestAndResetAvailable()); |
| 940 | 957 |
| 941 // Keep using 999 but stop using 555 and 444. | 958 // Keep using 999 but stop using 555 and 444. |
| 942 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 959 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 943 AddTextureQuad(frame.get(), 999); | 960 AddTextureQuad(frame.get(), 999); |
| 944 AddTransferableResource(frame.get(), 999); | 961 AddTransferableResource(frame.get(), 999); |
| 945 delegated_->SetFrameData(frame.Pass()); | 962 delegated_->SetFrameData(frame.Pass()); |
| 946 | 963 |
| 947 // Resource are not immediately released. | 964 // Resource are not immediately released. |
| 948 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 965 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 949 EXPECT_EQ(0u, resources.size()); | 966 EXPECT_EQ(0u, resources.size()); |
| 967 EXPECT_FALSE(TestAndResetAvailable()); |
| 950 | 968 |
| 951 // Now using 555 and 444 again, but not 999. | 969 // Now using 555 and 444 again, but not 999. |
| 952 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 970 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 953 AddTextureQuad(frame.get(), 555); | 971 AddTextureQuad(frame.get(), 555); |
| 954 AddTransferableResource(frame.get(), 555); | 972 AddTransferableResource(frame.get(), 555); |
| 955 AddTextureQuad(frame.get(), 444); | 973 AddTextureQuad(frame.get(), 444); |
| 956 AddTransferableResource(frame.get(), 444); | 974 AddTransferableResource(frame.get(), 444); |
| 957 delegated_->SetFrameData(frame.Pass()); | 975 delegated_->SetFrameData(frame.Pass()); |
| 958 break; | 976 break; |
| 959 case 3: | 977 case 3: |
| 960 // The 999 resource is the only unused one. Two references were sent, so | 978 // The 999 resource is the only unused one. Two references were sent, so |
| 961 // two should be returned. | 979 // two should be returned. |
| 962 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 980 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 963 { | 981 { |
| 964 unsigned expected[] = {999, 999}; | 982 unsigned expected[] = {999, 999}; |
| 965 EXPECT_RESOURCES(expected, resources); | 983 EXPECT_RESOURCES(expected, resources); |
| 984 EXPECT_TRUE(TestAndResetAvailable()); |
| 966 } | 985 } |
| 967 EndTest(); | 986 EndTest(); |
| 968 break; | 987 break; |
| 969 } | 988 } |
| 970 } | 989 } |
| 971 | 990 |
| 972 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, | 991 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, |
| 973 bool result) OVERRIDE { | 992 bool result) OVERRIDE { |
| 974 ReturnUnusedResourcesFromParent(host_impl); | 993 ReturnUnusedResourcesFromParent(host_impl); |
| 975 } | 994 } |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1000 AddTextureQuad(frame.get(), 555); | 1019 AddTextureQuad(frame.get(), 555); |
| 1001 AddTransferableResource(frame.get(), 555); | 1020 AddTransferableResource(frame.get(), 555); |
| 1002 AddTextureQuad(frame.get(), 444); | 1021 AddTextureQuad(frame.get(), 444); |
| 1003 AddTransferableResource(frame.get(), 444); | 1022 AddTransferableResource(frame.get(), 444); |
| 1004 delegated_->SetFrameData(frame.Pass()); | 1023 delegated_->SetFrameData(frame.Pass()); |
| 1005 break; | 1024 break; |
| 1006 case 2: | 1025 case 2: |
| 1007 // All of the resources are in use. | 1026 // All of the resources are in use. |
| 1008 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1027 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1009 EXPECT_EQ(0u, resources.size()); | 1028 EXPECT_EQ(0u, resources.size()); |
| 1029 EXPECT_FALSE(TestAndResetAvailable()); |
| 1010 | 1030 |
| 1011 // Keep using 999 but stop using 555 and 444. | 1031 // Keep using 999 but stop using 555 and 444. |
| 1012 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1032 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1013 AddTextureQuad(frame.get(), 999); | 1033 AddTextureQuad(frame.get(), 999); |
| 1014 AddTransferableResource(frame.get(), 999); | 1034 AddTransferableResource(frame.get(), 999); |
| 1015 delegated_->SetFrameData(frame.Pass()); | 1035 delegated_->SetFrameData(frame.Pass()); |
| 1016 | 1036 |
| 1017 // Resource are not immediately released. | 1037 // Resource are not immediately released. |
| 1018 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1038 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1019 EXPECT_EQ(0u, resources.size()); | 1039 EXPECT_EQ(0u, resources.size()); |
| 1040 EXPECT_FALSE(TestAndResetAvailable()); |
| 1020 | 1041 |
| 1021 // The parent compositor (this one) does a commit. | 1042 // The parent compositor (this one) does a commit. |
| 1022 break; | 1043 break; |
| 1023 case 3: | 1044 case 3: |
| 1024 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1045 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1025 { | 1046 { |
| 1026 unsigned expected[] = {444, 555}; | 1047 unsigned expected[] = {444, 555}; |
| 1027 EXPECT_RESOURCES(expected, resources); | 1048 EXPECT_RESOURCES(expected, resources); |
| 1049 EXPECT_TRUE(TestAndResetAvailable()); |
| 1028 } | 1050 } |
| 1029 | 1051 |
| 1030 // The child compositor sends a frame referring to resources not in the | 1052 // The child compositor sends a frame referring to resources not in the |
| 1031 // frame. | 1053 // frame. |
| 1032 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1054 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1033 AddTextureQuad(frame.get(), 999); | 1055 AddTextureQuad(frame.get(), 999); |
| 1034 AddTextureQuad(frame.get(), 555); | 1056 AddTextureQuad(frame.get(), 555); |
| 1035 AddTextureQuad(frame.get(), 444); | 1057 AddTextureQuad(frame.get(), 444); |
| 1036 delegated_->SetFrameData(frame.Pass()); | 1058 delegated_->SetFrameData(frame.Pass()); |
| 1037 break; | 1059 break; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1099 AddTextureQuad(frame.get(), 555); | 1121 AddTextureQuad(frame.get(), 555); |
| 1100 AddTransferableResource(frame.get(), 555); | 1122 AddTransferableResource(frame.get(), 555); |
| 1101 AddTextureQuad(frame.get(), 444); | 1123 AddTextureQuad(frame.get(), 444); |
| 1102 AddTransferableResource(frame.get(), 444); | 1124 AddTransferableResource(frame.get(), 444); |
| 1103 delegated_->SetFrameData(frame.Pass()); | 1125 delegated_->SetFrameData(frame.Pass()); |
| 1104 break; | 1126 break; |
| 1105 case 2: | 1127 case 2: |
| 1106 // All of the resources are in use. | 1128 // All of the resources are in use. |
| 1107 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1129 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1108 EXPECT_EQ(0u, resources.size()); | 1130 EXPECT_EQ(0u, resources.size()); |
| 1131 EXPECT_FALSE(TestAndResetAvailable()); |
| 1109 | 1132 |
| 1110 // Keep using 999 but stop using 555 and 444. | 1133 // Keep using 999 but stop using 555 and 444. |
| 1111 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1134 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1112 AddTextureQuad(frame.get(), 999); | 1135 AddTextureQuad(frame.get(), 999); |
| 1113 AddTransferableResource(frame.get(), 999); | 1136 AddTransferableResource(frame.get(), 999); |
| 1114 delegated_->SetFrameData(frame.Pass()); | 1137 delegated_->SetFrameData(frame.Pass()); |
| 1115 | 1138 |
| 1116 // Resource are not immediately released. | 1139 // Resource are not immediately released. |
| 1117 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1140 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1118 EXPECT_EQ(0u, resources.size()); | 1141 EXPECT_EQ(0u, resources.size()); |
| 1142 EXPECT_FALSE(TestAndResetAvailable()); |
| 1119 | 1143 |
| 1120 // The parent compositor (this one) does a commit. | 1144 // The parent compositor (this one) does a commit. |
| 1121 break; | 1145 break; |
| 1122 case 3: | 1146 case 3: |
| 1123 // The child compositor sends a frame before taking resources back | 1147 // The child compositor sends a frame before taking resources back |
| 1124 // from the previous commit. This frame makes use of the resources 555 | 1148 // from the previous commit. This frame makes use of the resources 555 |
| 1125 // and 444, which were just released during commit. | 1149 // and 444, which were just released during commit. |
| 1126 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1150 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1127 AddTextureQuad(frame.get(), 999); | 1151 AddTextureQuad(frame.get(), 999); |
| 1128 AddTransferableResource(frame.get(), 999); | 1152 AddTransferableResource(frame.get(), 999); |
| 1129 AddTextureQuad(frame.get(), 555); | 1153 AddTextureQuad(frame.get(), 555); |
| 1130 AddTransferableResource(frame.get(), 555); | 1154 AddTransferableResource(frame.get(), 555); |
| 1131 AddTextureQuad(frame.get(), 444); | 1155 AddTextureQuad(frame.get(), 444); |
| 1132 AddTransferableResource(frame.get(), 444); | 1156 AddTransferableResource(frame.get(), 444); |
| 1133 delegated_->SetFrameData(frame.Pass()); | 1157 delegated_->SetFrameData(frame.Pass()); |
| 1134 | 1158 |
| 1135 // The resources are used by the new frame but are returned anyway since | 1159 // The resources are used by the new frame but are returned anyway since |
| 1136 // we passed them again. | 1160 // we passed them again. |
| 1137 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1161 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1138 { | 1162 { |
| 1139 unsigned expected[] = {444, 555}; | 1163 unsigned expected[] = {444, 555}; |
| 1140 EXPECT_RESOURCES(expected, resources); | 1164 EXPECT_RESOURCES(expected, resources); |
| 1165 EXPECT_TRUE(TestAndResetAvailable()); |
| 1141 } | 1166 } |
| 1142 break; | 1167 break; |
| 1143 case 4: | 1168 case 4: |
| 1144 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1169 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1145 EXPECT_EQ(0u, resources.size()); | 1170 EXPECT_EQ(0u, resources.size()); |
| 1171 EXPECT_FALSE(TestAndResetAvailable()); |
| 1146 EndTest(); | 1172 EndTest(); |
| 1147 break; | 1173 break; |
| 1148 } | 1174 } |
| 1149 } | 1175 } |
| 1150 | 1176 |
| 1151 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 1177 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 1152 if (host_impl->active_tree()->source_frame_number() != 3) | 1178 if (host_impl->active_tree()->source_frame_number() != 3) |
| 1153 return; | 1179 return; |
| 1154 | 1180 |
| 1155 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); | 1181 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1215 AddTextureQuad(frame.get(), 999); | 1241 AddTextureQuad(frame.get(), 999); |
| 1216 AddTransferableResource(frame.get(), 999); | 1242 AddTransferableResource(frame.get(), 999); |
| 1217 AddTextureQuad(frame.get(), 555); | 1243 AddTextureQuad(frame.get(), 555); |
| 1218 AddTransferableResource(frame.get(), 555); | 1244 AddTransferableResource(frame.get(), 555); |
| 1219 delegated_->SetFrameData(frame.Pass()); | 1245 delegated_->SetFrameData(frame.Pass()); |
| 1220 break; | 1246 break; |
| 1221 case 2: | 1247 case 2: |
| 1222 // All of the resources are in use. | 1248 // All of the resources are in use. |
| 1223 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1249 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1224 EXPECT_EQ(0u, resources.size()); | 1250 EXPECT_EQ(0u, resources.size()); |
| 1251 EXPECT_FALSE(TestAndResetAvailable()); |
| 1225 | 1252 |
| 1226 // Generate a bad frame with a resource the layer doesn't have. The | 1253 // Generate a bad frame with a resource the layer doesn't have. The |
| 1227 // 885 and 775 resources are unknown, while ownership of the legit 444 | 1254 // 885 and 775 resources are unknown, while ownership of the legit 444 |
| 1228 // resource is passed in here. The bad frame does not use any of the | 1255 // resource is passed in here. The bad frame does not use any of the |
| 1229 // previous resources, 999 or 555. | 1256 // previous resources, 999 or 555. |
| 1230 // A bad quad is present both before and after the good quad. | 1257 // A bad quad is present both before and after the good quad. |
| 1231 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1258 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1232 AddTextureQuad(frame.get(), 885); | 1259 AddTextureQuad(frame.get(), 885); |
| 1233 AddTextureQuad(frame.get(), 444); | 1260 AddTextureQuad(frame.get(), 444); |
| 1234 AddTransferableResource(frame.get(), 444); | 1261 AddTransferableResource(frame.get(), 444); |
| 1235 AddTextureQuad(frame.get(), 775); | 1262 AddTextureQuad(frame.get(), 775); |
| 1236 delegated_->SetFrameData(frame.Pass()); | 1263 delegated_->SetFrameData(frame.Pass()); |
| 1237 | 1264 |
| 1238 // The parent compositor (this one) does a commit. | 1265 // The parent compositor (this one) does a commit. |
| 1239 break; | 1266 break; |
| 1240 case 3: | 1267 case 3: |
| 1241 // The bad frame's resource is given back to the child compositor. | 1268 // The bad frame's resource is given back to the child compositor. |
| 1242 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1269 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1243 { | 1270 { |
| 1244 unsigned expected[] = {444}; | 1271 unsigned expected[] = {444}; |
| 1245 EXPECT_RESOURCES(expected, resources); | 1272 EXPECT_RESOURCES(expected, resources); |
| 1273 EXPECT_TRUE(TestAndResetAvailable()); |
| 1246 } | 1274 } |
| 1247 | 1275 |
| 1248 // Now send a good frame with 999 again. | 1276 // Now send a good frame with 999 again. |
| 1249 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1277 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1250 AddTextureQuad(frame.get(), 999); | 1278 AddTextureQuad(frame.get(), 999); |
| 1251 delegated_->SetFrameData(frame.Pass()); | 1279 delegated_->SetFrameData(frame.Pass()); |
| 1252 break; | 1280 break; |
| 1253 case 4: | 1281 case 4: |
| 1254 // The unused 555 from the last good frame is now released. | 1282 // The unused 555 from the last good frame is now released. |
| 1255 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1283 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1256 { | 1284 { |
| 1257 unsigned expected[] = {555}; | 1285 unsigned expected[] = {555}; |
| 1258 EXPECT_RESOURCES(expected, resources); | 1286 EXPECT_RESOURCES(expected, resources); |
| 1287 EXPECT_TRUE(TestAndResetAvailable()); |
| 1259 } | 1288 } |
| 1260 | 1289 |
| 1261 EndTest(); | 1290 EndTest(); |
| 1262 break; | 1291 break; |
| 1263 } | 1292 } |
| 1264 } | 1293 } |
| 1265 | 1294 |
| 1266 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, | 1295 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, |
| 1267 bool result) OVERRIDE { | 1296 bool result) OVERRIDE { |
| 1268 if (host_impl->active_tree()->source_frame_number() < 1) | 1297 if (host_impl->active_tree()->source_frame_number() < 1) |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1365 AddTextureQuad(frame.get(), 555); | 1394 AddTextureQuad(frame.get(), 555); |
| 1366 AddTransferableResource(frame.get(), 555); | 1395 AddTransferableResource(frame.get(), 555); |
| 1367 delegated_->SetFrameData(frame.Pass()); | 1396 delegated_->SetFrameData(frame.Pass()); |
| 1368 break; | 1397 break; |
| 1369 case 2: | 1398 case 2: |
| 1370 // The unused resource should be returned. | 1399 // The unused resource should be returned. |
| 1371 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1400 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1372 { | 1401 { |
| 1373 unsigned expected[] = {999}; | 1402 unsigned expected[] = {999}; |
| 1374 EXPECT_RESOURCES(expected, resources); | 1403 EXPECT_RESOURCES(expected, resources); |
| 1404 EXPECT_TRUE(TestAndResetAvailable()); |
| 1375 } | 1405 } |
| 1376 | 1406 |
| 1377 EndTest(); | 1407 EndTest(); |
| 1378 break; | 1408 break; |
| 1379 } | 1409 } |
| 1380 } | 1410 } |
| 1381 | 1411 |
| 1382 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 1412 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 1383 if (host_impl->active_tree()->source_frame_number() != 1) | 1413 if (host_impl->active_tree()->source_frame_number() != 1) |
| 1384 return; | 1414 return; |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1432 AddTransferableResource(frame.get(), 555); | 1462 AddTransferableResource(frame.get(), 555); |
| 1433 delegated_->SetFrameData(frame.Pass()); | 1463 delegated_->SetFrameData(frame.Pass()); |
| 1434 break; | 1464 break; |
| 1435 case 2: | 1465 case 2: |
| 1436 // The unused resources should be returned. 555 is still used, but it's | 1466 // The unused resources should be returned. 555 is still used, but it's |
| 1437 // returned once to account for the first frame. | 1467 // returned once to account for the first frame. |
| 1438 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1468 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1439 { | 1469 { |
| 1440 unsigned expected[] = {555, 999}; | 1470 unsigned expected[] = {555, 999}; |
| 1441 EXPECT_RESOURCES(expected, resources); | 1471 EXPECT_RESOURCES(expected, resources); |
| 1472 EXPECT_TRUE(TestAndResetAvailable()); |
| 1442 } | 1473 } |
| 1443 // Send a frame with no resources in it. | 1474 // Send a frame with no resources in it. |
| 1444 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1475 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1445 delegated_->SetFrameData(frame.Pass()); | 1476 delegated_->SetFrameData(frame.Pass()); |
| 1446 break; | 1477 break; |
| 1447 case 3: | 1478 case 3: |
| 1448 // The now unused resource 555 should be returned. | 1479 // The now unused resource 555 should be returned. |
| 1449 resources.clear(); | 1480 resources.clear(); |
| 1450 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1481 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1451 { | 1482 { |
| 1452 unsigned expected[] = {555}; | 1483 unsigned expected[] = {555}; |
| 1453 EXPECT_RESOURCES(expected, resources); | 1484 EXPECT_RESOURCES(expected, resources); |
| 1485 EXPECT_TRUE(TestAndResetAvailable()); |
| 1454 } | 1486 } |
| 1455 EndTest(); | 1487 EndTest(); |
| 1456 break; | 1488 break; |
| 1457 } | 1489 } |
| 1458 } | 1490 } |
| 1459 | 1491 |
| 1460 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 1492 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 1461 if (host_impl->active_tree()->source_frame_number() != 1) | 1493 if (host_impl->active_tree()->source_frame_number() != 1) |
| 1462 return; | 1494 return; |
| 1463 | 1495 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1501 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1533 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1502 AddTextureQuad(frame.get(), 999); | 1534 AddTextureQuad(frame.get(), 999); |
| 1503 AddTransferableResource(frame.get(), 999); | 1535 AddTransferableResource(frame.get(), 999); |
| 1504 AddTextureQuad(frame.get(), 555); | 1536 AddTextureQuad(frame.get(), 555); |
| 1505 AddTransferableResource(frame.get(), 555); | 1537 AddTransferableResource(frame.get(), 555); |
| 1506 delegated_->SetFrameData(frame.Pass()); | 1538 delegated_->SetFrameData(frame.Pass()); |
| 1507 break; | 1539 break; |
| 1508 case 2: | 1540 case 2: |
| 1509 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1541 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1510 EXPECT_EQ(0u, resources.size()); | 1542 EXPECT_EQ(0u, resources.size()); |
| 1543 EXPECT_FALSE(TestAndResetAvailable()); |
| 1511 | 1544 |
| 1512 // 999 is in use in the grandparent compositor, generate a frame without | 1545 // 999 is in use in the grandparent compositor, generate a frame without |
| 1513 // it present. | 1546 // it present. |
| 1514 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1547 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1515 AddTextureQuad(frame.get(), 555); | 1548 AddTextureQuad(frame.get(), 555); |
| 1516 AddTransferableResource(frame.get(), 555); | 1549 AddTransferableResource(frame.get(), 555); |
| 1517 delegated_->SetFrameData(frame.Pass()); | 1550 delegated_->SetFrameData(frame.Pass()); |
| 1518 break; | 1551 break; |
| 1519 case 3: | 1552 case 3: |
| 1520 // Since 999 is in the grandparent it is not returned. | 1553 // Since 999 is in the grandparent it is not returned. |
| 1521 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1554 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1522 EXPECT_EQ(0u, resources.size()); | 1555 EXPECT_EQ(0u, resources.size()); |
| 1556 EXPECT_FALSE(TestAndResetAvailable()); |
| 1523 | 1557 |
| 1524 // The impl side will get back the resource at some point. | 1558 // The impl side will get back the resource at some point. |
| 1525 ImplThreadTaskRunner()->PostTask(FROM_HERE, | 1559 ImplThreadTaskRunner()->PostTask(FROM_HERE, |
| 1526 receive_resource_on_thread_); | 1560 receive_resource_on_thread_); |
| 1527 break; | 1561 break; |
| 1528 } | 1562 } |
| 1529 } | 1563 } |
| 1530 | 1564 |
| 1531 void ReceiveResourceOnThread(LayerTreeHostImpl* host_impl) { | 1565 void ReceiveResourceOnThread(LayerTreeHostImpl* host_impl) { |
| 1532 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); | 1566 LayerImpl* root_impl = host_impl->active_tree()->root_layer(); |
| 1533 FakeDelegatedRendererLayerImpl* delegated_impl = | 1567 FakeDelegatedRendererLayerImpl* delegated_impl = |
| 1534 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); | 1568 static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); |
| 1535 | 1569 |
| 1536 const ResourceProvider::ResourceIdMap& map = | 1570 const ResourceProvider::ResourceIdMap& map = |
| 1537 host_impl->resource_provider()->GetChildToParentMap( | 1571 host_impl->resource_provider()->GetChildToParentMap( |
| 1538 delegated_impl->ChildId()); | 1572 delegated_impl->ChildId()); |
| 1539 | 1573 |
| 1540 // Receive 999 back from the grandparent. | 1574 // Receive 999 back from the grandparent. |
| 1541 CompositorFrameAck ack; | 1575 CompositorFrameAck ack; |
| 1542 output_surface()->ReturnResource(map.find(999)->second, &ack); | 1576 output_surface()->ReturnResource(map.find(999)->second, &ack); |
| 1543 host_impl->ReclaimResources(&ack); | 1577 host_impl->ReclaimResources(&ack); |
| 1544 host_impl->OnSwapBuffersComplete(); | 1578 host_impl->OnSwapBuffersComplete(); |
| 1545 | |
| 1546 // And then it should be released by the DelegatedRendererLayer. | |
| 1547 MainThreadTaskRunner()->PostTask( | |
| 1548 FROM_HERE, | |
| 1549 base::Bind(&LayerTreeHostDelegatedTestResourceSentToParent:: | |
| 1550 DidReceiveResourceOnMainThread, | |
| 1551 base::Unretained(this))); | |
| 1552 } | 1579 } |
| 1553 | 1580 |
| 1554 void DidReceiveResourceOnMainThread() { | 1581 virtual void UnusedResourcesAreAvailable() OVERRIDE { |
| 1582 EXPECT_EQ(3, layer_tree_host()->source_frame_number()); |
| 1583 |
| 1555 ReturnedResourceArray resources; | 1584 ReturnedResourceArray resources; |
| 1556 | 1585 |
| 1557 // 999 was returned from the grandparent and could be released. | 1586 // 999 was returned from the grandparent and could be released. |
| 1558 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1587 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1559 { | 1588 { |
| 1560 unsigned expected[] = {999}; | 1589 unsigned expected[] = {999}; |
| 1561 EXPECT_RESOURCES(expected, resources); | 1590 EXPECT_RESOURCES(expected, resources); |
| 1562 } | 1591 } |
| 1563 | 1592 |
| 1564 EndTest(); | 1593 EndTest(); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1645 AddTransferableResource(frame.get(), 999); | 1674 AddTransferableResource(frame.get(), 999); |
| 1646 AddTextureQuad(frame.get(), 555); | 1675 AddTextureQuad(frame.get(), 555); |
| 1647 AddTransferableResource(frame.get(), 555); | 1676 AddTransferableResource(frame.get(), 555); |
| 1648 AddTextureQuad(frame.get(), 444); | 1677 AddTextureQuad(frame.get(), 444); |
| 1649 AddTransferableResource(frame.get(), 444); | 1678 AddTransferableResource(frame.get(), 444); |
| 1650 delegated_->SetFrameData(frame.Pass()); | 1679 delegated_->SetFrameData(frame.Pass()); |
| 1651 break; | 1680 break; |
| 1652 case 2: | 1681 case 2: |
| 1653 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1682 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1654 EXPECT_EQ(0u, resources.size()); | 1683 EXPECT_EQ(0u, resources.size()); |
| 1684 EXPECT_FALSE(TestAndResetAvailable()); |
| 1655 | 1685 |
| 1656 // Stop using 999 and 444 in this frame and commit. | 1686 // Stop using 999 and 444 in this frame and commit. |
| 1657 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1687 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1658 AddTextureQuad(frame.get(), 555); | 1688 AddTextureQuad(frame.get(), 555); |
| 1659 AddTransferableResource(frame.get(), 555); | 1689 AddTransferableResource(frame.get(), 555); |
| 1660 delegated_->SetFrameData(frame.Pass()); | 1690 delegated_->SetFrameData(frame.Pass()); |
| 1661 // 999 and 444 will be returned for frame 1, but not 555 since it's in | 1691 // 999 and 444 will be returned for frame 1, but not 555 since it's in |
| 1662 // the current frame. | 1692 // the current frame. |
| 1663 break; | 1693 break; |
| 1664 case 3: | 1694 case 3: |
| 1665 // Don't take resources here, but set a new frame that uses 999 again. | 1695 // Don't take resources here, but set a new frame that uses 999 again. |
| 1666 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1696 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1667 AddTextureQuad(frame.get(), 999); | 1697 AddTextureQuad(frame.get(), 999); |
| 1668 AddTransferableResource(frame.get(), 999); | 1698 AddTransferableResource(frame.get(), 999); |
| 1669 AddTextureQuad(frame.get(), 555); | 1699 AddTextureQuad(frame.get(), 555); |
| 1670 AddTransferableResource(frame.get(), 555); | 1700 AddTransferableResource(frame.get(), 555); |
| 1671 delegated_->SetFrameData(frame.Pass()); | 1701 delegated_->SetFrameData(frame.Pass()); |
| 1672 break; | 1702 break; |
| 1673 case 4: | 1703 case 4: |
| 1674 // 555 from frame 1 and 2 isn't returned since it's still in use. 999 | 1704 // 555 from frame 1 and 2 isn't returned since it's still in use. 999 |
| 1675 // from frame 1 is returned though. | 1705 // from frame 1 is returned though. |
| 1676 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1706 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1677 { | 1707 { |
| 1678 unsigned expected[] = {444, 999}; | 1708 unsigned expected[] = {444, 999}; |
| 1679 EXPECT_RESOURCES(expected, resources); | 1709 EXPECT_RESOURCES(expected, resources); |
| 1710 EXPECT_TRUE(TestAndResetAvailable()); |
| 1680 } | 1711 } |
| 1681 | 1712 |
| 1682 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); | 1713 frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
| 1683 delegated_->SetFrameData(frame.Pass()); | 1714 delegated_->SetFrameData(frame.Pass()); |
| 1684 // 555 will be returned 3 times for frames 1 2 and 3, and 999 will be | 1715 // 555 will be returned 3 times for frames 1 2 and 3, and 999 will be |
| 1685 // returned once for frame 3. | 1716 // returned once for frame 3. |
| 1686 break; | 1717 break; |
| 1687 case 5: | 1718 case 5: |
| 1688 delegated_->TakeUnusedResourcesForChildCompositor(&resources); | 1719 delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
| 1689 { | 1720 { |
| 1690 unsigned expected[] = {555, 555, 555, 999}; | 1721 unsigned expected[] = {555, 555, 555, 999}; |
| 1691 EXPECT_RESOURCES(expected, resources); | 1722 EXPECT_RESOURCES(expected, resources); |
| 1723 EXPECT_TRUE(TestAndResetAvailable()); |
| 1692 } | 1724 } |
| 1693 | 1725 |
| 1694 EndTest(); | 1726 EndTest(); |
| 1695 break; | 1727 break; |
| 1696 } | 1728 } |
| 1697 } | 1729 } |
| 1698 | 1730 |
| 1699 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 1731 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
| 1700 if (host_impl->active_tree()->source_frame_number() < 1) | 1732 if (host_impl->active_tree()->source_frame_number() < 1) |
| 1701 return; | 1733 return; |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1840 base::WaitableEvent wait_event_; | 1872 base::WaitableEvent wait_event_; |
| 1841 base::Lock activate_lock_; | 1873 base::Lock activate_lock_; |
| 1842 int activate_count_; | 1874 int activate_count_; |
| 1843 }; | 1875 }; |
| 1844 | 1876 |
| 1845 SINGLE_AND_MULTI_THREAD_TEST_F( | 1877 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 1846 DelegatedFrameIsActivatedDuringCommit); | 1878 DelegatedFrameIsActivatedDuringCommit); |
| 1847 | 1879 |
| 1848 } // namespace | 1880 } // namespace |
| 1849 } // namespace cc | 1881 } // namespace cc |
| OLD | NEW |