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()); |
+ |
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); |
} |
} |