| Index: gpu/command_buffer/service/mailbox_manager_unittest.cc
|
| diff --git a/gpu/command_buffer/service/mailbox_manager_unittest.cc b/gpu/command_buffer/service/mailbox_manager_unittest.cc
|
| index d715a398160c56f66922dbf19d862062f2ebfbf6..5101604a3687369c2be85c3b00888def013583a9 100644
|
| --- a/gpu/command_buffer/service/mailbox_manager_unittest.cc
|
| +++ b/gpu/command_buffer/service/mailbox_manager_unittest.cc
|
| @@ -17,6 +17,9 @@ namespace gles2 {
|
|
|
| using namespace ::testing;
|
|
|
| +static const SyncToken g_sync_token = {gpu::CommandBufferNamespace::GPU_IO, 123,
|
| + 0};
|
| +
|
| class MailboxManagerTest : public GpuServiceTest {
|
| public:
|
| MailboxManagerTest() {}
|
| @@ -276,8 +279,8 @@ TEST_F(MailboxManagerSyncTest, ProduceSyncDestroy) {
|
| EXPECT_EQ(texture, manager_->ConsumeTexture(name));
|
|
|
| // Synchronize
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| DestroyTexture(texture);
|
| EXPECT_EQ(NULL, manager_->ConsumeTexture(name));
|
| @@ -291,7 +294,7 @@ TEST_F(MailboxManagerSyncTest, ProduceSyncClobberDestroy) {
|
| Mailbox name = Mailbox::Generate();
|
|
|
| manager_->ProduceTexture(name, texture);
|
| - manager_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
|
|
| // Clobber
|
| Texture* old_texture = texture;
|
| @@ -317,8 +320,8 @@ TEST_F(MailboxManagerSyncTest, ProduceConsumeResize) {
|
| EXPECT_EQ(texture, manager_->ConsumeTexture(name));
|
|
|
| // Synchronize
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| EXPECT_CALL(*gl_, GenTextures(1, _))
|
| .WillOnce(SetArgPointee<1>(kNewTextureId));
|
| @@ -336,10 +339,10 @@ TEST_F(MailboxManagerSyncTest, ProduceConsumeResize) {
|
| EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 0) == NULL);
|
|
|
| // Synchronize again
|
| - manager_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| SetupUpdateTexParamExpectations(
|
| kNewTextureId, GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
| GLsizei width, height;
|
| new_texture->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height, nullptr);
|
| EXPECT_EQ(16, width);
|
| @@ -360,7 +363,7 @@ TEST_F(MailboxManagerSyncTest, ProduceConsumeResize) {
|
|
|
| // The last change to the texture should be visible without a sync point (i.e.
|
| // push).
|
| - manager2_->PullTextureUpdates(0);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
| new_texture->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height, nullptr);
|
| EXPECT_EQ(64, width);
|
| EXPECT_EQ(64, height);
|
| @@ -388,8 +391,8 @@ TEST_F(MailboxManagerSyncTest, ProduceConsumeBidirectional) {
|
| manager2_->ProduceTexture(name2, texture2);
|
|
|
| // Make visible.
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PushTextureUpdates(g_sync_token);
|
|
|
| // Create textures in the other manager instances for texture1 and texture2,
|
| // respectively to create a real sharing scenario. Otherwise, there would
|
| @@ -416,7 +419,7 @@ TEST_F(MailboxManagerSyncTest, ProduceConsumeBidirectional) {
|
| SetParameter(texture1, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
|
|
|
| // Make sure this does not clobber it with the previous version we pushed.
|
| - manager_->PullTextureUpdates(0);
|
| + manager_->PullTextureUpdates(g_sync_token);
|
|
|
| // Make a change to texture2
|
| DCHECK_EQ(static_cast<GLuint>(GL_LINEAR), texture2->mag_filter());
|
| @@ -426,16 +429,16 @@ TEST_F(MailboxManagerSyncTest, ProduceConsumeBidirectional) {
|
| Mock::VerifyAndClearExpectations(gl_.get());
|
|
|
| // Synchronize in both directions
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PushTextureUpdates(g_sync_token);
|
| // manager1 should see the change to texture2 mag_filter being applied.
|
| SetupUpdateTexParamExpectations(
|
| new_texture2->service_id(), GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT);
|
| - manager_->PullTextureUpdates(0);
|
| + manager_->PullTextureUpdates(g_sync_token);
|
| // manager2 should see the change to texture1 min_filter being applied.
|
| SetupUpdateTexParamExpectations(
|
| new_texture1->service_id(), GL_NEAREST, GL_LINEAR, GL_REPEAT, GL_REPEAT);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| DestroyTexture(texture1);
|
| DestroyTexture(texture2);
|
| @@ -457,8 +460,8 @@ TEST_F(MailboxManagerSyncTest, ProduceAndClobber) {
|
| EXPECT_EQ(texture, manager_->ConsumeTexture(name));
|
|
|
| // Synchronize
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| EXPECT_CALL(*gl_, GenTextures(1, _))
|
| .WillOnce(SetArgPointee<1>(kNewTextureId));
|
| @@ -479,8 +482,8 @@ TEST_F(MailboxManagerSyncTest, ProduceAndClobber) {
|
| SetParameter(texture, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
|
|
|
| // Synchronize in both directions - no changes, since it's not shared
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
| EXPECT_EQ(static_cast<GLuint>(GL_LINEAR), new_texture->min_filter());
|
|
|
| // Make a change to the previously shared texture
|
| @@ -489,10 +492,10 @@ TEST_F(MailboxManagerSyncTest, ProduceAndClobber) {
|
| SetParameter(old_texture, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
|
|
|
| // Synchronize and expect update
|
| - manager_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| SetupUpdateTexParamExpectations(
|
| new_texture->service_id(), GL_LINEAR, GL_NEAREST, GL_REPEAT, GL_REPEAT);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| EXPECT_CALL(*gl_, GenTextures(1, _))
|
| .WillOnce(SetArgPointee<1>(kNewTextureId));
|
| @@ -522,8 +525,8 @@ TEST_F(MailboxManagerSyncTest, ClearedStateSynced) {
|
| EXPECT_EQ(texture, manager_->ConsumeTexture(name));
|
|
|
| // Synchronize
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| EXPECT_CALL(*gl_, GenTextures(1, _))
|
| .WillOnce(SetArgPointee<1>(kNewTextureId));
|
| @@ -540,10 +543,10 @@ TEST_F(MailboxManagerSyncTest, ClearedStateSynced) {
|
| EXPECT_FALSE(texture->SafeToRenderFrom());
|
|
|
| // Synchronize
|
| - manager_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| SetupUpdateTexParamExpectations(
|
| kNewTextureId, GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| // Cleared state should be synced.
|
| EXPECT_FALSE(new_texture->SafeToRenderFrom());
|
| @@ -568,8 +571,8 @@ TEST_F(MailboxManagerSyncTest, SyncIncompleteTexture) {
|
| EXPECT_EQ(texture, manager_->ConsumeTexture(name));
|
|
|
| // Synchronize
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| // Should sync to new texture which is not defined.
|
| EXPECT_CALL(*gl_, GenTextures(1, _))
|
| @@ -591,10 +594,10 @@ TEST_F(MailboxManagerSyncTest, SyncIncompleteTexture) {
|
| EXPECT_TRUE(texture->IsDefined());
|
|
|
| // Synchronize
|
| - manager_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| SetupUpdateTexParamExpectations(
|
| kNewTextureId, GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| // Cleared state should be synced.
|
| EXPECT_TRUE(new_texture->IsDefined());
|
| @@ -619,10 +622,10 @@ TEST_F(MailboxManagerSyncTest, SharedThroughMultipleMailboxes) {
|
| manager_->ProduceTexture(name1, texture);
|
|
|
| // Share
|
| - manager_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| EXPECT_CALL(*gl_, GenTextures(1, _))
|
| .WillOnce(SetArgPointee<1>(kNewTextureId));
|
| - manager2_->PullTextureUpdates(0);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
| SetupUpdateTexParamExpectations(
|
| kNewTextureId, GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT);
|
| Texture* new_texture = manager2_->ConsumeTexture(name1);
|
| @@ -631,8 +634,8 @@ TEST_F(MailboxManagerSyncTest, SharedThroughMultipleMailboxes) {
|
| manager_->ProduceTexture(name2, texture);
|
|
|
| // Synchronize
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| // name2 should return the same texture
|
| EXPECT_EQ(new_texture, manager2_->ConsumeTexture(name2));
|
| @@ -658,7 +661,7 @@ TEST_F(MailboxManagerSyncTest, ProduceBothWays) {
|
| manager_->ProduceTexture(name, texture1);
|
|
|
| // Share
|
| - manager_->PushTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| EXPECT_CALL(*gl_, GenTextures(1, _))
|
| .WillOnce(SetArgPointee<1>(kNewTextureId));
|
| SetupUpdateTexParamExpectations(
|
| @@ -671,8 +674,8 @@ TEST_F(MailboxManagerSyncTest, ProduceBothWays) {
|
| manager_->ProduceTexture(name, texture1);
|
|
|
| // Synchronize manager -> manager2
|
| - manager_->PushTextureUpdates(0);
|
| - manager2_->PullTextureUpdates(0);
|
| + manager_->PushTextureUpdates(g_sync_token);
|
| + manager2_->PullTextureUpdates(g_sync_token);
|
|
|
| // name should return the original texture, and not texture2 or a new one.
|
| EXPECT_EQ(new_texture, manager2_->ConsumeTexture(name));
|
|
|