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 "cc/resources/resource_provider.h" | 5 #include "cc/resources/resource_provider.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 gpu::SyncToken external_sync_token; | 654 gpu::SyncToken external_sync_token; |
655 child_context_->genSyncToken(child_context_->insertFenceSync(), | 655 child_context_->genSyncToken(child_context_->insertFenceSync(), |
656 external_sync_token.GetData()); | 656 external_sync_token.GetData()); |
657 EXPECT_TRUE(external_sync_token.HasData()); | 657 EXPECT_TRUE(external_sync_token.HasData()); |
658 ResourceId id4 = child_resource_provider_->CreateResourceFromTextureMailbox( | 658 ResourceId id4 = child_resource_provider_->CreateResourceFromTextureMailbox( |
659 TextureMailbox(external_mailbox, external_sync_token, | 659 TextureMailbox(external_mailbox, external_sync_token, |
660 GL_TEXTURE_EXTERNAL_OES), | 660 GL_TEXTURE_EXTERNAL_OES), |
661 SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback))); | 661 SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback))); |
662 | 662 |
663 ReturnedResourceArray returned_to_child; | 663 ReturnedResourceArray returned_to_child; |
664 int child_id = resource_provider_->CreateChild( | 664 int child_id = |
665 GetReturnCallback(&returned_to_child), | 665 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
666 child_gpu_memory_buffer_manager_->GetClientId()); | |
667 | 666 |
668 { | 667 { |
669 // Transfer some resources to the parent. | 668 // Transfer some resources to the parent. |
670 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 669 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
671 resource_ids_to_transfer.push_back(id1); | 670 resource_ids_to_transfer.push_back(id1); |
672 resource_ids_to_transfer.push_back(id2); | 671 resource_ids_to_transfer.push_back(id2); |
673 resource_ids_to_transfer.push_back(id3); | 672 resource_ids_to_transfer.push_back(id3); |
674 resource_ids_to_transfer.push_back(id4); | 673 resource_ids_to_transfer.push_back(id4); |
675 | 674 |
676 child_resource_provider_->GenerateSyncTokenForResources( | 675 child_resource_provider_->GenerateSyncTokenForResources( |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
912 gpu::SyncToken external_sync_token; | 911 gpu::SyncToken external_sync_token; |
913 child_context_->genSyncToken(child_context_->insertFenceSync(), | 912 child_context_->genSyncToken(child_context_->insertFenceSync(), |
914 external_sync_token.GetData()); | 913 external_sync_token.GetData()); |
915 EXPECT_TRUE(external_sync_token.HasData()); | 914 EXPECT_TRUE(external_sync_token.HasData()); |
916 ResourceId id3 = child_resource_provider_->CreateResourceFromTextureMailbox( | 915 ResourceId id3 = child_resource_provider_->CreateResourceFromTextureMailbox( |
917 TextureMailbox(external_mailbox, external_sync_token, | 916 TextureMailbox(external_mailbox, external_sync_token, |
918 GL_TEXTURE_EXTERNAL_OES), | 917 GL_TEXTURE_EXTERNAL_OES), |
919 SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback))); | 918 SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback))); |
920 | 919 |
921 ReturnedResourceArray returned_to_child; | 920 ReturnedResourceArray returned_to_child; |
922 int child_id = resource_provider_->CreateChild( | 921 int child_id = |
923 GetReturnCallback(&returned_to_child), | 922 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
924 child_gpu_memory_buffer_manager_->GetClientId()); | |
925 resource_provider_->SetChildNeedsSyncTokens(child_id, false); | 923 resource_provider_->SetChildNeedsSyncTokens(child_id, false); |
926 { | 924 { |
927 // Transfer some resources to the parent. | 925 // Transfer some resources to the parent. |
928 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 926 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
929 resource_ids_to_transfer.push_back(id1); | 927 resource_ids_to_transfer.push_back(id1); |
930 resource_ids_to_transfer.push_back(id2); | 928 resource_ids_to_transfer.push_back(id2); |
931 resource_ids_to_transfer.push_back(id3); | 929 resource_ids_to_transfer.push_back(id3); |
932 TransferableResourceArray list; | 930 TransferableResourceArray list; |
933 child_resource_provider_->GenerateSyncTokenForResources( | 931 child_resource_provider_->GenerateSyncTokenForResources( |
934 resource_ids_to_transfer); | 932 resource_ids_to_transfer); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
992 return; | 990 return; |
993 gfx::Size size(1, 1); | 991 gfx::Size size(1, 1); |
994 ResourceFormat format = RGBA_8888; | 992 ResourceFormat format = RGBA_8888; |
995 | 993 |
996 ResourceId id1 = child_resource_provider_->CreateResource( | 994 ResourceId id1 = child_resource_provider_->CreateResource( |
997 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 995 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
998 uint8_t data1[4] = {1, 2, 3, 4}; | 996 uint8_t data1[4] = {1, 2, 3, 4}; |
999 child_resource_provider_->CopyToResource(id1, data1, size); | 997 child_resource_provider_->CopyToResource(id1, data1, size); |
1000 | 998 |
1001 ReturnedResourceArray returned_to_child; | 999 ReturnedResourceArray returned_to_child; |
1002 int child_id = resource_provider_->CreateChild( | 1000 int child_id = |
1003 GetReturnCallback(&returned_to_child), | 1001 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1004 child_gpu_memory_buffer_manager_->GetClientId()); | |
1005 { | 1002 { |
1006 // Transfer some resources to the parent. | 1003 // Transfer some resources to the parent. |
1007 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1004 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1008 resource_ids_to_transfer.push_back(id1); | 1005 resource_ids_to_transfer.push_back(id1); |
1009 | 1006 |
1010 child_resource_provider_->GenerateSyncTokenForResources( | 1007 child_resource_provider_->GenerateSyncTokenForResources( |
1011 resource_ids_to_transfer); | 1008 resource_ids_to_transfer); |
1012 | 1009 |
1013 TransferableResourceArray list; | 1010 TransferableResourceArray list; |
1014 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | 1011 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1062 return; | 1059 return; |
1063 gfx::Size size(1, 1); | 1060 gfx::Size size(1, 1); |
1064 ResourceFormat format = RGBA_8888; | 1061 ResourceFormat format = RGBA_8888; |
1065 | 1062 |
1066 ResourceId id1 = child_resource_provider_->CreateResource( | 1063 ResourceId id1 = child_resource_provider_->CreateResource( |
1067 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1064 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1068 uint8_t data1[4] = {1, 2, 3, 4}; | 1065 uint8_t data1[4] = {1, 2, 3, 4}; |
1069 child_resource_provider_->CopyToResource(id1, data1, size); | 1066 child_resource_provider_->CopyToResource(id1, data1, size); |
1070 child_resource_provider_->EnableReadLockFencesForTesting(id1); | 1067 child_resource_provider_->EnableReadLockFencesForTesting(id1); |
1071 ReturnedResourceArray returned_to_child; | 1068 ReturnedResourceArray returned_to_child; |
1072 int child_id = resource_provider_->CreateChild( | 1069 int child_id = |
1073 GetReturnCallback(&returned_to_child), | 1070 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1074 child_gpu_memory_buffer_manager_->GetClientId()); | |
1075 | 1071 |
1076 // Transfer some resources to the parent. | 1072 // Transfer some resources to the parent. |
1077 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1073 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1078 resource_ids_to_transfer.push_back(id1); | 1074 resource_ids_to_transfer.push_back(id1); |
1079 | 1075 |
1080 child_resource_provider_->GenerateSyncTokenForResources( | 1076 child_resource_provider_->GenerateSyncTokenForResources( |
1081 resource_ids_to_transfer); | 1077 resource_ids_to_transfer); |
1082 | 1078 |
1083 TransferableResourceArray list; | 1079 TransferableResourceArray list; |
1084 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | 1080 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1125 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1121 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1126 uint8_t data[4] = {1, 2, 3, 4}; | 1122 uint8_t data[4] = {1, 2, 3, 4}; |
1127 child_resource_provider_->CopyToResource(id1, data, size); | 1123 child_resource_provider_->CopyToResource(id1, data, size); |
1128 child_resource_provider_->EnableReadLockFencesForTesting(id1); | 1124 child_resource_provider_->EnableReadLockFencesForTesting(id1); |
1129 | 1125 |
1130 ResourceId id2 = child_resource_provider_->CreateResource( | 1126 ResourceId id2 = child_resource_provider_->CreateResource( |
1131 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1127 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1132 child_resource_provider_->CopyToResource(id2, data, size); | 1128 child_resource_provider_->CopyToResource(id2, data, size); |
1133 | 1129 |
1134 ReturnedResourceArray returned_to_child; | 1130 ReturnedResourceArray returned_to_child; |
1135 int child_id = resource_provider_->CreateChild( | 1131 int child_id = |
1136 GetReturnCallback(&returned_to_child), | 1132 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1137 child_gpu_memory_buffer_manager_->GetClientId()); | |
1138 | 1133 |
1139 // Transfer resources to the parent. | 1134 // Transfer resources to the parent. |
1140 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1135 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1141 resource_ids_to_transfer.push_back(id1); | 1136 resource_ids_to_transfer.push_back(id1); |
1142 resource_ids_to_transfer.push_back(id2); | 1137 resource_ids_to_transfer.push_back(id2); |
1143 | 1138 |
1144 child_resource_provider_->GenerateSyncTokenForResources( | 1139 child_resource_provider_->GenerateSyncTokenForResources( |
1145 resource_ids_to_transfer); | 1140 resource_ids_to_transfer); |
1146 | 1141 |
1147 TransferableResourceArray list; | 1142 TransferableResourceArray list; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1192 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1187 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1193 uint8_t data[4] = {1, 2, 3, 4}; | 1188 uint8_t data[4] = {1, 2, 3, 4}; |
1194 child_resource_provider_->CopyToResource(id1, data, size); | 1189 child_resource_provider_->CopyToResource(id1, data, size); |
1195 child_resource_provider_->EnableReadLockFencesForTesting(id1); | 1190 child_resource_provider_->EnableReadLockFencesForTesting(id1); |
1196 | 1191 |
1197 ResourceId id2 = child_resource_provider_->CreateResource( | 1192 ResourceId id2 = child_resource_provider_->CreateResource( |
1198 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1193 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1199 child_resource_provider_->CopyToResource(id2, data, size); | 1194 child_resource_provider_->CopyToResource(id2, data, size); |
1200 | 1195 |
1201 ReturnedResourceArray returned_to_child; | 1196 ReturnedResourceArray returned_to_child; |
1202 int child_id = resource_provider_->CreateChild( | 1197 int child_id = |
1203 GetReturnCallback(&returned_to_child), | 1198 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1204 child_gpu_memory_buffer_manager_->GetClientId()); | |
1205 | 1199 |
1206 // Transfer resources to the parent. | 1200 // Transfer resources to the parent. |
1207 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1201 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1208 resource_ids_to_transfer.push_back(id1); | 1202 resource_ids_to_transfer.push_back(id1); |
1209 resource_ids_to_transfer.push_back(id2); | 1203 resource_ids_to_transfer.push_back(id2); |
1210 | 1204 |
1211 child_resource_provider_->GenerateSyncTokenForResources( | 1205 child_resource_provider_->GenerateSyncTokenForResources( |
1212 resource_ids_to_transfer); | 1206 resource_ids_to_transfer); |
1213 | 1207 |
1214 TransferableResourceArray list; | 1208 TransferableResourceArray list; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1263 | 1257 |
1264 std::unique_ptr<SharedBitmap> shared_bitmap(CreateAndFillSharedBitmap( | 1258 std::unique_ptr<SharedBitmap> shared_bitmap(CreateAndFillSharedBitmap( |
1265 shared_bitmap_manager_.get(), gfx::Size(1, 1), 0)); | 1259 shared_bitmap_manager_.get(), gfx::Size(1, 1), 0)); |
1266 SharedBitmap* shared_bitmap_ptr = shared_bitmap.get(); | 1260 SharedBitmap* shared_bitmap_ptr = shared_bitmap.get(); |
1267 ResourceId id3 = child_resource_provider_->CreateResourceFromTextureMailbox( | 1261 ResourceId id3 = child_resource_provider_->CreateResourceFromTextureMailbox( |
1268 TextureMailbox(shared_bitmap_ptr, gfx::Size(1, 1)), | 1262 TextureMailbox(shared_bitmap_ptr, gfx::Size(1, 1)), |
1269 SingleReleaseCallbackImpl::Create(base::Bind( | 1263 SingleReleaseCallbackImpl::Create(base::Bind( |
1270 &SharedBitmapReleaseCallback, base::Passed(&shared_bitmap)))); | 1264 &SharedBitmapReleaseCallback, base::Passed(&shared_bitmap)))); |
1271 | 1265 |
1272 ReturnedResourceArray returned_to_child; | 1266 ReturnedResourceArray returned_to_child; |
1273 int child_id = resource_provider_->CreateChild( | 1267 int child_id = |
1274 GetReturnCallback(&returned_to_child), | 1268 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1275 child_gpu_memory_buffer_manager_->GetClientId()); | |
1276 { | 1269 { |
1277 // Transfer some resources to the parent. | 1270 // Transfer some resources to the parent. |
1278 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1271 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1279 resource_ids_to_transfer.push_back(id1); | 1272 resource_ids_to_transfer.push_back(id1); |
1280 resource_ids_to_transfer.push_back(id2); | 1273 resource_ids_to_transfer.push_back(id2); |
1281 resource_ids_to_transfer.push_back(id3); | 1274 resource_ids_to_transfer.push_back(id3); |
1282 | 1275 |
1283 child_resource_provider_->GenerateSyncTokenForResources( | 1276 child_resource_provider_->GenerateSyncTokenForResources( |
1284 resource_ids_to_transfer); | 1277 resource_ids_to_transfer); |
1285 | 1278 |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1470 size_t pixel_size = TextureSizeBytes(size, format); | 1463 size_t pixel_size = TextureSizeBytes(size, format); |
1471 ASSERT_EQ(4U, pixel_size); | 1464 ASSERT_EQ(4U, pixel_size); |
1472 | 1465 |
1473 ResourceId id1 = child_resource_provider->CreateResource( | 1466 ResourceId id1 = child_resource_provider->CreateResource( |
1474 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1467 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1475 uint8_t data1[4] = { 1, 2, 3, 4 }; | 1468 uint8_t data1[4] = { 1, 2, 3, 4 }; |
1476 child_resource_provider->CopyToResource(id1, data1, size); | 1469 child_resource_provider->CopyToResource(id1, data1, size); |
1477 child_resource_provider->GenerateSyncTokenForResource(id1); | 1470 child_resource_provider->GenerateSyncTokenForResource(id1); |
1478 | 1471 |
1479 ReturnedResourceArray returned_to_child; | 1472 ReturnedResourceArray returned_to_child; |
1480 int child_id = resource_provider_->CreateChild( | 1473 int child_id = |
1481 GetReturnCallback(&returned_to_child), | 1474 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1482 child_gpu_memory_buffer_manager_->GetClientId()); | |
1483 { | 1475 { |
1484 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1476 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1485 resource_ids_to_transfer.push_back(id1); | 1477 resource_ids_to_transfer.push_back(id1); |
1486 | 1478 |
1487 TransferableResourceArray list; | 1479 TransferableResourceArray list; |
1488 child_resource_provider->PrepareSendToParent(resource_ids_to_transfer, | 1480 child_resource_provider->PrepareSendToParent(resource_ids_to_transfer, |
1489 &list); | 1481 &list); |
1490 ASSERT_EQ(1u, list.size()); | 1482 ASSERT_EQ(1u, list.size()); |
1491 EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); | 1483 EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
1492 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), | 1484 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), |
(...skipping 25 matching lines...) Expand all Loading... |
1518 ResourceFormat format = RGBA_8888; | 1510 ResourceFormat format = RGBA_8888; |
1519 size_t pixel_size = TextureSizeBytes(size, format); | 1511 size_t pixel_size = TextureSizeBytes(size, format); |
1520 ASSERT_EQ(4U, pixel_size); | 1512 ASSERT_EQ(4U, pixel_size); |
1521 | 1513 |
1522 ResourceId id1 = child_resource_provider_->CreateResource( | 1514 ResourceId id1 = child_resource_provider_->CreateResource( |
1523 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1515 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1524 uint8_t data1[4] = { 1, 2, 3, 4 }; | 1516 uint8_t data1[4] = { 1, 2, 3, 4 }; |
1525 child_resource_provider_->CopyToResource(id1, data1, size); | 1517 child_resource_provider_->CopyToResource(id1, data1, size); |
1526 | 1518 |
1527 ReturnedResourceArray returned_to_child; | 1519 ReturnedResourceArray returned_to_child; |
1528 int child_id = resource_provider_->CreateChild( | 1520 int child_id = |
1529 GetReturnCallback(&returned_to_child), | 1521 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1530 child_gpu_memory_buffer_manager_->GetClientId()); | |
1531 { | 1522 { |
1532 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1523 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1533 resource_ids_to_transfer.push_back(id1); | 1524 resource_ids_to_transfer.push_back(id1); |
1534 | 1525 |
1535 child_resource_provider_->GenerateSyncTokenForResources( | 1526 child_resource_provider_->GenerateSyncTokenForResources( |
1536 resource_ids_to_transfer); | 1527 resource_ids_to_transfer); |
1537 | 1528 |
1538 TransferableResourceArray list; | 1529 TransferableResourceArray list; |
1539 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | 1530 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
1540 &list); | 1531 &list); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1575 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1566 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1576 uint8_t data1[4] = { 1, 2, 3, 4 }; | 1567 uint8_t data1[4] = { 1, 2, 3, 4 }; |
1577 child_resource_provider_->CopyToResource(id1, data1, size); | 1568 child_resource_provider_->CopyToResource(id1, data1, size); |
1578 | 1569 |
1579 ResourceId id2 = child_resource_provider_->CreateResource( | 1570 ResourceId id2 = child_resource_provider_->CreateResource( |
1580 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1571 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1581 uint8_t data2[4] = {5, 5, 5, 5}; | 1572 uint8_t data2[4] = {5, 5, 5, 5}; |
1582 child_resource_provider_->CopyToResource(id2, data2, size); | 1573 child_resource_provider_->CopyToResource(id2, data2, size); |
1583 | 1574 |
1584 ReturnedResourceArray returned_to_child; | 1575 ReturnedResourceArray returned_to_child; |
1585 int child_id = resource_provider_->CreateChild( | 1576 int child_id = |
1586 GetReturnCallback(&returned_to_child), | 1577 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1587 child_gpu_memory_buffer_manager_->GetClientId()); | |
1588 { | 1578 { |
1589 // Transfer some resources to the parent. | 1579 // Transfer some resources to the parent. |
1590 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1580 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1591 resource_ids_to_transfer.push_back(id1); | 1581 resource_ids_to_transfer.push_back(id1); |
1592 resource_ids_to_transfer.push_back(id2); | 1582 resource_ids_to_transfer.push_back(id2); |
1593 | 1583 |
1594 child_resource_provider_->GenerateSyncTokenForResources( | 1584 child_resource_provider_->GenerateSyncTokenForResources( |
1595 resource_ids_to_transfer); | 1585 resource_ids_to_transfer); |
1596 | 1586 |
1597 TransferableResourceArray list; | 1587 TransferableResourceArray list; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1680 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1670 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1681 uint8_t data1[4] = {1, 2, 3, 4}; | 1671 uint8_t data1[4] = {1, 2, 3, 4}; |
1682 child_resource_provider_->CopyToResource(id1, data1, size); | 1672 child_resource_provider_->CopyToResource(id1, data1, size); |
1683 | 1673 |
1684 ResourceId id2 = child_resource_provider_->CreateResource( | 1674 ResourceId id2 = child_resource_provider_->CreateResource( |
1685 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1675 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1686 uint8_t data2[4] = {5, 5, 5, 5}; | 1676 uint8_t data2[4] = {5, 5, 5, 5}; |
1687 child_resource_provider_->CopyToResource(id2, data2, size); | 1677 child_resource_provider_->CopyToResource(id2, data2, size); |
1688 | 1678 |
1689 ReturnedResourceArray returned_to_child; | 1679 ReturnedResourceArray returned_to_child; |
1690 int child_id = resource_provider_->CreateChild( | 1680 int child_id = |
1691 GetReturnCallback(&returned_to_child), | 1681 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1692 child_gpu_memory_buffer_manager_->GetClientId()); | |
1693 { | 1682 { |
1694 // Transfer some resources to the parent. | 1683 // Transfer some resources to the parent. |
1695 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1684 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1696 resource_ids_to_transfer.push_back(id1); | 1685 resource_ids_to_transfer.push_back(id1); |
1697 resource_ids_to_transfer.push_back(id2); | 1686 resource_ids_to_transfer.push_back(id2); |
1698 | 1687 |
1699 child_resource_provider_->GenerateSyncTokenForResources( | 1688 child_resource_provider_->GenerateSyncTokenForResources( |
1700 resource_ids_to_transfer); | 1689 resource_ids_to_transfer); |
1701 | 1690 |
1702 TransferableResourceArray list; | 1691 TransferableResourceArray list; |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1797 ResourceFormat format = RGBA_8888; | 1786 ResourceFormat format = RGBA_8888; |
1798 size_t pixel_size = TextureSizeBytes(size, format); | 1787 size_t pixel_size = TextureSizeBytes(size, format); |
1799 ASSERT_EQ(4U, pixel_size); | 1788 ASSERT_EQ(4U, pixel_size); |
1800 | 1789 |
1801 ResourceId id = child_resource_provider_->CreateResource( | 1790 ResourceId id = child_resource_provider_->CreateResource( |
1802 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1791 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1803 uint8_t data[4] = { 1, 2, 3, 4 }; | 1792 uint8_t data[4] = { 1, 2, 3, 4 }; |
1804 child_resource_provider_->CopyToResource(id, data, size); | 1793 child_resource_provider_->CopyToResource(id, data, size); |
1805 | 1794 |
1806 ReturnedResourceArray returned_to_child; | 1795 ReturnedResourceArray returned_to_child; |
1807 int child_id = resource_provider_->CreateChild( | 1796 int child_id = |
1808 GetReturnCallback(&returned_to_child), | 1797 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1809 child_gpu_memory_buffer_manager_->GetClientId()); | |
1810 { | 1798 { |
1811 // Transfer some resource to the parent. | 1799 // Transfer some resource to the parent. |
1812 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1800 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1813 resource_ids_to_transfer.push_back(id); | 1801 resource_ids_to_transfer.push_back(id); |
1814 | 1802 |
1815 child_resource_provider_->GenerateSyncTokenForResources( | 1803 child_resource_provider_->GenerateSyncTokenForResources( |
1816 resource_ids_to_transfer); | 1804 resource_ids_to_transfer); |
1817 | 1805 |
1818 TransferableResourceArray list; | 1806 TransferableResourceArray list; |
1819 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | 1807 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1853 ResourceFormat format = RGBA_8888; | 1841 ResourceFormat format = RGBA_8888; |
1854 size_t pixel_size = TextureSizeBytes(size, format); | 1842 size_t pixel_size = TextureSizeBytes(size, format); |
1855 ASSERT_EQ(4U, pixel_size); | 1843 ASSERT_EQ(4U, pixel_size); |
1856 | 1844 |
1857 ResourceId id = child_resource_provider_->CreateResource( | 1845 ResourceId id = child_resource_provider_->CreateResource( |
1858 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1846 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
1859 uint8_t data[4] = {1, 2, 3, 4}; | 1847 uint8_t data[4] = {1, 2, 3, 4}; |
1860 child_resource_provider_->CopyToResource(id, data, size); | 1848 child_resource_provider_->CopyToResource(id, data, size); |
1861 | 1849 |
1862 ReturnedResourceArray returned_to_child; | 1850 ReturnedResourceArray returned_to_child; |
1863 int child_id = resource_provider_->CreateChild( | 1851 int child_id = |
1864 GetReturnCallback(&returned_to_child), | 1852 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
1865 child_gpu_memory_buffer_manager_->GetClientId()); | |
1866 const ResourceProvider::ResourceIdMap& map = | 1853 const ResourceProvider::ResourceIdMap& map = |
1867 resource_provider_->GetChildToParentMap(child_id); | 1854 resource_provider_->GetChildToParentMap(child_id); |
1868 { | 1855 { |
1869 // Transfer some resource to the parent. | 1856 // Transfer some resource to the parent. |
1870 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1857 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1871 resource_ids_to_transfer.push_back(id); | 1858 resource_ids_to_transfer.push_back(id); |
1872 | 1859 |
1873 child_resource_provider_->GenerateSyncTokenForResources( | 1860 child_resource_provider_->GenerateSyncTokenForResources( |
1874 resource_ids_to_transfer); | 1861 resource_ids_to_transfer); |
1875 | 1862 |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2044 texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, child_filter)); | 2031 texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, child_filter)); |
2045 EXPECT_CALL( | 2032 EXPECT_CALL( |
2046 *child_context, | 2033 *child_context, |
2047 texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, child_filter)); | 2034 texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, child_filter)); |
2048 } | 2035 } |
2049 SetResourceFilter(child_resource_provider.get(), id, child_filter); | 2036 SetResourceFilter(child_resource_provider.get(), id, child_filter); |
2050 Mock::VerifyAndClearExpectations(child_context); | 2037 Mock::VerifyAndClearExpectations(child_context); |
2051 | 2038 |
2052 ReturnedResourceArray returned_to_child; | 2039 ReturnedResourceArray returned_to_child; |
2053 int child_id = parent_resource_provider->CreateChild( | 2040 int child_id = parent_resource_provider->CreateChild( |
2054 GetReturnCallback(&returned_to_child), -1); | 2041 GetReturnCallback(&returned_to_child)); |
2055 { | 2042 { |
2056 // Transfer some resource to the parent. | 2043 // Transfer some resource to the parent. |
2057 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 2044 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
2058 resource_ids_to_transfer.push_back(id); | 2045 resource_ids_to_transfer.push_back(id); |
2059 TransferableResourceArray list; | 2046 TransferableResourceArray list; |
2060 | 2047 |
2061 EXPECT_CALL(*child_context, | 2048 EXPECT_CALL(*child_context, |
2062 produceTextureDirectCHROMIUM(_, GL_TEXTURE_2D, _)); | 2049 produceTextureDirectCHROMIUM(_, GL_TEXTURE_2D, _)); |
2063 | 2050 |
2064 child_resource_provider->GenerateSyncTokenForResources( | 2051 child_resource_provider->GenerateSyncTokenForResources( |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2288 gfx::Size size(1, 1); | 2275 gfx::Size size(1, 1); |
2289 ResourceFormat format = RGBA_8888; | 2276 ResourceFormat format = RGBA_8888; |
2290 ResourceId resource = child_resource_provider_->CreateResource( | 2277 ResourceId resource = child_resource_provider_->CreateResource( |
2291 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2278 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
2292 child_resource_provider_->AllocateForTesting(resource); | 2279 child_resource_provider_->AllocateForTesting(resource); |
2293 // Expect a GL resource to be lost. | 2280 // Expect a GL resource to be lost. |
2294 bool should_lose_resource = | 2281 bool should_lose_resource = |
2295 GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE; | 2282 GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE; |
2296 | 2283 |
2297 ReturnedResourceArray returned_to_child; | 2284 ReturnedResourceArray returned_to_child; |
2298 int child_id = resource_provider_->CreateChild( | 2285 int child_id = |
2299 GetReturnCallback(&returned_to_child), | 2286 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
2300 child_gpu_memory_buffer_manager_->GetClientId()); | |
2301 { | 2287 { |
2302 // Transfer the resource to the parent. | 2288 // Transfer the resource to the parent. |
2303 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 2289 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
2304 resource_ids_to_transfer.push_back(resource); | 2290 resource_ids_to_transfer.push_back(resource); |
2305 TransferableResourceArray list; | 2291 TransferableResourceArray list; |
2306 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | 2292 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
2307 &list); | 2293 &list); |
2308 EXPECT_EQ(1u, list.size()); | 2294 EXPECT_EQ(1u, list.size()); |
2309 | 2295 |
2310 resource_provider_->ReceiveFromChild(child_id, list); | 2296 resource_provider_->ReceiveFromChild(child_id, list); |
(...skipping 30 matching lines...) Expand all Loading... |
2341 } | 2327 } |
2342 | 2328 |
2343 TEST_P(ResourceProviderTest, LostResourceInGrandParent) { | 2329 TEST_P(ResourceProviderTest, LostResourceInGrandParent) { |
2344 gfx::Size size(1, 1); | 2330 gfx::Size size(1, 1); |
2345 ResourceFormat format = RGBA_8888; | 2331 ResourceFormat format = RGBA_8888; |
2346 ResourceId resource = child_resource_provider_->CreateResource( | 2332 ResourceId resource = child_resource_provider_->CreateResource( |
2347 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2333 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
2348 child_resource_provider_->AllocateForTesting(resource); | 2334 child_resource_provider_->AllocateForTesting(resource); |
2349 | 2335 |
2350 ReturnedResourceArray returned_to_child; | 2336 ReturnedResourceArray returned_to_child; |
2351 int child_id = resource_provider_->CreateChild( | 2337 int child_id = |
2352 GetReturnCallback(&returned_to_child), | 2338 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
2353 child_gpu_memory_buffer_manager_->GetClientId()); | |
2354 { | 2339 { |
2355 // Transfer the resource to the parent. | 2340 // Transfer the resource to the parent. |
2356 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 2341 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
2357 resource_ids_to_transfer.push_back(resource); | 2342 resource_ids_to_transfer.push_back(resource); |
2358 TransferableResourceArray list; | 2343 TransferableResourceArray list; |
2359 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | 2344 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
2360 &list); | 2345 &list); |
2361 EXPECT_EQ(1u, list.size()); | 2346 EXPECT_EQ(1u, list.size()); |
2362 | 2347 |
2363 resource_provider_->ReceiveFromChild(child_id, list); | 2348 resource_provider_->ReceiveFromChild(child_id, list); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2420 | 2405 |
2421 TEST_P(ResourceProviderTest, LostMailboxInParent) { | 2406 TEST_P(ResourceProviderTest, LostMailboxInParent) { |
2422 gpu::SyncToken release_sync_token; | 2407 gpu::SyncToken release_sync_token; |
2423 bool lost_resource = false; | 2408 bool lost_resource = false; |
2424 bool release_called = false; | 2409 bool release_called = false; |
2425 gpu::SyncToken sync_token; | 2410 gpu::SyncToken sync_token; |
2426 ResourceId resource = CreateChildMailbox(&release_sync_token, &lost_resource, | 2411 ResourceId resource = CreateChildMailbox(&release_sync_token, &lost_resource, |
2427 &release_called, &sync_token); | 2412 &release_called, &sync_token); |
2428 | 2413 |
2429 ReturnedResourceArray returned_to_child; | 2414 ReturnedResourceArray returned_to_child; |
2430 int child_id = resource_provider_->CreateChild( | 2415 int child_id = |
2431 GetReturnCallback(&returned_to_child), | 2416 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
2432 child_gpu_memory_buffer_manager_->GetClientId()); | |
2433 { | 2417 { |
2434 // Transfer the resource to the parent. | 2418 // Transfer the resource to the parent. |
2435 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 2419 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
2436 resource_ids_to_transfer.push_back(resource); | 2420 resource_ids_to_transfer.push_back(resource); |
2437 TransferableResourceArray list; | 2421 TransferableResourceArray list; |
2438 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | 2422 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
2439 &list); | 2423 &list); |
2440 EXPECT_EQ(1u, list.size()); | 2424 EXPECT_EQ(1u, list.size()); |
2441 | 2425 |
2442 resource_provider_->ReceiveFromChild(child_id, list); | 2426 resource_provider_->ReceiveFromChild(child_id, list); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2474 | 2458 |
2475 TEST_P(ResourceProviderTest, LostMailboxInGrandParent) { | 2459 TEST_P(ResourceProviderTest, LostMailboxInGrandParent) { |
2476 gpu::SyncToken release_sync_token; | 2460 gpu::SyncToken release_sync_token; |
2477 bool lost_resource = false; | 2461 bool lost_resource = false; |
2478 bool release_called = false; | 2462 bool release_called = false; |
2479 gpu::SyncToken sync_token; | 2463 gpu::SyncToken sync_token; |
2480 ResourceId resource = CreateChildMailbox(&release_sync_token, &lost_resource, | 2464 ResourceId resource = CreateChildMailbox(&release_sync_token, &lost_resource, |
2481 &release_called, &sync_token); | 2465 &release_called, &sync_token); |
2482 | 2466 |
2483 ReturnedResourceArray returned_to_child; | 2467 ReturnedResourceArray returned_to_child; |
2484 int child_id = resource_provider_->CreateChild( | 2468 int child_id = |
2485 GetReturnCallback(&returned_to_child), | 2469 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
2486 child_gpu_memory_buffer_manager_->GetClientId()); | |
2487 { | 2470 { |
2488 // Transfer the resource to the parent. | 2471 // Transfer the resource to the parent. |
2489 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 2472 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
2490 resource_ids_to_transfer.push_back(resource); | 2473 resource_ids_to_transfer.push_back(resource); |
2491 TransferableResourceArray list; | 2474 TransferableResourceArray list; |
2492 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | 2475 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
2493 &list); | 2476 &list); |
2494 EXPECT_EQ(1u, list.size()); | 2477 EXPECT_EQ(1u, list.size()); |
2495 | 2478 |
2496 resource_provider_->ReceiveFromChild(child_id, list); | 2479 resource_provider_->ReceiveFromChild(child_id, list); |
(...skipping 1205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3702 resource_provider->AllocateForTesting(id); | 3685 resource_provider->AllocateForTesting(id); |
3703 Mock::VerifyAndClearExpectations(context); | 3686 Mock::VerifyAndClearExpectations(context); |
3704 | 3687 |
3705 DCHECK_EQ(10u, context->PeekTextureId()); | 3688 DCHECK_EQ(10u, context->PeekTextureId()); |
3706 resource_provider->DeleteResource(id); | 3689 resource_provider->DeleteResource(id); |
3707 } | 3690 } |
3708 } | 3691 } |
3709 | 3692 |
3710 } // namespace | 3693 } // namespace |
3711 } // namespace cc | 3694 } // namespace cc |
OLD | NEW |