Chromium Code Reviews| Index: cc/resources/resource_provider_unittest.cc |
| diff --git a/cc/resources/resource_provider_unittest.cc b/cc/resources/resource_provider_unittest.cc |
| index 874fd54f35c162f6311136001baf4247cb01cda6..26b6df4148cf62f7027ef8039a2600b845b130c6 100644 |
| --- a/cc/resources/resource_provider_unittest.cc |
| +++ b/cc/resources/resource_provider_unittest.cc |
| @@ -43,40 +43,44 @@ using testing::_; |
| namespace cc { |
| namespace { |
| -static void EmptyReleaseCallback(uint32 sync_point, |
| - bool lost_resource, |
| - BlockingTaskRunner* main_thread_task_runner) { |
| +MATCHER_P(MatchesSyncToken, sync_token, "") { |
| + gpu::SyncToken other; |
| + memcpy(&other, arg, sizeof(other)); |
| + return other == sync_token; |
| } |
| +static void EmptyReleaseCallback(const gpu::SyncToken& sync_token, |
| + bool lost_resource, |
| + BlockingTaskRunner* main_thread_task_runner) {} |
| + |
| static void ReleaseCallback( |
| - uint32* release_sync_point, |
| + gpu::SyncToken* release_sync_token, |
| bool* release_lost_resource, |
| BlockingTaskRunner** release_main_thread_task_runner, |
| - uint32 sync_point, |
| + const gpu::SyncToken& sync_token, |
| bool lost_resource, |
| BlockingTaskRunner* main_thread_task_runner) { |
| - *release_sync_point = sync_point; |
| + *release_sync_token = sync_token; |
| *release_lost_resource = lost_resource; |
| *release_main_thread_task_runner = main_thread_task_runner; |
| } |
| static void SharedBitmapReleaseCallback( |
| scoped_ptr<SharedBitmap> bitmap, |
| - uint32 sync_point, |
| + const gpu::SyncToken& sync_token, |
| bool lost_resource, |
| - BlockingTaskRunner* main_thread_task_runner) { |
| -} |
| + BlockingTaskRunner* main_thread_task_runner) {} |
| static void ReleaseSharedBitmapCallback( |
| scoped_ptr<SharedBitmap> shared_bitmap, |
| bool* release_called, |
| - uint32* release_sync_point, |
| + gpu::SyncToken* release_sync_token, |
| bool* lost_resource_result, |
| - uint32 sync_point, |
| + const gpu::SyncToken& sync_token, |
| bool lost_resource, |
| BlockingTaskRunner* main_thread_task_runner) { |
| *release_called = true; |
| - *release_sync_point = sync_point; |
| + *release_sync_token = sync_token; |
| *lost_resource_result = lost_resource; |
| } |
| @@ -96,7 +100,7 @@ class TextureStateTrackingContext : public TestWebGraphicsContext3D { |
| public: |
| MOCK_METHOD2(bindTexture, void(GLenum target, GLuint texture)); |
| MOCK_METHOD3(texParameteri, void(GLenum target, GLenum pname, GLint param)); |
| - MOCK_METHOD1(waitSyncPoint, void(GLuint sync_point)); |
| + MOCK_METHOD1(waitSyncToken, void(const GLbyte* sync_token)); |
| MOCK_METHOD0(insertSyncPoint, GLuint(void)); |
| MOCK_METHOD3(produceTextureDirectCHROMIUM, |
| void(GLuint texture, GLenum target, const GLbyte* mailbox)); |
| @@ -129,8 +133,10 @@ class ContextSharedData { |
| } |
| void ProduceTexture(const GLbyte* mailbox_name, |
| - uint32 sync_point, |
| + const gpu::SyncToken& sync_token, |
| scoped_refptr<TestTexture> texture) { |
| + uint32_t sync_point = static_cast<uint32_t>(sync_token.release_count()); |
|
dcheng
2015/11/03 07:39:28
Nit: just make this a uint64_t instead of casting?
David Yen
2015/11/03 18:09:27
sync_point_for_mail_box takes a uint32, I'd rather
|
| + |
| unsigned mailbox = 0; |
| memcpy(&mailbox, mailbox_name, sizeof(mailbox)); |
| ASSERT_TRUE(mailbox && mailbox < next_mailbox_); |
| @@ -140,7 +146,7 @@ class ContextSharedData { |
| } |
| scoped_refptr<TestTexture> ConsumeTexture(const GLbyte* mailbox_name, |
| - uint32 sync_point) { |
| + const gpu::SyncToken& sync_token) { |
| unsigned mailbox = 0; |
| memcpy(&mailbox, mailbox_name, sizeof(mailbox)); |
| DCHECK(mailbox && mailbox < next_mailbox_); |
| @@ -148,7 +154,7 @@ class ContextSharedData { |
| // If the latest sync point the context has waited on is before the sync |
| // point for when the mailbox was set, pretend we never saw that |
| // ProduceTexture. |
| - if (sync_point_for_mailbox_[mailbox] > sync_point) { |
| + if (sync_point_for_mailbox_[mailbox] > sync_token.release_count()) { |
| NOTREACHED(); |
| return scoped_refptr<TestTexture>(); |
| } |
| @@ -180,18 +186,27 @@ class ResourceProviderContext : public TestWebGraphicsContext3D { |
| pending_produce_textures_.begin(); |
| it != pending_produce_textures_.end(); |
| ++it) { |
| - shared_data_->ProduceTexture( |
| - (*it)->mailbox, sync_point, (*it)->texture); |
| + shared_data_->ProduceTexture((*it)->mailbox, gpu::SyncToken(sync_point), |
| + (*it)->texture); |
| } |
| pending_produce_textures_.clear(); |
| return sync_point; |
| } |
| - void waitSyncPoint(GLuint sync_point) override { |
| - last_waited_sync_point_ = std::max(sync_point, last_waited_sync_point_); |
| + void waitSyncToken(const GLbyte* sync_token) override { |
| + gpu::SyncToken sync_token_data; |
| + if (sync_token) |
| + memcpy(&sync_token_data, sync_token, sizeof(sync_token_data)); |
| + |
| + if (sync_token_data.release_count() > |
| + last_waited_sync_token_.release_count()) { |
| + last_waited_sync_token_ = sync_token_data; |
| + } |
| } |
| - unsigned last_waited_sync_point() const { return last_waited_sync_point_; } |
| + const gpu::SyncToken& last_waited_sync_token() const { |
| + return last_waited_sync_token_; |
| + } |
| void texStorage2DEXT(GLenum target, |
| GLint levels, |
| @@ -277,7 +292,7 @@ class ResourceProviderContext : public TestWebGraphicsContext3D { |
| GLuint texture_id = createTexture(); |
| base::AutoLock lock_for_texture_access(namespace_->lock); |
| scoped_refptr<TestTexture> texture = |
| - shared_data_->ConsumeTexture(mailbox, last_waited_sync_point_); |
| + shared_data_->ConsumeTexture(mailbox, last_waited_sync_token_); |
| namespace_->textures.Replace(texture_id, texture); |
| return texture_id; |
| } |
| @@ -295,8 +310,7 @@ class ResourceProviderContext : public TestWebGraphicsContext3D { |
| protected: |
| explicit ResourceProviderContext(ContextSharedData* shared_data) |
| - : shared_data_(shared_data), |
| - last_waited_sync_point_(0) {} |
| + : shared_data_(shared_data) {} |
| private: |
| void AllocateTexture(const gfx::Size& size, GLenum format) { |
| @@ -345,7 +359,7 @@ class ResourceProviderContext : public TestWebGraphicsContext3D { |
| }; |
| typedef ScopedPtrDeque<PendingProduceTexture> PendingProduceTextureList; |
| ContextSharedData* shared_data_; |
| - GLuint last_waited_sync_point_; |
| + gpu::SyncToken last_waited_sync_token_; |
| PendingProduceTextureList pending_produce_textures_; |
| }; |
| @@ -355,7 +369,7 @@ void GetResourcePixels(ResourceProvider* resource_provider, |
| const gfx::Size& size, |
| ResourceFormat format, |
| uint8_t* pixels) { |
| - resource_provider->WaitSyncPointIfNeeded(id); |
| + resource_provider->WaitSyncTokenIfNeeded(id); |
| switch (resource_provider->default_resource_type()) { |
| case ResourceProvider::RESOURCE_TYPE_GL_TEXTURE: { |
| ResourceProvider::ScopedReadLockGL lock_gl(resource_provider, id); |
| @@ -378,7 +392,7 @@ void GetResourcePixels(ResourceProvider* resource_provider, |
| class ResourceProviderTest |
| : public testing::TestWithParam<ResourceProvider::ResourceType> { |
| public: |
| - explicit ResourceProviderTest(bool child_needs_sync_point) |
| + explicit ResourceProviderTest(bool child_needs_sync_token) |
| : shared_data_(ContextSharedData::Create()), |
| context3d_(NULL), |
| child_context_(NULL), |
| @@ -397,7 +411,7 @@ class ResourceProviderTest |
| scoped_ptr<ResourceProviderContext> child_context_owned = |
| ResourceProviderContext::Create(shared_data_.get()); |
| child_context_ = child_context_owned.get(); |
| - if (child_needs_sync_point) { |
| + if (child_needs_sync_token) { |
| child_output_surface_ = |
| FakeOutputSurface::Create3d(child_context_owned.Pass()); |
| } else { |
| @@ -450,26 +464,26 @@ class ResourceProviderTest |
| ResourceProviderContext* context() { return context3d_; } |
| - ResourceId CreateChildMailbox(uint32* release_sync_point, |
| + ResourceId CreateChildMailbox(gpu::SyncToken* release_sync_token, |
| bool* lost_resource, |
| bool* release_called, |
| - uint32* sync_point) { |
| + gpu::SyncToken* sync_token) { |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| unsigned texture = child_context_->createTexture(); |
| gpu::Mailbox gpu_mailbox; |
| child_context_->genMailboxCHROMIUM(gpu_mailbox.name); |
| child_context_->produceTextureDirectCHROMIUM(texture, GL_TEXTURE_2D, |
| gpu_mailbox.name); |
| - *sync_point = child_context_->insertSyncPoint(); |
| - EXPECT_LT(0u, *sync_point); |
| + *sync_token = gpu::SyncToken(child_context_->insertSyncPoint()); |
| + EXPECT_TRUE(sync_token->HasData()); |
| scoped_ptr<SharedBitmap> shared_bitmap; |
| scoped_ptr<SingleReleaseCallbackImpl> callback = |
| SingleReleaseCallbackImpl::Create(base::Bind( |
| ReleaseSharedBitmapCallback, base::Passed(&shared_bitmap), |
| - release_called, release_sync_point, lost_resource)); |
| + release_called, release_sync_token, lost_resource)); |
| return child_resource_provider_->CreateResourceFromTextureMailbox( |
| - TextureMailbox(gpu_mailbox, GL_TEXTURE_2D, *sync_point), |
| + TextureMailbox(gpu_mailbox, *sync_token, GL_TEXTURE_2D), |
| callback.Pass()); |
| } else { |
| gfx::Size size(64, 64); |
| @@ -480,7 +494,7 @@ class ResourceProviderTest |
| scoped_ptr<SingleReleaseCallbackImpl> callback = |
| SingleReleaseCallbackImpl::Create(base::Bind( |
| ReleaseSharedBitmapCallback, base::Passed(&shared_bitmap), |
| - release_called, release_sync_point, lost_resource)); |
| + release_called, release_sync_token, lost_resource)); |
| return child_resource_provider_->CreateResourceFromTextureMailbox( |
| TextureMailbox(shared_bitmap_ptr, size), callback.Pass()); |
| } |
| @@ -610,10 +624,10 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| child_context_->genMailboxCHROMIUM(external_mailbox.name); |
| child_context_->produceTextureDirectCHROMIUM( |
| external_texture_id, GL_TEXTURE_EXTERNAL_OES, external_mailbox.name); |
| - const GLuint external_sync_point = child_context_->insertSyncPoint(); |
| + const gpu::SyncToken external_sync_token(child_context_->insertSyncPoint()); |
| ResourceId id4 = child_resource_provider_->CreateResourceFromTextureMailbox( |
| - TextureMailbox(external_mailbox, GL_TEXTURE_EXTERNAL_OES, |
| - external_sync_point), |
| + TextureMailbox(external_mailbox, external_sync_token, |
| + GL_TEXTURE_EXTERNAL_OES), |
| SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback))); |
| ReturnedResourceArray returned_to_child; |
| @@ -630,14 +644,14 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
| &list); |
| ASSERT_EQ(4u, list.size()); |
| - EXPECT_NE(0u, list[0].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[1].mailbox_holder.sync_point); |
| - EXPECT_EQ(list[0].mailbox_holder.sync_point, |
| - list[1].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[2].mailbox_holder.sync_point); |
| - EXPECT_EQ(list[0].mailbox_holder.sync_point, |
| - list[2].mailbox_holder.sync_point); |
| - EXPECT_EQ(external_sync_point, list[3].mailbox_holder.sync_point); |
| + EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
| + EXPECT_TRUE(list[1].mailbox_holder.sync_token.HasData()); |
| + EXPECT_EQ(list[0].mailbox_holder.sync_token, |
| + list[1].mailbox_holder.sync_token); |
| + EXPECT_TRUE(list[2].mailbox_holder.sync_token.HasData()); |
| + EXPECT_EQ(list[0].mailbox_holder.sync_token, |
| + list[2].mailbox_holder.sync_token); |
| + EXPECT_EQ(external_sync_token, list[3].mailbox_holder.sync_token); |
| EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), |
| list[0].mailbox_holder.texture_target); |
| EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), |
| @@ -651,15 +665,15 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id3)); |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id4)); |
| resource_provider_->ReceiveFromChild(child_id, list); |
| - EXPECT_NE(list[0].mailbox_holder.sync_point, |
| - context3d_->last_waited_sync_point()); |
| + EXPECT_NE(list[0].mailbox_holder.sync_token, |
| + context3d_->last_waited_sync_token()); |
| { |
| - resource_provider_->WaitSyncPointIfNeeded(list[0].id); |
| + resource_provider_->WaitSyncTokenIfNeeded(list[0].id); |
| ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), |
| list[0].id); |
| } |
| - EXPECT_EQ(list[0].mailbox_holder.sync_point, |
| - context3d_->last_waited_sync_point()); |
| + EXPECT_EQ(list[0].mailbox_holder.sync_token, |
| + context3d_->last_waited_sync_token()); |
| ResourceProvider::ResourceIdSet resource_ids_to_receive; |
| resource_ids_to_receive.insert(id1); |
| resource_ids_to_receive.insert(id2); |
| @@ -732,10 +746,10 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources); |
| ASSERT_EQ(4u, returned_to_child.size()); |
| - EXPECT_NE(0u, returned_to_child[0].sync_point); |
| - EXPECT_NE(0u, returned_to_child[1].sync_point); |
| - EXPECT_NE(0u, returned_to_child[2].sync_point); |
| - EXPECT_NE(0u, returned_to_child[3].sync_point); |
| + EXPECT_TRUE(returned_to_child[0].sync_token.HasData()); |
| + EXPECT_TRUE(returned_to_child[1].sync_token.HasData()); |
| + EXPECT_TRUE(returned_to_child[2].sync_token.HasData()); |
| + EXPECT_TRUE(returned_to_child[3].sync_token.HasData()); |
| EXPECT_FALSE(returned_to_child[0].lost); |
| EXPECT_FALSE(returned_to_child[1].lost); |
| EXPECT_FALSE(returned_to_child[2].lost); |
| @@ -749,7 +763,7 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| EXPECT_FALSE(child_resource_provider_->InUseByConsumer(id4)); |
| { |
| - child_resource_provider_->WaitSyncPointIfNeeded(id1); |
| + child_resource_provider_->WaitSyncTokenIfNeeded(id1); |
| ResourceProvider::ScopedReadLockGL lock(child_resource_provider_.get(), |
| id1); |
| ASSERT_NE(0U, lock.texture_id()); |
| @@ -758,7 +772,7 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| EXPECT_EQ(0, memcmp(data1, result, pixel_size)); |
| } |
| { |
| - child_resource_provider_->WaitSyncPointIfNeeded(id2); |
| + child_resource_provider_->WaitSyncTokenIfNeeded(id2); |
| ResourceProvider::ScopedReadLockGL lock(child_resource_provider_.get(), |
| id2); |
| ASSERT_NE(0U, lock.texture_id()); |
| @@ -767,7 +781,7 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| EXPECT_EQ(0, memcmp(data2, result, pixel_size)); |
| } |
| { |
| - child_resource_provider_->WaitSyncPointIfNeeded(id3); |
| + child_resource_provider_->WaitSyncTokenIfNeeded(id3); |
| ResourceProvider::ScopedReadLockGL lock(child_resource_provider_.get(), |
| id3); |
| ASSERT_NE(0U, lock.texture_id()); |
| @@ -788,10 +802,10 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| EXPECT_EQ(id2, list[1].id); |
| EXPECT_EQ(id3, list[2].id); |
| EXPECT_EQ(id4, list[3].id); |
| - EXPECT_NE(0u, list[0].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[1].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[2].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[3].mailbox_holder.sync_point); |
| + EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
| + EXPECT_TRUE(list[1].mailbox_holder.sync_token.HasData()); |
| + EXPECT_TRUE(list[2].mailbox_holder.sync_token.HasData()); |
| + EXPECT_TRUE(list[3].mailbox_holder.sync_token.HasData()); |
| EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), |
| list[0].mailbox_holder.texture_target); |
| EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), |
| @@ -821,24 +835,24 @@ TEST_P(ResourceProviderTest, TransferGLResources) { |
| EXPECT_EQ(0u, resource_provider_->num_resources()); |
| ASSERT_EQ(4u, returned_to_child.size()); |
| - EXPECT_NE(0u, returned_to_child[0].sync_point); |
| - EXPECT_NE(0u, returned_to_child[1].sync_point); |
| - EXPECT_NE(0u, returned_to_child[2].sync_point); |
| - EXPECT_NE(0u, returned_to_child[3].sync_point); |
| + EXPECT_TRUE(returned_to_child[0].sync_token.HasData()); |
| + EXPECT_TRUE(returned_to_child[1].sync_token.HasData()); |
| + EXPECT_TRUE(returned_to_child[2].sync_token.HasData()); |
| + EXPECT_TRUE(returned_to_child[3].sync_token.HasData()); |
| EXPECT_FALSE(returned_to_child[0].lost); |
| EXPECT_FALSE(returned_to_child[1].lost); |
| EXPECT_FALSE(returned_to_child[2].lost); |
| EXPECT_FALSE(returned_to_child[3].lost); |
| } |
| -class ResourceProviderTestNoSyncPoint : public ResourceProviderTest { |
| +class ResourceProviderTestNoSyncToken : public ResourceProviderTest { |
| public: |
| - ResourceProviderTestNoSyncPoint() : ResourceProviderTest(false) { |
| + ResourceProviderTestNoSyncToken() : ResourceProviderTest(false) { |
| EXPECT_EQ(ResourceProvider::RESOURCE_TYPE_GL_TEXTURE, GetParam()); |
| } |
| }; |
| -TEST_P(ResourceProviderTestNoSyncPoint, TransferGLResources) { |
| +TEST_P(ResourceProviderTestNoSyncToken, TransferGLResources) { |
| gfx::Size size(1, 1); |
| ResourceFormat format = RGBA_8888; |
| size_t pixel_size = TextureSizeBytes(size, format); |
| @@ -866,16 +880,16 @@ TEST_P(ResourceProviderTestNoSyncPoint, TransferGLResources) { |
| child_context_->genMailboxCHROMIUM(external_mailbox.name); |
| child_context_->produceTextureDirectCHROMIUM( |
| external_texture_id, GL_TEXTURE_EXTERNAL_OES, external_mailbox.name); |
| - const GLuint external_sync_point = child_context_->insertSyncPoint(); |
| + const gpu::SyncToken external_sync_token(child_context_->insertSyncPoint()); |
| ResourceId id3 = child_resource_provider_->CreateResourceFromTextureMailbox( |
| - TextureMailbox(external_mailbox, GL_TEXTURE_EXTERNAL_OES, |
| - external_sync_point), |
| + TextureMailbox(external_mailbox, external_sync_token, |
| + GL_TEXTURE_EXTERNAL_OES), |
| SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback))); |
| ReturnedResourceArray returned_to_child; |
| int child_id = |
| resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
| - resource_provider_->SetChildNeedsSyncPoints(child_id, false); |
| + resource_provider_->SetChildNeedsSyncTokens(child_id, false); |
| { |
| // Transfer some resources to the parent. |
| ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
| @@ -887,10 +901,10 @@ TEST_P(ResourceProviderTestNoSyncPoint, TransferGLResources) { |
| &list); |
| ASSERT_EQ(3u, list.size()); |
| // Standard resources shouldn't require creating and sending a sync point. |
| - EXPECT_EQ(0u, list[0].mailbox_holder.sync_point); |
| - EXPECT_EQ(0u, list[1].mailbox_holder.sync_point); |
| + EXPECT_FALSE(list[0].mailbox_holder.sync_token.HasData()); |
| + EXPECT_FALSE(list[1].mailbox_holder.sync_token.HasData()); |
| // A given sync point should be passed through. |
| - EXPECT_EQ(external_sync_point, list[2].mailbox_holder.sync_point); |
| + EXPECT_EQ(external_sync_token, list[2].mailbox_holder.sync_token); |
| resource_provider_->ReceiveFromChild(child_id, list); |
| ResourceProvider::ResourceIdSet resource_ids_to_receive; |
| @@ -910,19 +924,19 @@ TEST_P(ResourceProviderTestNoSyncPoint, TransferGLResources) { |
| resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources); |
| ASSERT_EQ(3u, returned_to_child.size()); |
| - std::map<ResourceId, unsigned int> returned_sync_points; |
| + std::map<ResourceId, gpu::SyncToken> returned_sync_tokens; |
| for (const auto& returned : returned_to_child) |
| - returned_sync_points[returned.id] = returned.sync_point; |
| + returned_sync_tokens[returned.id] = returned.sync_token; |
| - EXPECT_TRUE(returned_sync_points.find(id1) != returned_sync_points.end()); |
| + ASSERT_TRUE(returned_sync_tokens.find(id1) != returned_sync_tokens.end()); |
| // No new sync point should be created transferring back. |
| - EXPECT_TRUE(returned_sync_points.find(id1) != returned_sync_points.end()); |
| - EXPECT_EQ(0u, returned_sync_points[id1]); |
| - EXPECT_TRUE(returned_sync_points.find(id2) != returned_sync_points.end()); |
| - EXPECT_EQ(0u, returned_sync_points[id2]); |
| + ASSERT_TRUE(returned_sync_tokens.find(id1) != returned_sync_tokens.end()); |
| + EXPECT_FALSE(returned_sync_tokens[id1].HasData()); |
| + ASSERT_TRUE(returned_sync_tokens.find(id2) != returned_sync_tokens.end()); |
| + EXPECT_FALSE(returned_sync_tokens[id2].HasData()); |
| // Original sync point given should be returned. |
| - EXPECT_TRUE(returned_sync_points.find(id3) != returned_sync_points.end()); |
| - EXPECT_EQ(external_sync_point, returned_sync_points[id3]); |
| + ASSERT_TRUE(returned_sync_tokens.find(id3) != returned_sync_tokens.end()); |
| + EXPECT_EQ(external_sync_token, returned_sync_tokens[id3]); |
| EXPECT_FALSE(returned_to_child[0].lost); |
| EXPECT_FALSE(returned_to_child[1].lost); |
| EXPECT_FALSE(returned_to_child[2].lost); |
| @@ -935,7 +949,7 @@ TEST_P(ResourceProviderTestNoSyncPoint, TransferGLResources) { |
| INSTANTIATE_TEST_CASE_P( |
| ResourceProviderTests, |
| - ResourceProviderTestNoSyncPoint, |
| + ResourceProviderTestNoSyncToken, |
| ::testing::Values(ResourceProvider::RESOURCE_TYPE_GL_TEXTURE)); |
| TEST_P(ResourceProviderTest, ReadLockCountStopsReturnToChildOrDelete) { |
| @@ -964,7 +978,7 @@ TEST_P(ResourceProviderTest, ReadLockCountStopsReturnToChildOrDelete) { |
| resource_provider_->ReceiveFromChild(child_id, list); |
| - resource_provider_->WaitSyncPointIfNeeded(list[0].id); |
| + resource_provider_->WaitSyncTokenIfNeeded(list[0].id); |
| ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), |
| list[0].id); |
| @@ -977,7 +991,7 @@ TEST_P(ResourceProviderTest, ReadLockCountStopsReturnToChildOrDelete) { |
| child_resource_provider_->ReceiveReturnsFromParent(returned_to_child); |
| { |
| - child_resource_provider_->WaitSyncPointIfNeeded(id1); |
| + child_resource_provider_->WaitSyncTokenIfNeeded(id1); |
| ResourceProvider::ScopedReadLockGL lock(child_resource_provider_.get(), |
| id1); |
| child_resource_provider_->DeleteResource(id1); |
| @@ -1034,7 +1048,7 @@ TEST_P(ResourceProviderTest, ReadLockFenceStopsReturnToChildOrDelete) { |
| resource_provider_->SetReadLockFence(fence.get()); |
| { |
| unsigned parent_id = list.front().id; |
| - resource_provider_->WaitSyncPointIfNeeded(parent_id); |
| + resource_provider_->WaitSyncTokenIfNeeded(parent_id); |
| ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), |
| parent_id); |
| } |
| @@ -1094,7 +1108,7 @@ TEST_P(ResourceProviderTest, ReadLockFenceDestroyChild) { |
| { |
| for (size_t i = 0; i < list.size(); i++) { |
| unsigned parent_id = list[i].id; |
| - resource_provider_->WaitSyncPointIfNeeded(parent_id); |
| + resource_provider_->WaitSyncTokenIfNeeded(parent_id); |
| ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), |
| parent_id); |
| } |
| @@ -1156,7 +1170,7 @@ TEST_P(ResourceProviderTest, ReadLockFenceContextLost) { |
| { |
| for (size_t i = 0; i < list.size(); i++) { |
| unsigned parent_id = list[i].id; |
| - resource_provider_->WaitSyncPointIfNeeded(parent_id); |
| + resource_provider_->WaitSyncTokenIfNeeded(parent_id); |
| ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), |
| parent_id); |
| } |
| @@ -1213,9 +1227,9 @@ TEST_P(ResourceProviderTest, TransferSoftwareResources) { |
| child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
| &list); |
| ASSERT_EQ(3u, list.size()); |
| - EXPECT_EQ(0u, list[0].mailbox_holder.sync_point); |
| - EXPECT_EQ(0u, list[1].mailbox_holder.sync_point); |
| - EXPECT_EQ(0u, list[2].mailbox_holder.sync_point); |
| + EXPECT_FALSE(list[0].mailbox_holder.sync_token.HasData()); |
| + EXPECT_FALSE(list[1].mailbox_holder.sync_token.HasData()); |
| + EXPECT_FALSE(list[2].mailbox_holder.sync_token.HasData()); |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id1)); |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id2)); |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id3)); |
| @@ -1279,9 +1293,9 @@ TEST_P(ResourceProviderTest, TransferSoftwareResources) { |
| resource_provider_->DeclareUsedResourcesFromChild(child_id, no_resources); |
| ASSERT_EQ(3u, returned_to_child.size()); |
| - EXPECT_EQ(0u, returned_to_child[0].sync_point); |
| - EXPECT_EQ(0u, returned_to_child[1].sync_point); |
| - EXPECT_EQ(0u, returned_to_child[2].sync_point); |
| + EXPECT_FALSE(returned_to_child[0].sync_token.HasData()); |
| + EXPECT_FALSE(returned_to_child[1].sync_token.HasData()); |
| + EXPECT_FALSE(returned_to_child[2].sync_token.HasData()); |
| std::set<ResourceId> expected_ids; |
| expected_ids.insert(id1); |
| expected_ids.insert(id2); |
| @@ -1348,9 +1362,9 @@ TEST_P(ResourceProviderTest, TransferSoftwareResources) { |
| EXPECT_EQ(0u, resource_provider_->num_resources()); |
| ASSERT_EQ(3u, returned_to_child.size()); |
| - EXPECT_EQ(0u, returned_to_child[0].sync_point); |
| - EXPECT_EQ(0u, returned_to_child[1].sync_point); |
| - EXPECT_EQ(0u, returned_to_child[2].sync_point); |
| + EXPECT_FALSE(returned_to_child[0].sync_token.HasData()); |
| + EXPECT_FALSE(returned_to_child[1].sync_token.HasData()); |
| + EXPECT_FALSE(returned_to_child[2].sync_token.HasData()); |
| std::set<ResourceId> expected_ids; |
| expected_ids.insert(id1); |
| expected_ids.insert(id2); |
| @@ -1401,7 +1415,7 @@ TEST_P(ResourceProviderTest, TransferGLToSoftware) { |
| child_resource_provider->PrepareSendToParent(resource_ids_to_transfer, |
| &list); |
| ASSERT_EQ(1u, list.size()); |
| - EXPECT_NE(0u, list[0].mailbox_holder.sync_point); |
| + EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
| EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), |
| list[0].mailbox_holder.texture_target); |
| EXPECT_TRUE(child_resource_provider->InUseByConsumer(id1)); |
| @@ -1502,8 +1516,8 @@ TEST_P(ResourceProviderTest, DeleteExportedResources) { |
| &list); |
| ASSERT_EQ(2u, list.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| - EXPECT_NE(0u, list[0].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[1].mailbox_holder.sync_point); |
| + EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
| + EXPECT_TRUE(list[1].mailbox_holder.sync_token.HasData()); |
| } |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id1)); |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id2)); |
| @@ -1535,8 +1549,8 @@ TEST_P(ResourceProviderTest, DeleteExportedResources) { |
| ASSERT_EQ(2u, list.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| - EXPECT_NE(0u, list[0].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[1].mailbox_holder.sync_point); |
| + EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
| + EXPECT_TRUE(list[1].mailbox_holder.sync_token.HasData()); |
| } |
| EXPECT_TRUE(resource_provider_->InUseByConsumer(id1)); |
| EXPECT_TRUE(resource_provider_->InUseByConsumer(id2)); |
| @@ -1561,8 +1575,8 @@ TEST_P(ResourceProviderTest, DeleteExportedResources) { |
| EXPECT_EQ(0u, resource_provider_->num_resources()); |
| ASSERT_EQ(2u, returned_to_child.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| - EXPECT_NE(0u, returned_to_child[0].sync_point); |
| - EXPECT_NE(0u, returned_to_child[1].sync_point); |
| + EXPECT_TRUE(returned_to_child[0].sync_token.HasData()); |
| + EXPECT_TRUE(returned_to_child[1].sync_token.HasData()); |
| } |
| EXPECT_FALSE(returned_to_child[0].lost); |
| EXPECT_FALSE(returned_to_child[1].lost); |
| @@ -1598,8 +1612,8 @@ TEST_P(ResourceProviderTest, DestroyChildWithExportedResources) { |
| &list); |
| ASSERT_EQ(2u, list.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| - EXPECT_NE(0u, list[0].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[1].mailbox_holder.sync_point); |
| + EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
| + EXPECT_TRUE(list[1].mailbox_holder.sync_token.HasData()); |
| } |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id1)); |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id2)); |
| @@ -1631,8 +1645,8 @@ TEST_P(ResourceProviderTest, DestroyChildWithExportedResources) { |
| ASSERT_EQ(2u, list.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| - EXPECT_NE(0u, list[0].mailbox_holder.sync_point); |
| - EXPECT_NE(0u, list[1].mailbox_holder.sync_point); |
| + EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
| + EXPECT_TRUE(list[1].mailbox_holder.sync_token.HasData()); |
| } |
| EXPECT_TRUE(resource_provider_->InUseByConsumer(id1)); |
| EXPECT_TRUE(resource_provider_->InUseByConsumer(id2)); |
| @@ -1666,7 +1680,7 @@ TEST_P(ResourceProviderTest, DestroyChildWithExportedResources) { |
| EXPECT_EQ(1u, resource_provider_->num_resources()); |
| ASSERT_EQ(1u, returned_to_child.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| - EXPECT_NE(0u, returned_to_child[0].sync_point); |
| + EXPECT_TRUE(returned_to_child[0].sync_token.HasData()); |
| } |
| EXPECT_FALSE(returned_to_child[0].lost); |
| returned_to_child.clear(); |
| @@ -1676,7 +1690,7 @@ TEST_P(ResourceProviderTest, DestroyChildWithExportedResources) { |
| resource_provider_ = nullptr; |
| ASSERT_EQ(1u, returned_to_child.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| - EXPECT_NE(0u, returned_to_child[0].sync_point); |
| + EXPECT_TRUE(returned_to_child[0].sync_token.HasData()); |
| } |
| EXPECT_TRUE(returned_to_child[0].lost); |
| } |
| @@ -1705,7 +1719,7 @@ TEST_P(ResourceProviderTest, DeleteTransferredResources) { |
| &list); |
| ASSERT_EQ(1u, list.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| - EXPECT_NE(0u, list[0].mailbox_holder.sync_point); |
| + EXPECT_TRUE(list[0].mailbox_holder.sync_token.HasData()); |
| EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id)); |
| resource_provider_->ReceiveFromChild(child_id, list); |
| ResourceProvider::ResourceIdSet resource_ids_to_receive; |
| @@ -1727,7 +1741,7 @@ TEST_P(ResourceProviderTest, DeleteTransferredResources) { |
| ASSERT_EQ(1u, returned_to_child.size()); |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| - EXPECT_NE(0u, returned_to_child[0].sync_point); |
| + EXPECT_TRUE(returned_to_child[0].sync_token.HasData()); |
| child_resource_provider_->ReceiveReturnsFromParent(returned_to_child); |
| } |
| EXPECT_EQ(0u, child_resource_provider_->num_resources()); |
| @@ -1950,7 +1964,7 @@ class ResourceProviderTestTextureFilters : public ResourceProviderTest { |
| parent_resource_provider->ReceiveFromChild(child_id, list); |
| { |
| - parent_resource_provider->WaitSyncPointIfNeeded(list[0].id); |
| + parent_resource_provider->WaitSyncTokenIfNeeded(list[0].id); |
| ResourceProvider::ScopedReadLockGL lock(parent_resource_provider.get(), |
| list[0].id); |
| } |
| @@ -2034,23 +2048,22 @@ TEST_P(ResourceProviderTest, TransferMailboxResources) { |
| gpu::Mailbox mailbox; |
| context()->genMailboxCHROMIUM(mailbox.name); |
| context()->produceTextureDirectCHROMIUM(texture, GL_TEXTURE_2D, mailbox.name); |
| - uint32 sync_point = context()->insertSyncPoint(); |
| + gpu::SyncToken sync_token(context()->insertSyncPoint()); |
| - // All the logic below assumes that the sync points are all positive. |
| - EXPECT_LT(0u, sync_point); |
| + // All the logic below assumes that the sync token releases are all positive. |
| + EXPECT_LT(0u, sync_token.release_count()); |
| - uint32 release_sync_point = 0; |
| + gpu::SyncToken release_sync_token; |
| bool lost_resource = false; |
| BlockingTaskRunner* main_thread_task_runner = NULL; |
| - ReleaseCallbackImpl callback = base::Bind(ReleaseCallback, |
| - &release_sync_point, |
| - &lost_resource, |
| - &main_thread_task_runner); |
| + ReleaseCallbackImpl callback = |
| + base::Bind(ReleaseCallback, &release_sync_token, &lost_resource, |
| + &main_thread_task_runner); |
| ResourceId resource = resource_provider_->CreateResourceFromTextureMailbox( |
| - TextureMailbox(mailbox, GL_TEXTURE_2D, sync_point), |
| + TextureMailbox(mailbox, sync_token, GL_TEXTURE_2D), |
| SingleReleaseCallbackImpl::Create(callback)); |
| EXPECT_EQ(1u, context()->NumTextures()); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| { |
| // Transfer the resource, expect the sync points to be consistent. |
| ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
| @@ -2058,14 +2071,15 @@ TEST_P(ResourceProviderTest, TransferMailboxResources) { |
| TransferableResourceArray list; |
| resource_provider_->PrepareSendToParent(resource_ids_to_transfer, &list); |
| ASSERT_EQ(1u, list.size()); |
| - EXPECT_LE(sync_point, list[0].mailbox_holder.sync_point); |
| + EXPECT_LE(sync_token.release_count(), |
| + list[0].mailbox_holder.sync_token.release_count()); |
| EXPECT_EQ(0, |
| memcmp(mailbox.name, |
| list[0].mailbox_holder.mailbox.name, |
| sizeof(mailbox.name))); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| - context()->waitSyncPoint(list[0].mailbox_holder.sync_point); |
| + context()->waitSyncToken(list[0].mailbox_holder.sync_token.GetConstData()); |
| unsigned other_texture = |
| context()->createAndConsumeTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); |
| uint8_t test_data[4] = { 0 }; |
| @@ -2076,8 +2090,8 @@ TEST_P(ResourceProviderTest, TransferMailboxResources) { |
| context()->produceTextureDirectCHROMIUM(other_texture, GL_TEXTURE_2D, |
| mailbox.name); |
| context()->deleteTexture(other_texture); |
| - list[0].mailbox_holder.sync_point = context()->insertSyncPoint(); |
| - EXPECT_LT(0u, list[0].mailbox_holder.sync_point); |
| + list[0].mailbox_holder.sync_token = |
| + gpu::SyncToken(context()->insertSyncPoint()); |
| // Receive the resource, then delete it, expect the sync points to be |
| // consistent. |
| @@ -2085,24 +2099,25 @@ TEST_P(ResourceProviderTest, TransferMailboxResources) { |
| TransferableResource::ReturnResources(list, &returned); |
| resource_provider_->ReceiveReturnsFromParent(returned); |
| EXPECT_EQ(1u, context()->NumTextures()); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| resource_provider_->DeleteResource(resource); |
| - EXPECT_LE(list[0].mailbox_holder.sync_point, release_sync_point); |
| + EXPECT_LE(list[0].mailbox_holder.sync_token.release_count(), |
| + release_sync_token.release_count()); |
| EXPECT_FALSE(lost_resource); |
| EXPECT_EQ(main_thread_task_runner_.get(), main_thread_task_runner); |
| } |
| // We're going to do the same thing as above, but testing the case where we |
| // delete the resource before we receive it back. |
| - sync_point = release_sync_point; |
| - EXPECT_LT(0u, sync_point); |
| - release_sync_point = 0; |
| + sync_token = release_sync_token; |
| + EXPECT_LT(0u, sync_token.release_count()); |
| + release_sync_token.Clear(); |
| resource = resource_provider_->CreateResourceFromTextureMailbox( |
| - TextureMailbox(mailbox, GL_TEXTURE_2D, sync_point), |
| + TextureMailbox(mailbox, sync_token, GL_TEXTURE_2D), |
| SingleReleaseCallbackImpl::Create(callback)); |
| EXPECT_EQ(1u, context()->NumTextures()); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| { |
| // Transfer the resource, expect the sync points to be consistent. |
| ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
| @@ -2110,14 +2125,15 @@ TEST_P(ResourceProviderTest, TransferMailboxResources) { |
| TransferableResourceArray list; |
| resource_provider_->PrepareSendToParent(resource_ids_to_transfer, &list); |
| ASSERT_EQ(1u, list.size()); |
| - EXPECT_LE(sync_point, list[0].mailbox_holder.sync_point); |
| + EXPECT_LE(sync_token.release_count(), |
| + list[0].mailbox_holder.sync_token.release_count()); |
| EXPECT_EQ(0, |
| memcmp(mailbox.name, |
| list[0].mailbox_holder.mailbox.name, |
| sizeof(mailbox.name))); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| - context()->waitSyncPoint(list[0].mailbox_holder.sync_point); |
| + context()->waitSyncToken(list[0].mailbox_holder.sync_token.GetConstData()); |
| unsigned other_texture = |
| context()->createAndConsumeTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); |
| uint8_t test_data[4] = { 0 }; |
| @@ -2128,25 +2144,27 @@ TEST_P(ResourceProviderTest, TransferMailboxResources) { |
| context()->produceTextureDirectCHROMIUM(other_texture, GL_TEXTURE_2D, |
| mailbox.name); |
| context()->deleteTexture(other_texture); |
| - list[0].mailbox_holder.sync_point = context()->insertSyncPoint(); |
| - EXPECT_LT(0u, list[0].mailbox_holder.sync_point); |
| + list[0].mailbox_holder.sync_token = |
| + gpu::SyncToken(context()->insertSyncPoint()); |
| + EXPECT_LT(0u, list[0].mailbox_holder.sync_token.release_count()); |
| // Delete the resource, which shouldn't do anything. |
| resource_provider_->DeleteResource(resource); |
| EXPECT_EQ(1u, context()->NumTextures()); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| // Then receive the resource which should release the mailbox, expect the |
| // sync points to be consistent. |
| ReturnedResourceArray returned; |
| TransferableResource::ReturnResources(list, &returned); |
| resource_provider_->ReceiveReturnsFromParent(returned); |
| - EXPECT_LE(list[0].mailbox_holder.sync_point, release_sync_point); |
| + EXPECT_LE(list[0].mailbox_holder.sync_token.release_count(), |
| + release_sync_token.release_count()); |
| EXPECT_FALSE(lost_resource); |
| EXPECT_EQ(main_thread_task_runner_.get(), main_thread_task_runner); |
| } |
| - context()->waitSyncPoint(release_sync_point); |
| + context()->waitSyncToken(release_sync_token.GetConstData()); |
| texture = |
| context()->createAndConsumeTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); |
| context()->deleteTexture(texture); |
| @@ -2285,12 +2303,12 @@ TEST_P(ResourceProviderTest, LostResourceInGrandParent) { |
| } |
| TEST_P(ResourceProviderTest, LostMailboxInParent) { |
| - uint32 release_sync_point = 0; |
| + gpu::SyncToken release_sync_token; |
| bool lost_resource = false; |
| bool release_called = false; |
| - uint32 sync_point = 0; |
| - ResourceId resource = CreateChildMailbox(&release_sync_point, &lost_resource, |
| - &release_called, &sync_point); |
| + gpu::SyncToken sync_token; |
| + ResourceId resource = CreateChildMailbox(&release_sync_token, &lost_resource, |
| + &release_called, &sync_token); |
| ReturnedResourceArray returned_to_child; |
| int child_id = |
| @@ -2338,12 +2356,12 @@ TEST_P(ResourceProviderTest, LostMailboxInParent) { |
| } |
| TEST_P(ResourceProviderTest, LostMailboxInGrandParent) { |
| - uint32 release_sync_point = 0; |
| + gpu::SyncToken release_sync_token; |
| bool lost_resource = false; |
| bool release_called = false; |
| - uint32 sync_point = 0; |
| - ResourceId resource = CreateChildMailbox(&release_sync_point, &lost_resource, |
| - &release_called, &sync_point); |
| + gpu::SyncToken sync_token; |
| + ResourceId resource = CreateChildMailbox(&release_sync_token, &lost_resource, |
| + &release_called, &sync_token); |
| ReturnedResourceArray returned_to_child; |
| int child_id = |
| @@ -2408,32 +2426,32 @@ TEST_P(ResourceProviderTest, LostMailboxInGrandParent) { |
| } |
| TEST_P(ResourceProviderTest, Shutdown) { |
| - uint32 release_sync_point = 0; |
| + gpu::SyncToken release_sync_token; |
| bool lost_resource = false; |
| bool release_called = false; |
| - uint32 sync_point = 0; |
| - CreateChildMailbox( |
| - &release_sync_point, &lost_resource, &release_called, &sync_point); |
| + gpu::SyncToken sync_token; |
| + CreateChildMailbox(&release_sync_token, &lost_resource, &release_called, |
| + &sync_token); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| EXPECT_FALSE(lost_resource); |
| child_resource_provider_ = nullptr; |
| if (GetParam() == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) { |
| - EXPECT_LE(sync_point, release_sync_point); |
| + EXPECT_LE(sync_token.release_count(), release_sync_token.release_count()); |
| } |
| EXPECT_TRUE(release_called); |
| EXPECT_FALSE(lost_resource); |
| } |
| TEST_P(ResourceProviderTest, ShutdownWithExportedResource) { |
| - uint32 release_sync_point = 0; |
| + gpu::SyncToken release_sync_token; |
| bool lost_resource = false; |
| bool release_called = false; |
| - uint32 sync_point = 0; |
| - ResourceId resource = CreateChildMailbox(&release_sync_point, &lost_resource, |
| - &release_called, &sync_point); |
| + gpu::SyncToken sync_token; |
| + ResourceId resource = CreateChildMailbox(&release_sync_token, &lost_resource, |
| + &release_called, &sync_token); |
| // Transfer the resource, so we can't release it properly on shutdown. |
| ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
| @@ -2442,13 +2460,13 @@ TEST_P(ResourceProviderTest, ShutdownWithExportedResource) { |
| child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
| &list); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| EXPECT_FALSE(lost_resource); |
| child_resource_provider_ = nullptr; |
| // Since the resource is in the parent, the child considers it lost. |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| EXPECT_TRUE(lost_resource); |
| } |
| @@ -2461,29 +2479,28 @@ TEST_P(ResourceProviderTest, LostContext) { |
| gpu::Mailbox mailbox; |
| context()->genMailboxCHROMIUM(mailbox.name); |
| context()->produceTextureDirectCHROMIUM(texture, GL_TEXTURE_2D, mailbox.name); |
| - uint32 sync_point = context()->insertSyncPoint(); |
| + gpu::SyncToken sync_token(context()->insertSyncPoint()); |
| - EXPECT_LT(0u, sync_point); |
| + EXPECT_TRUE(sync_token.HasData()); |
| - uint32 release_sync_point = 0; |
| + gpu::SyncToken release_sync_token; |
| bool lost_resource = false; |
| BlockingTaskRunner* main_thread_task_runner = NULL; |
| scoped_ptr<SingleReleaseCallbackImpl> callback = |
| - SingleReleaseCallbackImpl::Create(base::Bind(ReleaseCallback, |
| - &release_sync_point, |
| - &lost_resource, |
| - &main_thread_task_runner)); |
| + SingleReleaseCallbackImpl::Create( |
| + base::Bind(ReleaseCallback, &release_sync_token, &lost_resource, |
| + &main_thread_task_runner)); |
| resource_provider_->CreateResourceFromTextureMailbox( |
| - TextureMailbox(mailbox, GL_TEXTURE_2D, sync_point), callback.Pass()); |
| + TextureMailbox(mailbox, sync_token, GL_TEXTURE_2D), callback.Pass()); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| EXPECT_FALSE(lost_resource); |
| EXPECT_EQ(NULL, main_thread_task_runner); |
| resource_provider_->DidLoseOutputSurface(); |
| resource_provider_ = nullptr; |
| - EXPECT_LE(sync_point, release_sync_point); |
| + EXPECT_LE(sync_token.release_count(), release_sync_token.release_count()); |
| EXPECT_TRUE(lost_resource); |
| EXPECT_EQ(main_thread_task_runner_.get(), main_thread_task_runner); |
| } |
| @@ -2732,14 +2749,13 @@ TEST_P(ResourceProviderTest, TextureMailbox_SharedMemory) { |
| gpu_memory_buffer_manager_.get(), main_thread_task_runner_.get(), 0, 1, |
| use_image_texture_targets_)); |
| - uint32 release_sync_point = 0; |
| + gpu::SyncToken release_sync_token; |
| bool lost_resource = false; |
| BlockingTaskRunner* main_thread_task_runner = NULL; |
| scoped_ptr<SingleReleaseCallbackImpl> callback = |
| - SingleReleaseCallbackImpl::Create(base::Bind(&ReleaseCallback, |
| - &release_sync_point, |
| - &lost_resource, |
| - &main_thread_task_runner)); |
| + SingleReleaseCallbackImpl::Create( |
| + base::Bind(&ReleaseCallback, &release_sync_token, &lost_resource, |
| + &main_thread_task_runner)); |
| TextureMailbox mailbox(shared_bitmap.get(), size); |
| ResourceId id = resource_provider->CreateResourceFromTextureMailbox( |
| @@ -2755,7 +2771,7 @@ TEST_P(ResourceProviderTest, TextureMailbox_SharedMemory) { |
| } |
| resource_provider->DeleteResource(id); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| EXPECT_FALSE(lost_resource); |
| EXPECT_EQ(main_thread_task_runner_.get(), main_thread_task_runner); |
| } |
| @@ -2782,27 +2798,26 @@ class ResourceProviderTestTextureMailboxGLFilters |
| main_thread_task_runner, 0, 1, use_image_texture_targets_)); |
| unsigned texture_id = 1; |
| - uint32 sync_point = 30; |
| + gpu::SyncToken sync_token(30); |
| unsigned target = GL_TEXTURE_2D; |
| EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| - EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| + EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| gpu::Mailbox gpu_mailbox; |
| memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); |
| - uint32 release_sync_point = 0; |
| + gpu::SyncToken release_sync_token; |
| bool lost_resource = false; |
| BlockingTaskRunner* mailbox_task_runner = NULL; |
| scoped_ptr<SingleReleaseCallbackImpl> callback = |
| - SingleReleaseCallbackImpl::Create(base::Bind(&ReleaseCallback, |
| - &release_sync_point, |
| - &lost_resource, |
| - &mailbox_task_runner)); |
| + SingleReleaseCallbackImpl::Create( |
| + base::Bind(&ReleaseCallback, &release_sync_token, &lost_resource, |
| + &mailbox_task_runner)); |
| - TextureMailbox mailbox(gpu_mailbox, target, sync_point); |
| + TextureMailbox mailbox(gpu_mailbox, sync_token, target); |
| mailbox.set_nearest_neighbor(mailbox_nearest_neighbor); |
| ResourceId id = resource_provider->CreateResourceFromTextureMailbox( |
| @@ -2812,9 +2827,9 @@ class ResourceProviderTestTextureMailboxGLFilters |
| Mock::VerifyAndClearExpectations(context); |
| { |
| - // Mailbox sync point WaitSyncPoint before using the texture. |
| - EXPECT_CALL(*context, waitSyncPoint(sync_point)); |
| - resource_provider->WaitSyncPointIfNeeded(id); |
| + // Mailbox sync point WaitSyncToken before using the texture. |
| + EXPECT_CALL(*context, waitSyncToken(MatchesSyncToken(sync_token))); |
| + resource_provider->WaitSyncTokenIfNeeded(id); |
| Mock::VerifyAndClearExpectations(context); |
| EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(target, _)) |
| @@ -2843,12 +2858,12 @@ class ResourceProviderTestTextureMailboxGLFilters |
| EXPECT_CALL(*context, insertSyncPoint()); |
| EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| - EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| + EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| } |
| resource_provider->DeleteResource(id); |
| - EXPECT_EQ(0u, release_sync_point); |
| + EXPECT_FALSE(release_sync_token.HasData()); |
| EXPECT_FALSE(lost_resource); |
| EXPECT_EQ(main_thread_task_runner, mailbox_task_runner); |
| } |
| @@ -2925,11 +2940,11 @@ TEST_P(ResourceProviderTest, TextureMailbox_GLTextureExternalOES) { |
| gpu_memory_buffer_manager_.get(), NULL, 0, 1, |
| use_image_texture_targets_)); |
| - uint32 sync_point = 30; |
| + gpu::SyncToken sync_token(30); |
| unsigned target = GL_TEXTURE_EXTERNAL_OES; |
| EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| - EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| + EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| @@ -2939,7 +2954,7 @@ TEST_P(ResourceProviderTest, TextureMailbox_GLTextureExternalOES) { |
| scoped_ptr<SingleReleaseCallbackImpl> callback = |
| SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback)); |
| - TextureMailbox mailbox(gpu_mailbox, target, sync_point); |
| + TextureMailbox mailbox(gpu_mailbox, sync_token, target); |
| ResourceId id = resource_provider->CreateResourceFromTextureMailbox( |
| mailbox, callback.Pass()); |
| @@ -2948,9 +2963,9 @@ TEST_P(ResourceProviderTest, TextureMailbox_GLTextureExternalOES) { |
| Mock::VerifyAndClearExpectations(context); |
| { |
| - // Mailbox sync point WaitSyncPoint before using the texture. |
| - EXPECT_CALL(*context, waitSyncPoint(sync_point)); |
| - resource_provider->WaitSyncPointIfNeeded(id); |
| + // Mailbox sync point WaitSyncToken before using the texture. |
| + EXPECT_CALL(*context, waitSyncToken(MatchesSyncToken(sync_token))); |
| + resource_provider->WaitSyncTokenIfNeeded(id); |
| Mock::VerifyAndClearExpectations(context); |
| unsigned texture_id = 1; |
| @@ -2970,13 +2985,13 @@ TEST_P(ResourceProviderTest, TextureMailbox_GLTextureExternalOES) { |
| EXPECT_CALL(*context, insertSyncPoint()); |
| EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| - EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| + EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| } |
| } |
| TEST_P(ResourceProviderTest, |
| - TextureMailbox_WaitSyncPointIfNeeded_WithSyncPoint) { |
| + TextureMailbox_WaitSyncTokenIfNeeded_WithSyncToken) { |
| // Mailboxing is only supported for GL textures. |
| if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| return; |
| @@ -2995,11 +3010,11 @@ TEST_P(ResourceProviderTest, |
| gpu_memory_buffer_manager_.get(), NULL, 0, 1, |
| use_image_texture_targets_)); |
| - uint32 sync_point = 30; |
| + gpu::SyncToken sync_token(30); |
| unsigned target = GL_TEXTURE_2D; |
| EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| - EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| + EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| @@ -3009,7 +3024,7 @@ TEST_P(ResourceProviderTest, |
| scoped_ptr<SingleReleaseCallbackImpl> callback = |
| SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback)); |
| - TextureMailbox mailbox(gpu_mailbox, target, sync_point); |
| + TextureMailbox mailbox(gpu_mailbox, sync_token, target); |
| ResourceId id = resource_provider->CreateResourceFromTextureMailbox( |
| mailbox, callback.Pass()); |
| @@ -3018,19 +3033,19 @@ TEST_P(ResourceProviderTest, |
| Mock::VerifyAndClearExpectations(context); |
| { |
| - // First call to WaitSyncPointIfNeeded should call waitSyncPoint. |
| - EXPECT_CALL(*context, waitSyncPoint(sync_point)); |
| - resource_provider->WaitSyncPointIfNeeded(id); |
| + // First call to WaitSyncTokenIfNeeded should call waitSyncToken. |
| + EXPECT_CALL(*context, waitSyncToken(MatchesSyncToken(sync_token))); |
| + resource_provider->WaitSyncTokenIfNeeded(id); |
| Mock::VerifyAndClearExpectations(context); |
| - // Subsequent calls to WaitSyncPointIfNeeded shouldn't call waitSyncPoint. |
| - EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| - resource_provider->WaitSyncPointIfNeeded(id); |
| + // Subsequent calls to WaitSyncTokenIfNeeded shouldn't call waitSyncToken. |
| + EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| + resource_provider->WaitSyncTokenIfNeeded(id); |
| Mock::VerifyAndClearExpectations(context); |
| } |
| } |
| -TEST_P(ResourceProviderTest, TextureMailbox_WaitSyncPointIfNeeded_NoSyncPoint) { |
| +TEST_P(ResourceProviderTest, TextureMailbox_WaitSyncTokenIfNeeded_NoSyncToken) { |
| // Mailboxing is only supported for GL textures. |
| if (GetParam() != ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
| return; |
| @@ -3049,11 +3064,11 @@ TEST_P(ResourceProviderTest, TextureMailbox_WaitSyncPointIfNeeded_NoSyncPoint) { |
| gpu_memory_buffer_manager_.get(), NULL, 0, 1, |
| use_image_texture_targets_)); |
| - uint32 sync_point = 0; |
| + gpu::SyncToken sync_token; |
| unsigned target = GL_TEXTURE_2D; |
| EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
| - EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| + EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
| EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); |
| EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); |
| @@ -3063,7 +3078,7 @@ TEST_P(ResourceProviderTest, TextureMailbox_WaitSyncPointIfNeeded_NoSyncPoint) { |
| scoped_ptr<SingleReleaseCallbackImpl> callback = |
| SingleReleaseCallbackImpl::Create(base::Bind(&EmptyReleaseCallback)); |
| - TextureMailbox mailbox(gpu_mailbox, target, sync_point); |
| + TextureMailbox mailbox(gpu_mailbox, sync_token, target); |
| ResourceId id = resource_provider->CreateResourceFromTextureMailbox( |
| mailbox, callback.Pass()); |
| @@ -3072,9 +3087,9 @@ TEST_P(ResourceProviderTest, TextureMailbox_WaitSyncPointIfNeeded_NoSyncPoint) { |
| Mock::VerifyAndClearExpectations(context); |
| { |
| - // WaitSyncPointIfNeeded with sync_point == 0 shouldn't call waitSyncPoint. |
| - EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
| - resource_provider->WaitSyncPointIfNeeded(id); |
| + // WaitSyncTokenIfNeeded with empty sync_token shouldn't call waitSyncToken. |
| + EXPECT_CALL(*context, waitSyncToken(_)).Times(0); |
| + resource_provider->WaitSyncTokenIfNeeded(id); |
| Mock::VerifyAndClearExpectations(context); |
| } |
| } |