| 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 |