| 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 28 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 using testing::Mock; | 40 using testing::Mock; |
| 41 using testing::NiceMock; | 41 using testing::NiceMock; |
| 42 using testing::Return; | 42 using testing::Return; |
| 43 using testing::StrictMock; | 43 using testing::StrictMock; |
| 44 using testing::_; | 44 using testing::_; |
| 45 | 45 |
| 46 namespace cc { | 46 namespace cc { |
| 47 namespace { | 47 namespace { |
| 48 | 48 |
| 49 static const bool kUseGpuMemoryBufferResources = false; |
| 50 static const bool kDelegatedSyncPointsRequired = true; |
| 51 static const std::vector<unsigned> kUseImageTextureTargets( |
| 52 static_cast<size_t>(gfx::BufferFormat::LAST) + 1, |
| 53 GL_TEXTURE_2D); |
| 54 |
| 49 MATCHER_P(MatchesSyncToken, sync_token, "") { | 55 MATCHER_P(MatchesSyncToken, sync_token, "") { |
| 50 gpu::SyncToken other; | 56 gpu::SyncToken other; |
| 51 memcpy(&other, arg, sizeof(other)); | 57 memcpy(&other, arg, sizeof(other)); |
| 52 return other == sync_token; | 58 return other == sync_token; |
| 53 } | 59 } |
| 54 | 60 |
| 55 static void EmptyReleaseCallback(const gpu::SyncToken& sync_token, | 61 static void EmptyReleaseCallback(const gpu::SyncToken& sync_token, |
| 56 bool lost_resource, | 62 bool lost_resource, |
| 57 BlockingTaskRunner* main_thread_task_runner) {} | 63 BlockingTaskRunner* main_thread_task_runner) {} |
| 58 | 64 |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 452 break; | 458 break; |
| 453 } | 459 } |
| 454 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 460 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
| 455 CHECK(child_output_surface_->BindToClient(&child_output_surface_client_)); | 461 CHECK(child_output_surface_->BindToClient(&child_output_surface_client_)); |
| 456 | 462 |
| 457 shared_bitmap_manager_.reset(new TestSharedBitmapManager); | 463 shared_bitmap_manager_.reset(new TestSharedBitmapManager); |
| 458 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); | 464 gpu_memory_buffer_manager_.reset(new TestGpuMemoryBufferManager); |
| 459 child_gpu_memory_buffer_manager_ = | 465 child_gpu_memory_buffer_manager_ = |
| 460 gpu_memory_buffer_manager_->CreateClientGpuMemoryBufferManager(); | 466 gpu_memory_buffer_manager_->CreateClientGpuMemoryBufferManager(); |
| 461 | 467 |
| 462 resource_provider_ = ResourceProvider::Create( | 468 resource_provider_ = base::MakeUnique<ResourceProvider>( |
| 463 output_surface_.get(), shared_bitmap_manager_.get(), | 469 output_surface_->context_provider(), shared_bitmap_manager_.get(), |
| 464 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, 1, | 470 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, 1, |
| 465 use_gpu_memory_buffer_resources_, use_image_texture_targets_); | 471 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 466 child_resource_provider_ = ResourceProvider::Create( | 472 kUseImageTextureTargets); |
| 467 child_output_surface_.get(), shared_bitmap_manager_.get(), | 473 child_resource_provider_ = base::MakeUnique<ResourceProvider>( |
| 474 child_output_surface_->context_provider(), shared_bitmap_manager_.get(), |
| 468 child_gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), | 475 child_gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), |
| 469 0, 1, use_gpu_memory_buffer_resources_, use_image_texture_targets_); | 476 0, 1, |
| 477 child_output_surface_->capabilities().delegated_sync_points_required, |
| 478 kUseGpuMemoryBufferResources, kUseImageTextureTargets); |
| 470 } | 479 } |
| 471 | 480 |
| 472 ResourceProviderTest() : ResourceProviderTest(true) {} | 481 ResourceProviderTest() : ResourceProviderTest(true) {} |
| 473 | 482 |
| 474 static void CollectResources(ReturnedResourceArray* array, | 483 static void CollectResources(ReturnedResourceArray* array, |
| 475 const ReturnedResourceArray& returned, | 484 const ReturnedResourceArray& returned, |
| 476 BlockingTaskRunner* main_thread_task_runner) { | 485 BlockingTaskRunner* main_thread_task_runner) { |
| 477 array->insert(array->end(), returned.begin(), returned.end()); | 486 array->insert(array->end(), returned.begin(), returned.end()); |
| 478 } | 487 } |
| 479 | 488 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 SharedBitmap* shared_bitmap_ptr = shared_bitmap.get(); | 529 SharedBitmap* shared_bitmap_ptr = shared_bitmap.get(); |
| 521 std::unique_ptr<SingleReleaseCallbackImpl> callback = | 530 std::unique_ptr<SingleReleaseCallbackImpl> callback = |
| 522 SingleReleaseCallbackImpl::Create(base::Bind( | 531 SingleReleaseCallbackImpl::Create(base::Bind( |
| 523 ReleaseSharedBitmapCallback, base::Passed(&shared_bitmap), | 532 ReleaseSharedBitmapCallback, base::Passed(&shared_bitmap), |
| 524 release_called, release_sync_token, lost_resource)); | 533 release_called, release_sync_token, lost_resource)); |
| 525 return child_resource_provider_->CreateResourceFromTextureMailbox( | 534 return child_resource_provider_->CreateResourceFromTextureMailbox( |
| 526 TextureMailbox(shared_bitmap_ptr, size), std::move(callback)); | 535 TextureMailbox(shared_bitmap_ptr, size), std::move(callback)); |
| 527 } | 536 } |
| 528 } | 537 } |
| 529 | 538 |
| 530 public: | |
| 531 static bool use_gpu_memory_buffer_resources() { | |
| 532 return use_gpu_memory_buffer_resources_; | |
| 533 } | |
| 534 static std::vector<unsigned> use_image_texture_targets() { | |
| 535 return use_image_texture_targets_; | |
| 536 } | |
| 537 | |
| 538 protected: | 539 protected: |
| 539 static bool use_gpu_memory_buffer_resources_; | |
| 540 static std::vector<unsigned> use_image_texture_targets_; | |
| 541 std::unique_ptr<ContextSharedData> shared_data_; | 540 std::unique_ptr<ContextSharedData> shared_data_; |
| 542 ResourceProviderContext* context3d_; | 541 ResourceProviderContext* context3d_; |
| 543 ResourceProviderContext* child_context_; | 542 ResourceProviderContext* child_context_; |
| 544 FakeOutputSurfaceClient output_surface_client_; | 543 FakeOutputSurfaceClient output_surface_client_; |
| 545 FakeOutputSurfaceClient child_output_surface_client_; | 544 FakeOutputSurfaceClient child_output_surface_client_; |
| 546 std::unique_ptr<OutputSurface> output_surface_; | 545 std::unique_ptr<OutputSurface> output_surface_; |
| 547 std::unique_ptr<OutputSurface> child_output_surface_; | 546 std::unique_ptr<OutputSurface> child_output_surface_; |
| 548 std::unique_ptr<BlockingTaskRunner> main_thread_task_runner_; | 547 std::unique_ptr<BlockingTaskRunner> main_thread_task_runner_; |
| 549 std::unique_ptr<TestGpuMemoryBufferManager> gpu_memory_buffer_manager_; | 548 std::unique_ptr<TestGpuMemoryBufferManager> gpu_memory_buffer_manager_; |
| 550 std::unique_ptr<ResourceProvider> resource_provider_; | 549 std::unique_ptr<ResourceProvider> resource_provider_; |
| 551 std::unique_ptr<TestGpuMemoryBufferManager> child_gpu_memory_buffer_manager_; | 550 std::unique_ptr<TestGpuMemoryBufferManager> child_gpu_memory_buffer_manager_; |
| 552 std::unique_ptr<ResourceProvider> child_resource_provider_; | 551 std::unique_ptr<ResourceProvider> child_resource_provider_; |
| 553 std::unique_ptr<TestSharedBitmapManager> shared_bitmap_manager_; | 552 std::unique_ptr<TestSharedBitmapManager> shared_bitmap_manager_; |
| 554 }; | 553 }; |
| 555 | 554 |
| 556 bool ResourceProviderTest::use_gpu_memory_buffer_resources_ = false; | |
| 557 | |
| 558 std::vector<unsigned> ResourceProviderTest::use_image_texture_targets_ = | |
| 559 std::vector<unsigned>(static_cast<size_t>(gfx::BufferFormat::LAST) + 1, | |
| 560 GL_TEXTURE_2D); | |
| 561 | |
| 562 void CheckCreateResource(ResourceProvider::ResourceType expected_default_type, | 555 void CheckCreateResource(ResourceProvider::ResourceType expected_default_type, |
| 563 ResourceProvider* resource_provider, | 556 ResourceProvider* resource_provider, |
| 564 ResourceProviderContext* context) { | 557 ResourceProviderContext* context) { |
| 565 DCHECK_EQ(expected_default_type, resource_provider->default_resource_type()); | 558 DCHECK_EQ(expected_default_type, resource_provider->default_resource_type()); |
| 566 | 559 |
| 567 gfx::Size size(1, 1); | 560 gfx::Size size(1, 1); |
| 568 ResourceFormat format = RGBA_8888; | 561 ResourceFormat format = RGBA_8888; |
| 569 size_t pixel_size = TextureSizeBytes(size, format); | 562 size_t pixel_size = TextureSizeBytes(size, format); |
| 570 ASSERT_EQ(4U, pixel_size); | 563 ASSERT_EQ(4U, pixel_size); |
| 571 | 564 |
| (...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1459 | 1452 |
| 1460 std::unique_ptr<ResourceProviderContext> child_context_owned( | 1453 std::unique_ptr<ResourceProviderContext> child_context_owned( |
| 1461 ResourceProviderContext::Create(shared_data_.get())); | 1454 ResourceProviderContext::Create(shared_data_.get())); |
| 1462 | 1455 |
| 1463 FakeOutputSurfaceClient child_output_surface_client; | 1456 FakeOutputSurfaceClient child_output_surface_client; |
| 1464 std::unique_ptr<OutputSurface> child_output_surface( | 1457 std::unique_ptr<OutputSurface> child_output_surface( |
| 1465 FakeOutputSurface::Create3d(std::move(child_context_owned))); | 1458 FakeOutputSurface::Create3d(std::move(child_context_owned))); |
| 1466 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); | 1459 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); |
| 1467 | 1460 |
| 1468 std::unique_ptr<ResourceProvider> child_resource_provider( | 1461 std::unique_ptr<ResourceProvider> child_resource_provider( |
| 1469 ResourceProvider::Create( | 1462 base::MakeUnique<ResourceProvider>( |
| 1470 child_output_surface.get(), shared_bitmap_manager_.get(), | 1463 child_output_surface->context_provider(), |
| 1471 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 1464 shared_bitmap_manager_.get(), gpu_memory_buffer_manager_.get(), |
| 1472 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 1465 nullptr, 0, 1, kDelegatedSyncPointsRequired, |
| 1466 kUseGpuMemoryBufferResources, kUseImageTextureTargets)); |
| 1473 | 1467 |
| 1474 gfx::Size size(1, 1); | 1468 gfx::Size size(1, 1); |
| 1475 ResourceFormat format = RGBA_8888; | 1469 ResourceFormat format = RGBA_8888; |
| 1476 size_t pixel_size = TextureSizeBytes(size, format); | 1470 size_t pixel_size = TextureSizeBytes(size, format); |
| 1477 ASSERT_EQ(4U, pixel_size); | 1471 ASSERT_EQ(4U, pixel_size); |
| 1478 | 1472 |
| 1479 ResourceId id1 = child_resource_provider->CreateResource( | 1473 ResourceId id1 = child_resource_provider->CreateResource( |
| 1480 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 1474 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 1481 uint8_t data1[4] = { 1, 2, 3, 4 }; | 1475 uint8_t data1[4] = { 1, 2, 3, 4 }; |
| 1482 child_resource_provider->CopyToResource(id1, data1, size); | 1476 child_resource_provider->CopyToResource(id1, data1, size); |
| (...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1980 TextureStateTrackingContext* child_context = child_context_owned.get(); | 1974 TextureStateTrackingContext* child_context = child_context_owned.get(); |
| 1981 | 1975 |
| 1982 FakeOutputSurfaceClient child_output_surface_client; | 1976 FakeOutputSurfaceClient child_output_surface_client; |
| 1983 std::unique_ptr<OutputSurface> child_output_surface( | 1977 std::unique_ptr<OutputSurface> child_output_surface( |
| 1984 FakeOutputSurface::Create3d(std::move(child_context_owned))); | 1978 FakeOutputSurface::Create3d(std::move(child_context_owned))); |
| 1985 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); | 1979 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); |
| 1986 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 1980 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 1987 new TestSharedBitmapManager()); | 1981 new TestSharedBitmapManager()); |
| 1988 | 1982 |
| 1989 std::unique_ptr<ResourceProvider> child_resource_provider( | 1983 std::unique_ptr<ResourceProvider> child_resource_provider( |
| 1990 ResourceProvider::Create(child_output_surface.get(), | 1984 base::MakeUnique<ResourceProvider>( |
| 1991 shared_bitmap_manager.get(), NULL, NULL, 0, 1, | 1985 child_output_surface->context_provider(), |
| 1992 use_gpu_memory_buffer_resources_, | 1986 shared_bitmap_manager.get(), nullptr, nullptr, 0, 1, |
| 1993 use_image_texture_targets_)); | 1987 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 1988 kUseImageTextureTargets)); |
| 1994 | 1989 |
| 1995 std::unique_ptr<TextureStateTrackingContext> parent_context_owned( | 1990 std::unique_ptr<TextureStateTrackingContext> parent_context_owned( |
| 1996 new TextureStateTrackingContext); | 1991 new TextureStateTrackingContext); |
| 1997 TextureStateTrackingContext* parent_context = parent_context_owned.get(); | 1992 TextureStateTrackingContext* parent_context = parent_context_owned.get(); |
| 1998 | 1993 |
| 1999 FakeOutputSurfaceClient parent_output_surface_client; | 1994 FakeOutputSurfaceClient parent_output_surface_client; |
| 2000 std::unique_ptr<OutputSurface> parent_output_surface( | 1995 std::unique_ptr<OutputSurface> parent_output_surface( |
| 2001 FakeOutputSurface::Create3d(std::move(parent_context_owned))); | 1996 FakeOutputSurface::Create3d(std::move(parent_context_owned))); |
| 2002 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); | 1997 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); |
| 2003 | 1998 |
| 2004 std::unique_ptr<ResourceProvider> parent_resource_provider( | 1999 std::unique_ptr<ResourceProvider> parent_resource_provider( |
| 2005 ResourceProvider::Create(parent_output_surface.get(), | 2000 base::MakeUnique<ResourceProvider>( |
| 2006 shared_bitmap_manager.get(), NULL, NULL, 0, 1, | 2001 parent_output_surface->context_provider(), |
| 2007 use_gpu_memory_buffer_resources_, | 2002 shared_bitmap_manager.get(), nullptr, nullptr, 0, 1, |
| 2008 use_image_texture_targets_)); | 2003 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 2004 kUseImageTextureTargets)); |
| 2009 | 2005 |
| 2010 gfx::Size size(1, 1); | 2006 gfx::Size size(1, 1); |
| 2011 ResourceFormat format = RGBA_8888; | 2007 ResourceFormat format = RGBA_8888; |
| 2012 int child_texture_id = 1; | 2008 int child_texture_id = 1; |
| 2013 int parent_texture_id = 2; | 2009 int parent_texture_id = 2; |
| 2014 | 2010 |
| 2015 size_t pixel_size = TextureSizeBytes(size, format); | 2011 size_t pixel_size = TextureSizeBytes(size, format); |
| 2016 ASSERT_EQ(4U, pixel_size); | 2012 ASSERT_EQ(4U, pixel_size); |
| 2017 | 2013 |
| 2018 ResourceId id = child_resource_provider->CreateResource( | 2014 ResourceId id = child_resource_provider->CreateResource( |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2165 context()->produceTextureDirectCHROMIUM(texture, GL_TEXTURE_2D, mailbox.name); | 2161 context()->produceTextureDirectCHROMIUM(texture, GL_TEXTURE_2D, mailbox.name); |
| 2166 gpu::SyncToken sync_token; | 2162 gpu::SyncToken sync_token; |
| 2167 context()->genSyncToken(context()->insertFenceSync(), sync_token.GetData()); | 2163 context()->genSyncToken(context()->insertFenceSync(), sync_token.GetData()); |
| 2168 EXPECT_TRUE(sync_token.HasData()); | 2164 EXPECT_TRUE(sync_token.HasData()); |
| 2169 | 2165 |
| 2170 // All the logic below assumes that the sync token releases are all positive. | 2166 // All the logic below assumes that the sync token releases are all positive. |
| 2171 EXPECT_LT(0u, sync_token.release_count()); | 2167 EXPECT_LT(0u, sync_token.release_count()); |
| 2172 | 2168 |
| 2173 gpu::SyncToken release_sync_token; | 2169 gpu::SyncToken release_sync_token; |
| 2174 bool lost_resource = false; | 2170 bool lost_resource = false; |
| 2175 BlockingTaskRunner* main_thread_task_runner = NULL; | 2171 BlockingTaskRunner* main_thread_task_runner = nullptr; |
| 2176 ReleaseCallbackImpl callback = | 2172 ReleaseCallbackImpl callback = |
| 2177 base::Bind(ReleaseCallback, &release_sync_token, &lost_resource, | 2173 base::Bind(ReleaseCallback, &release_sync_token, &lost_resource, |
| 2178 &main_thread_task_runner); | 2174 &main_thread_task_runner); |
| 2179 ResourceId resource = resource_provider_->CreateResourceFromTextureMailbox( | 2175 ResourceId resource = resource_provider_->CreateResourceFromTextureMailbox( |
| 2180 TextureMailbox(mailbox, sync_token, GL_TEXTURE_2D), | 2176 TextureMailbox(mailbox, sync_token, GL_TEXTURE_2D), |
| 2181 SingleReleaseCallbackImpl::Create(callback)); | 2177 SingleReleaseCallbackImpl::Create(callback)); |
| 2182 EXPECT_EQ(1u, context()->NumTextures()); | 2178 EXPECT_EQ(1u, context()->NumTextures()); |
| 2183 EXPECT_FALSE(release_sync_token.HasData()); | 2179 EXPECT_FALSE(release_sync_token.HasData()); |
| 2184 { | 2180 { |
| 2185 // Transfer the resource, expect the sync points to be consistent. | 2181 // Transfer the resource, expect the sync points to be consistent. |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2600 gpu::Mailbox mailbox; | 2596 gpu::Mailbox mailbox; |
| 2601 context()->genMailboxCHROMIUM(mailbox.name); | 2597 context()->genMailboxCHROMIUM(mailbox.name); |
| 2602 context()->produceTextureDirectCHROMIUM(texture, GL_TEXTURE_2D, mailbox.name); | 2598 context()->produceTextureDirectCHROMIUM(texture, GL_TEXTURE_2D, mailbox.name); |
| 2603 gpu::SyncToken sync_token; | 2599 gpu::SyncToken sync_token; |
| 2604 context()->genSyncToken(context()->insertFenceSync(), sync_token.GetData()); | 2600 context()->genSyncToken(context()->insertFenceSync(), sync_token.GetData()); |
| 2605 | 2601 |
| 2606 EXPECT_TRUE(sync_token.HasData()); | 2602 EXPECT_TRUE(sync_token.HasData()); |
| 2607 | 2603 |
| 2608 gpu::SyncToken release_sync_token; | 2604 gpu::SyncToken release_sync_token; |
| 2609 bool lost_resource = false; | 2605 bool lost_resource = false; |
| 2610 BlockingTaskRunner* main_thread_task_runner = NULL; | 2606 BlockingTaskRunner* main_thread_task_runner = nullptr; |
| 2611 std::unique_ptr<SingleReleaseCallbackImpl> callback = | 2607 std::unique_ptr<SingleReleaseCallbackImpl> callback = |
| 2612 SingleReleaseCallbackImpl::Create( | 2608 SingleReleaseCallbackImpl::Create( |
| 2613 base::Bind(ReleaseCallback, &release_sync_token, &lost_resource, | 2609 base::Bind(ReleaseCallback, &release_sync_token, &lost_resource, |
| 2614 &main_thread_task_runner)); | 2610 &main_thread_task_runner)); |
| 2615 resource_provider_->CreateResourceFromTextureMailbox( | 2611 resource_provider_->CreateResourceFromTextureMailbox( |
| 2616 TextureMailbox(mailbox, sync_token, GL_TEXTURE_2D), std::move(callback)); | 2612 TextureMailbox(mailbox, sync_token, GL_TEXTURE_2D), std::move(callback)); |
| 2617 | 2613 |
| 2618 EXPECT_FALSE(release_sync_token.HasData()); | 2614 EXPECT_FALSE(release_sync_token.HasData()); |
| 2619 EXPECT_FALSE(lost_resource); | 2615 EXPECT_FALSE(lost_resource); |
| 2620 EXPECT_EQ(NULL, main_thread_task_runner); | 2616 EXPECT_FALSE(main_thread_task_runner); |
| 2621 | 2617 |
| 2622 resource_provider_->DidLoseOutputSurface(); | 2618 resource_provider_->DidLoseOutputSurface(); |
| 2623 resource_provider_ = nullptr; | 2619 resource_provider_ = nullptr; |
| 2624 | 2620 |
| 2625 EXPECT_LE(sync_token.release_count(), release_sync_token.release_count()); | 2621 EXPECT_LE(sync_token.release_count(), release_sync_token.release_count()); |
| 2626 EXPECT_TRUE(lost_resource); | 2622 EXPECT_TRUE(lost_resource); |
| 2627 EXPECT_EQ(main_thread_task_runner_.get(), main_thread_task_runner); | 2623 EXPECT_EQ(main_thread_task_runner_.get(), main_thread_task_runner); |
| 2628 } | 2624 } |
| 2629 | 2625 |
| 2630 TEST_P(ResourceProviderTest, ScopedSampler) { | 2626 TEST_P(ResourceProviderTest, ScopedSampler) { |
| 2631 // Sampling is only supported for GL textures. | 2627 // Sampling is only supported for GL textures. |
| 2632 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) | 2628 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| 2633 return; | 2629 return; |
| 2634 | 2630 |
| 2635 std::unique_ptr<TextureStateTrackingContext> context_owned( | 2631 std::unique_ptr<TextureStateTrackingContext> context_owned( |
| 2636 new TextureStateTrackingContext); | 2632 new TextureStateTrackingContext); |
| 2637 TextureStateTrackingContext* context = context_owned.get(); | 2633 TextureStateTrackingContext* context = context_owned.get(); |
| 2638 | 2634 |
| 2639 FakeOutputSurfaceClient output_surface_client; | 2635 FakeOutputSurfaceClient output_surface_client; |
| 2640 std::unique_ptr<OutputSurface> output_surface( | 2636 std::unique_ptr<OutputSurface> output_surface( |
| 2641 FakeOutputSurface::Create3d(std::move(context_owned))); | 2637 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 2642 CHECK(output_surface->BindToClient(&output_surface_client)); | 2638 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2643 | 2639 |
| 2644 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2640 std::unique_ptr<ResourceProvider> resource_provider( |
| 2645 output_surface.get(), shared_bitmap_manager_.get(), | 2641 base::MakeUnique<ResourceProvider>( |
| 2646 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 2642 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 2647 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 2643 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 2644 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 2645 kUseImageTextureTargets)); |
| 2648 | 2646 |
| 2649 gfx::Size size(1, 1); | 2647 gfx::Size size(1, 1); |
| 2650 ResourceFormat format = RGBA_8888; | 2648 ResourceFormat format = RGBA_8888; |
| 2651 int texture_id = 1; | 2649 int texture_id = 1; |
| 2652 | 2650 |
| 2653 ResourceId id = resource_provider->CreateResource( | 2651 ResourceId id = resource_provider->CreateResource( |
| 2654 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2652 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 2655 | 2653 |
| 2656 // Check that the texture gets created with the right sampler settings. | 2654 // Check that the texture gets created with the right sampler settings. |
| 2657 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)) | 2655 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)) |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2713 | 2711 |
| 2714 std::unique_ptr<TextureStateTrackingContext> context_owned( | 2712 std::unique_ptr<TextureStateTrackingContext> context_owned( |
| 2715 new TextureStateTrackingContext); | 2713 new TextureStateTrackingContext); |
| 2716 TextureStateTrackingContext* context = context_owned.get(); | 2714 TextureStateTrackingContext* context = context_owned.get(); |
| 2717 | 2715 |
| 2718 FakeOutputSurfaceClient output_surface_client; | 2716 FakeOutputSurfaceClient output_surface_client; |
| 2719 std::unique_ptr<OutputSurface> output_surface( | 2717 std::unique_ptr<OutputSurface> output_surface( |
| 2720 FakeOutputSurface::Create3d(std::move(context_owned))); | 2718 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 2721 CHECK(output_surface->BindToClient(&output_surface_client)); | 2719 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2722 | 2720 |
| 2723 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2721 std::unique_ptr<ResourceProvider> resource_provider( |
| 2724 output_surface.get(), shared_bitmap_manager_.get(), | 2722 base::MakeUnique<ResourceProvider>( |
| 2725 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 2723 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 2726 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 2724 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 2725 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 2726 kUseImageTextureTargets)); |
| 2727 | 2727 |
| 2728 gfx::Size size(1, 1); | 2728 gfx::Size size(1, 1); |
| 2729 ResourceFormat format = RGBA_8888; | 2729 ResourceFormat format = RGBA_8888; |
| 2730 int texture_id = 1; | 2730 int texture_id = 1; |
| 2731 | 2731 |
| 2732 // Check that the texture gets created with the right sampler settings. | 2732 // Check that the texture gets created with the right sampler settings. |
| 2733 ResourceId id = resource_provider->CreateResource( | 2733 ResourceId id = resource_provider->CreateResource( |
| 2734 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2734 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 2735 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)); | 2735 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)); |
| 2736 EXPECT_CALL(*context, | 2736 EXPECT_CALL(*context, |
| (...skipping 19 matching lines...) Expand all Loading... |
| 2756 | 2756 |
| 2757 std::unique_ptr<TextureStateTrackingContext> context_owned( | 2757 std::unique_ptr<TextureStateTrackingContext> context_owned( |
| 2758 new TextureStateTrackingContext); | 2758 new TextureStateTrackingContext); |
| 2759 TextureStateTrackingContext* context = context_owned.get(); | 2759 TextureStateTrackingContext* context = context_owned.get(); |
| 2760 | 2760 |
| 2761 FakeOutputSurfaceClient output_surface_client; | 2761 FakeOutputSurfaceClient output_surface_client; |
| 2762 std::unique_ptr<OutputSurface> output_surface( | 2762 std::unique_ptr<OutputSurface> output_surface( |
| 2763 FakeOutputSurface::Create3d(std::move(context_owned))); | 2763 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 2764 CHECK(output_surface->BindToClient(&output_surface_client)); | 2764 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2765 | 2765 |
| 2766 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2766 std::unique_ptr<ResourceProvider> resource_provider( |
| 2767 output_surface.get(), shared_bitmap_manager_.get(), | 2767 base::MakeUnique<ResourceProvider>( |
| 2768 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 2768 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 2769 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 2769 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 2770 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 2771 kUseImageTextureTargets)); |
| 2770 | 2772 |
| 2771 gfx::Size size(1, 1); | 2773 gfx::Size size(1, 1); |
| 2772 ResourceFormat format = RGBA_8888; | 2774 ResourceFormat format = RGBA_8888; |
| 2773 | 2775 |
| 2774 for (int texture_id = 1; texture_id <= 2; ++texture_id) { | 2776 for (int texture_id = 1; texture_id <= 2; ++texture_id) { |
| 2775 // Check that the texture gets created with the right sampler settings. | 2777 // Check that the texture gets created with the right sampler settings. |
| 2776 ResourceId id = resource_provider->CreateResource( | 2778 ResourceId id = resource_provider->CreateResource( |
| 2777 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 2779 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 2778 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)); | 2780 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)); |
| 2779 EXPECT_CALL(*context, | 2781 EXPECT_CALL(*context, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 2800 new TextureStateTrackingContext); | 2802 new TextureStateTrackingContext); |
| 2801 TextureStateTrackingContext* context = context_owned.get(); | 2803 TextureStateTrackingContext* context = context_owned.get(); |
| 2802 context->set_support_texture_storage(true); | 2804 context->set_support_texture_storage(true); |
| 2803 context->set_support_texture_usage(true); | 2805 context->set_support_texture_usage(true); |
| 2804 | 2806 |
| 2805 FakeOutputSurfaceClient output_surface_client; | 2807 FakeOutputSurfaceClient output_surface_client; |
| 2806 std::unique_ptr<OutputSurface> output_surface( | 2808 std::unique_ptr<OutputSurface> output_surface( |
| 2807 FakeOutputSurface::Create3d(std::move(context_owned))); | 2809 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 2808 CHECK(output_surface->BindToClient(&output_surface_client)); | 2810 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2809 | 2811 |
| 2810 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2812 std::unique_ptr<ResourceProvider> resource_provider( |
| 2811 output_surface.get(), shared_bitmap_manager_.get(), | 2813 base::MakeUnique<ResourceProvider>( |
| 2812 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 2814 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 2813 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 2815 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 2816 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 2817 kUseImageTextureTargets)); |
| 2814 | 2818 |
| 2815 gfx::Size size(1, 1); | 2819 gfx::Size size(1, 1); |
| 2816 ResourceFormat format = RGBA_8888; | 2820 ResourceFormat format = RGBA_8888; |
| 2817 | 2821 |
| 2818 const ResourceProvider::TextureHint hints[4] = { | 2822 const ResourceProvider::TextureHint hints[4] = { |
| 2819 ResourceProvider::TEXTURE_HINT_DEFAULT, | 2823 ResourceProvider::TEXTURE_HINT_DEFAULT, |
| 2820 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 2824 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 2821 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 2825 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
| 2822 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 2826 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
| 2823 }; | 2827 }; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2859 const uint32_t kBadBeef = 0xbadbeef; | 2863 const uint32_t kBadBeef = 0xbadbeef; |
| 2860 std::unique_ptr<SharedBitmap> shared_bitmap( | 2864 std::unique_ptr<SharedBitmap> shared_bitmap( |
| 2861 CreateAndFillSharedBitmap(shared_bitmap_manager_.get(), size, kBadBeef)); | 2865 CreateAndFillSharedBitmap(shared_bitmap_manager_.get(), size, kBadBeef)); |
| 2862 | 2866 |
| 2863 FakeOutputSurfaceClient output_surface_client; | 2867 FakeOutputSurfaceClient output_surface_client; |
| 2864 std::unique_ptr<OutputSurface> output_surface( | 2868 std::unique_ptr<OutputSurface> output_surface( |
| 2865 FakeOutputSurface::CreateSoftware( | 2869 FakeOutputSurface::CreateSoftware( |
| 2866 base::WrapUnique(new SoftwareOutputDevice))); | 2870 base::WrapUnique(new SoftwareOutputDevice))); |
| 2867 CHECK(output_surface->BindToClient(&output_surface_client)); | 2871 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2868 | 2872 |
| 2869 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 2873 std::unique_ptr<ResourceProvider> resource_provider( |
| 2870 output_surface.get(), shared_bitmap_manager_.get(), | 2874 base::MakeUnique<ResourceProvider>( |
| 2871 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, 1, | 2875 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 2872 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 2876 gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, |
| 2877 1, kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 2878 kUseImageTextureTargets)); |
| 2873 | 2879 |
| 2874 gpu::SyncToken release_sync_token; | 2880 gpu::SyncToken release_sync_token; |
| 2875 bool lost_resource = false; | 2881 bool lost_resource = false; |
| 2876 BlockingTaskRunner* main_thread_task_runner = NULL; | 2882 BlockingTaskRunner* main_thread_task_runner = nullptr; |
| 2877 std::unique_ptr<SingleReleaseCallbackImpl> callback = | 2883 std::unique_ptr<SingleReleaseCallbackImpl> callback = |
| 2878 SingleReleaseCallbackImpl::Create( | 2884 SingleReleaseCallbackImpl::Create( |
| 2879 base::Bind(&ReleaseCallback, &release_sync_token, &lost_resource, | 2885 base::Bind(&ReleaseCallback, &release_sync_token, &lost_resource, |
| 2880 &main_thread_task_runner)); | 2886 &main_thread_task_runner)); |
| 2881 TextureMailbox mailbox(shared_bitmap.get(), size); | 2887 TextureMailbox mailbox(shared_bitmap.get(), size); |
| 2882 | 2888 |
| 2883 ResourceId id = resource_provider->CreateResourceFromTextureMailbox( | 2889 ResourceId id = resource_provider->CreateResourceFromTextureMailbox( |
| 2884 mailbox, std::move(callback)); | 2890 mailbox, std::move(callback)); |
| 2885 EXPECT_NE(0u, id); | 2891 EXPECT_NE(0u, id); |
| 2886 | 2892 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 2909 std::unique_ptr<TextureStateTrackingContext> context_owned( | 2915 std::unique_ptr<TextureStateTrackingContext> context_owned( |
| 2910 new TextureStateTrackingContext); | 2916 new TextureStateTrackingContext); |
| 2911 TextureStateTrackingContext* context = context_owned.get(); | 2917 TextureStateTrackingContext* context = context_owned.get(); |
| 2912 | 2918 |
| 2913 FakeOutputSurfaceClient output_surface_client; | 2919 FakeOutputSurfaceClient output_surface_client; |
| 2914 std::unique_ptr<OutputSurface> output_surface( | 2920 std::unique_ptr<OutputSurface> output_surface( |
| 2915 FakeOutputSurface::Create3d(std::move(context_owned))); | 2921 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 2916 CHECK(output_surface->BindToClient(&output_surface_client)); | 2922 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 2917 | 2923 |
| 2918 std::unique_ptr<ResourceProvider> resource_provider( | 2924 std::unique_ptr<ResourceProvider> resource_provider( |
| 2919 ResourceProvider::Create( | 2925 base::MakeUnique<ResourceProvider>( |
| 2920 output_surface.get(), shared_bitmap_manager, | 2926 output_surface->context_provider(), shared_bitmap_manager, |
| 2921 gpu_memory_buffer_manager, main_thread_task_runner, 0, 1, | 2927 gpu_memory_buffer_manager, main_thread_task_runner, 0, 1, |
| 2922 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 2928 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 2929 kUseImageTextureTargets)); |
| 2923 | 2930 |
| 2924 unsigned texture_id = 1; | 2931 unsigned texture_id = 1; |
| 2925 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, | 2932 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, |
| 2926 gpu::CommandBufferId::FromUnsafeValue(0x12), | 2933 gpu::CommandBufferId::FromUnsafeValue(0x12), |
| 2927 0x34); | 2934 0x34); |
| 2928 unsigned target = GL_TEXTURE_2D; | 2935 unsigned target = GL_TEXTURE_2D; |
| 2929 const GLuint64 current_fence_sync = context->GetNextFenceSync(); | 2936 const GLuint64 current_fence_sync = context->GetNextFenceSync(); |
| 2930 | 2937 |
| 2931 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 2938 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 2932 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); | 2939 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| 2933 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 2940 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| 2934 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 2941 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| 2935 | 2942 |
| 2936 gpu::Mailbox gpu_mailbox; | 2943 gpu::Mailbox gpu_mailbox; |
| 2937 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); | 2944 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); |
| 2938 gpu::SyncToken release_sync_token; | 2945 gpu::SyncToken release_sync_token; |
| 2939 bool lost_resource = false; | 2946 bool lost_resource = false; |
| 2940 BlockingTaskRunner* mailbox_task_runner = NULL; | 2947 BlockingTaskRunner* mailbox_task_runner = nullptr; |
| 2941 std::unique_ptr<SingleReleaseCallbackImpl> callback = | 2948 std::unique_ptr<SingleReleaseCallbackImpl> callback = |
| 2942 SingleReleaseCallbackImpl::Create( | 2949 SingleReleaseCallbackImpl::Create( |
| 2943 base::Bind(&ReleaseCallback, &release_sync_token, &lost_resource, | 2950 base::Bind(&ReleaseCallback, &release_sync_token, &lost_resource, |
| 2944 &mailbox_task_runner)); | 2951 &mailbox_task_runner)); |
| 2945 | 2952 |
| 2946 TextureMailbox mailbox(gpu_mailbox, sync_token, target); | 2953 TextureMailbox mailbox(gpu_mailbox, sync_token, target); |
| 2947 mailbox.set_nearest_neighbor(mailbox_nearest_neighbor); | 2954 mailbox.set_nearest_neighbor(mailbox_nearest_neighbor); |
| 2948 | 2955 |
| 2949 ResourceId id = resource_provider->CreateResourceFromTextureMailbox( | 2956 ResourceId id = resource_provider->CreateResourceFromTextureMailbox( |
| 2950 mailbox, std::move(callback)); | 2957 mailbox, std::move(callback)); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3054 | 3061 |
| 3055 std::unique_ptr<TextureStateTrackingContext> context_owned( | 3062 std::unique_ptr<TextureStateTrackingContext> context_owned( |
| 3056 new TextureStateTrackingContext); | 3063 new TextureStateTrackingContext); |
| 3057 TextureStateTrackingContext* context = context_owned.get(); | 3064 TextureStateTrackingContext* context = context_owned.get(); |
| 3058 | 3065 |
| 3059 FakeOutputSurfaceClient output_surface_client; | 3066 FakeOutputSurfaceClient output_surface_client; |
| 3060 std::unique_ptr<OutputSurface> output_surface( | 3067 std::unique_ptr<OutputSurface> output_surface( |
| 3061 FakeOutputSurface::Create3d(std::move(context_owned))); | 3068 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 3062 CHECK(output_surface->BindToClient(&output_surface_client)); | 3069 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3063 | 3070 |
| 3064 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3071 std::unique_ptr<ResourceProvider> resource_provider( |
| 3065 output_surface.get(), shared_bitmap_manager_.get(), | 3072 base::MakeUnique<ResourceProvider>( |
| 3066 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3073 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3067 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3074 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3075 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3076 kUseImageTextureTargets)); |
| 3068 | 3077 |
| 3069 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, | 3078 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, |
| 3070 gpu::CommandBufferId::FromUnsafeValue(0x12), 0x34); | 3079 gpu::CommandBufferId::FromUnsafeValue(0x12), 0x34); |
| 3071 const GLuint64 current_fence_sync = context->GetNextFenceSync(); | 3080 const GLuint64 current_fence_sync = context->GetNextFenceSync(); |
| 3072 unsigned target = GL_TEXTURE_EXTERNAL_OES; | 3081 unsigned target = GL_TEXTURE_EXTERNAL_OES; |
| 3073 | 3082 |
| 3074 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 3083 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 3075 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); | 3084 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| 3076 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 3085 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| 3077 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 3086 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3124 | 3133 |
| 3125 std::unique_ptr<TextureStateTrackingContext> context_owned( | 3134 std::unique_ptr<TextureStateTrackingContext> context_owned( |
| 3126 new TextureStateTrackingContext); | 3135 new TextureStateTrackingContext); |
| 3127 TextureStateTrackingContext* context = context_owned.get(); | 3136 TextureStateTrackingContext* context = context_owned.get(); |
| 3128 | 3137 |
| 3129 FakeOutputSurfaceClient output_surface_client; | 3138 FakeOutputSurfaceClient output_surface_client; |
| 3130 std::unique_ptr<OutputSurface> output_surface( | 3139 std::unique_ptr<OutputSurface> output_surface( |
| 3131 FakeOutputSurface::Create3d(std::move(context_owned))); | 3140 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 3132 CHECK(output_surface->BindToClient(&output_surface_client)); | 3141 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3133 | 3142 |
| 3134 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3143 std::unique_ptr<ResourceProvider> resource_provider( |
| 3135 output_surface.get(), shared_bitmap_manager_.get(), | 3144 base::MakeUnique<ResourceProvider>( |
| 3136 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3145 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3137 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3146 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3147 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3148 kUseImageTextureTargets)); |
| 3138 | 3149 |
| 3139 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, | 3150 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, |
| 3140 gpu::CommandBufferId::FromUnsafeValue(0x12), 0x34); | 3151 gpu::CommandBufferId::FromUnsafeValue(0x12), 0x34); |
| 3141 const GLuint64 current_fence_sync = context->GetNextFenceSync(); | 3152 const GLuint64 current_fence_sync = context->GetNextFenceSync(); |
| 3142 unsigned target = GL_TEXTURE_2D; | 3153 unsigned target = GL_TEXTURE_2D; |
| 3143 | 3154 |
| 3144 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 3155 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 3145 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); | 3156 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| 3146 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 3157 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| 3147 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 3158 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3180 | 3191 |
| 3181 std::unique_ptr<TextureStateTrackingContext> context_owned( | 3192 std::unique_ptr<TextureStateTrackingContext> context_owned( |
| 3182 new TextureStateTrackingContext); | 3193 new TextureStateTrackingContext); |
| 3183 TextureStateTrackingContext* context = context_owned.get(); | 3194 TextureStateTrackingContext* context = context_owned.get(); |
| 3184 | 3195 |
| 3185 FakeOutputSurfaceClient output_surface_client; | 3196 FakeOutputSurfaceClient output_surface_client; |
| 3186 std::unique_ptr<OutputSurface> output_surface( | 3197 std::unique_ptr<OutputSurface> output_surface( |
| 3187 FakeOutputSurface::Create3d(std::move(context_owned))); | 3198 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 3188 CHECK(output_surface->BindToClient(&output_surface_client)); | 3199 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3189 | 3200 |
| 3190 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3201 std::unique_ptr<ResourceProvider> resource_provider( |
| 3191 output_surface.get(), shared_bitmap_manager_.get(), | 3202 base::MakeUnique<ResourceProvider>( |
| 3192 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3203 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3193 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3204 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3205 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3206 kUseImageTextureTargets)); |
| 3194 | 3207 |
| 3195 gpu::SyncToken sync_token; | 3208 gpu::SyncToken sync_token; |
| 3196 const GLuint64 current_fence_sync = context->GetNextFenceSync(); | 3209 const GLuint64 current_fence_sync = context->GetNextFenceSync(); |
| 3197 unsigned target = GL_TEXTURE_2D; | 3210 unsigned target = GL_TEXTURE_2D; |
| 3198 | 3211 |
| 3199 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 3212 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| 3200 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); | 3213 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| 3201 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); | 3214 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| 3202 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); | 3215 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| 3203 | 3216 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3302 return; | 3315 return; |
| 3303 std::unique_ptr<AllocationTrackingContext3D> context_owned( | 3316 std::unique_ptr<AllocationTrackingContext3D> context_owned( |
| 3304 new StrictMock<AllocationTrackingContext3D>); | 3317 new StrictMock<AllocationTrackingContext3D>); |
| 3305 AllocationTrackingContext3D* context = context_owned.get(); | 3318 AllocationTrackingContext3D* context = context_owned.get(); |
| 3306 | 3319 |
| 3307 FakeOutputSurfaceClient output_surface_client; | 3320 FakeOutputSurfaceClient output_surface_client; |
| 3308 std::unique_ptr<OutputSurface> output_surface( | 3321 std::unique_ptr<OutputSurface> output_surface( |
| 3309 FakeOutputSurface::Create3d(std::move(context_owned))); | 3322 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 3310 CHECK(output_surface->BindToClient(&output_surface_client)); | 3323 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3311 | 3324 |
| 3312 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3325 std::unique_ptr<ResourceProvider> resource_provider( |
| 3313 output_surface.get(), shared_bitmap_manager_.get(), | 3326 base::MakeUnique<ResourceProvider>( |
| 3314 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3327 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3315 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3328 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3329 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3330 kUseImageTextureTargets)); |
| 3316 | 3331 |
| 3317 gfx::Size size(2, 2); | 3332 gfx::Size size(2, 2); |
| 3318 gfx::Vector2d offset(0, 0); | 3333 gfx::Vector2d offset(0, 0); |
| 3319 ResourceFormat format = RGBA_8888; | 3334 ResourceFormat format = RGBA_8888; |
| 3320 ResourceId id = 0; | 3335 ResourceId id = 0; |
| 3321 uint8_t pixels[16] = { 0 }; | 3336 uint8_t pixels[16] = { 0 }; |
| 3322 int texture_id = 123; | 3337 int texture_id = 123; |
| 3323 | 3338 |
| 3324 // Lazy allocation. Don't allocate when creating the resource. | 3339 // Lazy allocation. Don't allocate when creating the resource. |
| 3325 id = resource_provider->CreateResource( | 3340 id = resource_provider->CreateResource( |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3358 new StrictMock<AllocationTrackingContext3D>); | 3373 new StrictMock<AllocationTrackingContext3D>); |
| 3359 AllocationTrackingContext3D* context = context_owned.get(); | 3374 AllocationTrackingContext3D* context = context_owned.get(); |
| 3360 context->set_support_texture_storage(true); | 3375 context->set_support_texture_storage(true); |
| 3361 context->set_support_texture_usage(true); | 3376 context->set_support_texture_usage(true); |
| 3362 | 3377 |
| 3363 FakeOutputSurfaceClient output_surface_client; | 3378 FakeOutputSurfaceClient output_surface_client; |
| 3364 std::unique_ptr<OutputSurface> output_surface( | 3379 std::unique_ptr<OutputSurface> output_surface( |
| 3365 FakeOutputSurface::Create3d(std::move(context_owned))); | 3380 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 3366 CHECK(output_surface->BindToClient(&output_surface_client)); | 3381 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3367 | 3382 |
| 3368 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3383 std::unique_ptr<ResourceProvider> resource_provider( |
| 3369 output_surface.get(), shared_bitmap_manager_.get(), | 3384 base::MakeUnique<ResourceProvider>( |
| 3370 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3385 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3371 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3386 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3387 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3388 kUseImageTextureTargets)); |
| 3372 | 3389 |
| 3373 gfx::Size size(2, 2); | 3390 gfx::Size size(2, 2); |
| 3374 | 3391 |
| 3375 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; | 3392 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; |
| 3376 const ResourceProvider::TextureHint hints[4] = { | 3393 const ResourceProvider::TextureHint hints[4] = { |
| 3377 ResourceProvider::TEXTURE_HINT_DEFAULT, | 3394 ResourceProvider::TEXTURE_HINT_DEFAULT, |
| 3378 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3395 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 3379 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 3396 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
| 3380 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 3397 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
| 3381 }; | 3398 }; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3414 AllocationTrackingContext3D* context = context_owned.get(); | 3431 AllocationTrackingContext3D* context = context_owned.get(); |
| 3415 context->set_support_texture_format_bgra8888(true); | 3432 context->set_support_texture_format_bgra8888(true); |
| 3416 context->set_support_texture_storage(true); | 3433 context->set_support_texture_storage(true); |
| 3417 context->set_support_texture_usage(true); | 3434 context->set_support_texture_usage(true); |
| 3418 | 3435 |
| 3419 FakeOutputSurfaceClient output_surface_client; | 3436 FakeOutputSurfaceClient output_surface_client; |
| 3420 std::unique_ptr<OutputSurface> output_surface( | 3437 std::unique_ptr<OutputSurface> output_surface( |
| 3421 FakeOutputSurface::Create3d(std::move(context_owned))); | 3438 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 3422 CHECK(output_surface->BindToClient(&output_surface_client)); | 3439 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3423 | 3440 |
| 3424 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3441 std::unique_ptr<ResourceProvider> resource_provider( |
| 3425 output_surface.get(), shared_bitmap_manager_.get(), | 3442 base::MakeUnique<ResourceProvider>( |
| 3426 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3443 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3427 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3444 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3445 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3446 kUseImageTextureTargets)); |
| 3428 | 3447 |
| 3429 gfx::Size size(2, 2); | 3448 gfx::Size size(2, 2); |
| 3430 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; | 3449 const ResourceFormat formats[2] = {RGBA_8888, BGRA_8888}; |
| 3431 | 3450 |
| 3432 const ResourceProvider::TextureHint hints[4] = { | 3451 const ResourceProvider::TextureHint hints[4] = { |
| 3433 ResourceProvider::TEXTURE_HINT_DEFAULT, | 3452 ResourceProvider::TEXTURE_HINT_DEFAULT, |
| 3434 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 3453 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
| 3435 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, | 3454 ResourceProvider::TEXTURE_HINT_FRAMEBUFFER, |
| 3436 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 3455 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
| 3437 }; | 3456 }; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3473 CHECK(output_surface->BindToClient(&output_surface_client)); | 3492 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3474 | 3493 |
| 3475 const int kWidth = 2; | 3494 const int kWidth = 2; |
| 3476 const int kHeight = 2; | 3495 const int kHeight = 2; |
| 3477 gfx::Size size(kWidth, kHeight); | 3496 gfx::Size size(kWidth, kHeight); |
| 3478 ResourceFormat format = RGBA_8888; | 3497 ResourceFormat format = RGBA_8888; |
| 3479 ResourceId id = 0; | 3498 ResourceId id = 0; |
| 3480 const unsigned kTextureId = 123u; | 3499 const unsigned kTextureId = 123u; |
| 3481 const unsigned kImageId = 234u; | 3500 const unsigned kImageId = 234u; |
| 3482 | 3501 |
| 3483 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3502 std::unique_ptr<ResourceProvider> resource_provider( |
| 3484 output_surface.get(), shared_bitmap_manager_.get(), | 3503 base::MakeUnique<ResourceProvider>( |
| 3485 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3504 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3486 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3505 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3506 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3507 kUseImageTextureTargets)); |
| 3487 | 3508 |
| 3488 id = resource_provider->CreateResource( | 3509 id = resource_provider->CreateResource( |
| 3489 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3510 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3490 | 3511 |
| 3491 EXPECT_CALL(*context, NextTextureId()) | 3512 EXPECT_CALL(*context, NextTextureId()) |
| 3492 .WillOnce(Return(kTextureId)) | 3513 .WillOnce(Return(kTextureId)) |
| 3493 .RetiresOnSaturation(); | 3514 .RetiresOnSaturation(); |
| 3494 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kTextureId)) | 3515 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kTextureId)) |
| 3495 .Times(3) | 3516 .Times(3) |
| 3496 .RetiresOnSaturation(); | 3517 .RetiresOnSaturation(); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3551 new AllocationTrackingContext3D); | 3572 new AllocationTrackingContext3D); |
| 3552 AllocationTrackingContext3D* context = context_owned.get(); | 3573 AllocationTrackingContext3D* context = context_owned.get(); |
| 3553 context_owned->set_support_compressed_texture_etc1(true); | 3574 context_owned->set_support_compressed_texture_etc1(true); |
| 3554 | 3575 |
| 3555 FakeOutputSurfaceClient output_surface_client; | 3576 FakeOutputSurfaceClient output_surface_client; |
| 3556 std::unique_ptr<OutputSurface> output_surface( | 3577 std::unique_ptr<OutputSurface> output_surface( |
| 3557 FakeOutputSurface::Create3d(std::move(context_owned))); | 3578 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 3558 CHECK(output_surface->BindToClient(&output_surface_client)); | 3579 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3559 | 3580 |
| 3560 gfx::Size size(4, 4); | 3581 gfx::Size size(4, 4); |
| 3561 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3582 std::unique_ptr<ResourceProvider> resource_provider( |
| 3562 output_surface.get(), shared_bitmap_manager_.get(), | 3583 base::MakeUnique<ResourceProvider>( |
| 3563 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3584 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3564 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3585 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3586 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3587 kUseImageTextureTargets)); |
| 3565 int texture_id = 123; | 3588 int texture_id = 123; |
| 3566 | 3589 |
| 3567 ResourceId id = resource_provider->CreateResource( | 3590 ResourceId id = resource_provider->CreateResource( |
| 3568 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); | 3591 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); |
| 3569 EXPECT_NE(0u, id); | 3592 EXPECT_NE(0u, id); |
| 3570 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3593 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3571 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); | 3594 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); |
| 3572 resource_provider->AllocateForTesting(id); | 3595 resource_provider->AllocateForTesting(id); |
| 3573 | 3596 |
| 3574 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); | 3597 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); |
| 3575 resource_provider->DeleteResource(id); | 3598 resource_provider->DeleteResource(id); |
| 3576 } | 3599 } |
| 3577 | 3600 |
| 3578 TEST_P(ResourceProviderTest, CompressedTextureETC1Upload) { | 3601 TEST_P(ResourceProviderTest, CompressedTextureETC1Upload) { |
| 3579 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) | 3602 if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| 3580 return; | 3603 return; |
| 3581 | 3604 |
| 3582 std::unique_ptr<AllocationTrackingContext3D> context_owned( | 3605 std::unique_ptr<AllocationTrackingContext3D> context_owned( |
| 3583 new AllocationTrackingContext3D); | 3606 new AllocationTrackingContext3D); |
| 3584 AllocationTrackingContext3D* context = context_owned.get(); | 3607 AllocationTrackingContext3D* context = context_owned.get(); |
| 3585 context_owned->set_support_compressed_texture_etc1(true); | 3608 context_owned->set_support_compressed_texture_etc1(true); |
| 3586 | 3609 |
| 3587 FakeOutputSurfaceClient output_surface_client; | 3610 FakeOutputSurfaceClient output_surface_client; |
| 3588 std::unique_ptr<OutputSurface> output_surface( | 3611 std::unique_ptr<OutputSurface> output_surface( |
| 3589 FakeOutputSurface::Create3d(std::move(context_owned))); | 3612 FakeOutputSurface::Create3d(std::move(context_owned))); |
| 3590 CHECK(output_surface->BindToClient(&output_surface_client)); | 3613 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3591 | 3614 |
| 3592 gfx::Size size(4, 4); | 3615 gfx::Size size(4, 4); |
| 3593 std::unique_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( | 3616 std::unique_ptr<ResourceProvider> resource_provider( |
| 3594 output_surface.get(), shared_bitmap_manager_.get(), | 3617 base::MakeUnique<ResourceProvider>( |
| 3595 gpu_memory_buffer_manager_.get(), NULL, 0, 1, | 3618 output_surface->context_provider(), shared_bitmap_manager_.get(), |
| 3596 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); | 3619 gpu_memory_buffer_manager_.get(), nullptr, 0, 1, |
| 3620 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3621 kUseImageTextureTargets)); |
| 3597 int texture_id = 123; | 3622 int texture_id = 123; |
| 3598 uint8_t pixels[8]; | 3623 uint8_t pixels[8]; |
| 3599 | 3624 |
| 3600 ResourceId id = resource_provider->CreateResource( | 3625 ResourceId id = resource_provider->CreateResource( |
| 3601 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); | 3626 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, ETC1); |
| 3602 EXPECT_NE(0u, id); | 3627 EXPECT_NE(0u, id); |
| 3603 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); | 3628 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); |
| 3604 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); | 3629 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); |
| 3605 EXPECT_CALL(*context, | 3630 EXPECT_CALL(*context, |
| 3606 compressedTexImage2D( | 3631 compressedTexImage2D( |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3641 CHECK(output_surface->BindToClient(&output_surface_client)); | 3666 CHECK(output_surface->BindToClient(&output_surface_client)); |
| 3642 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( | 3667 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( |
| 3643 new TestSharedBitmapManager()); | 3668 new TestSharedBitmapManager()); |
| 3644 | 3669 |
| 3645 gfx::Size size(1, 1); | 3670 gfx::Size size(1, 1); |
| 3646 ResourceFormat format = RGBA_8888; | 3671 ResourceFormat format = RGBA_8888; |
| 3647 | 3672 |
| 3648 { | 3673 { |
| 3649 size_t kTextureAllocationChunkSize = 1; | 3674 size_t kTextureAllocationChunkSize = 1; |
| 3650 std::unique_ptr<ResourceProvider> resource_provider( | 3675 std::unique_ptr<ResourceProvider> resource_provider( |
| 3651 ResourceProvider::Create( | 3676 base::MakeUnique<ResourceProvider>( |
| 3652 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, | 3677 output_surface->context_provider(), shared_bitmap_manager.get(), |
| 3653 kTextureAllocationChunkSize, | 3678 nullptr, nullptr, 0, kTextureAllocationChunkSize, |
| 3654 ResourceProviderTest::use_gpu_memory_buffer_resources(), | 3679 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3655 ResourceProviderTest::use_image_texture_targets())); | 3680 kUseImageTextureTargets)); |
| 3656 | 3681 |
| 3657 ResourceId id = resource_provider->CreateResource( | 3682 ResourceId id = resource_provider->CreateResource( |
| 3658 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3683 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3659 resource_provider->AllocateForTesting(id); | 3684 resource_provider->AllocateForTesting(id); |
| 3660 Mock::VerifyAndClearExpectations(context); | 3685 Mock::VerifyAndClearExpectations(context); |
| 3661 | 3686 |
| 3662 DCHECK_EQ(2u, context->PeekTextureId()); | 3687 DCHECK_EQ(2u, context->PeekTextureId()); |
| 3663 resource_provider->DeleteResource(id); | 3688 resource_provider->DeleteResource(id); |
| 3664 } | 3689 } |
| 3665 | 3690 |
| 3666 { | 3691 { |
| 3667 size_t kTextureAllocationChunkSize = 8; | 3692 size_t kTextureAllocationChunkSize = 8; |
| 3668 std::unique_ptr<ResourceProvider> resource_provider( | 3693 std::unique_ptr<ResourceProvider> resource_provider( |
| 3669 ResourceProvider::Create( | 3694 base::MakeUnique<ResourceProvider>( |
| 3670 output_surface.get(), shared_bitmap_manager.get(), NULL, NULL, 0, | 3695 output_surface->context_provider(), shared_bitmap_manager.get(), |
| 3671 kTextureAllocationChunkSize, | 3696 nullptr, nullptr, 0, kTextureAllocationChunkSize, |
| 3672 ResourceProviderTest::use_gpu_memory_buffer_resources(), | 3697 kDelegatedSyncPointsRequired, kUseGpuMemoryBufferResources, |
| 3673 ResourceProviderTest::use_image_texture_targets())); | 3698 kUseImageTextureTargets)); |
| 3674 | 3699 |
| 3675 ResourceId id = resource_provider->CreateResource( | 3700 ResourceId id = resource_provider->CreateResource( |
| 3676 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 3701 size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
| 3677 resource_provider->AllocateForTesting(id); | 3702 resource_provider->AllocateForTesting(id); |
| 3678 Mock::VerifyAndClearExpectations(context); | 3703 Mock::VerifyAndClearExpectations(context); |
| 3679 | 3704 |
| 3680 DCHECK_EQ(10u, context->PeekTextureId()); | 3705 DCHECK_EQ(10u, context->PeekTextureId()); |
| 3681 resource_provider->DeleteResource(id); | 3706 resource_provider->DeleteResource(id); |
| 3682 } | 3707 } |
| 3683 } | 3708 } |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3836 resource_provider_->DeclareUsedResourcesFromChild(child_id, | 3861 resource_provider_->DeclareUsedResourcesFromChild(child_id, |
| 3837 resource_ids_to_receive); | 3862 resource_ids_to_receive); |
| 3838 } | 3863 } |
| 3839 resource_provider_->DestroyChild(child_id); | 3864 resource_provider_->DestroyChild(child_id); |
| 3840 | 3865 |
| 3841 EXPECT_EQ(0u, resource_provider_->num_resources()); | 3866 EXPECT_EQ(0u, resource_provider_->num_resources()); |
| 3842 } | 3867 } |
| 3843 | 3868 |
| 3844 } // namespace | 3869 } // namespace |
| 3845 } // namespace cc | 3870 } // namespace cc |
| OLD | NEW |