Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Unified Diff: cc/layers/texture_layer_unittest.cc

Issue 1427543002: Modified old wait sync point functions to also accept new sync tokens. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/texture_layer_impl_unittest.cc ('k') | cc/layers/video_layer_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/texture_layer_unittest.cc
diff --git a/cc/layers/texture_layer_unittest.cc b/cc/layers/texture_layer_unittest.cc
index 2af2df194752e8721e2c7fe8522593a482b30bc2..a04ff66ab19021af0153074cdf6f734d9df8fffc 100644
--- a/cc/layers/texture_layer_unittest.cc
+++ b/cc/layers/texture_layer_unittest.cc
@@ -115,20 +115,20 @@ class MockMailboxCallback {
public:
MOCK_METHOD3(Release,
void(const gpu::Mailbox& mailbox,
- uint32 sync_point,
+ const gpu::SyncToken& sync_token,
bool lost_resource));
MOCK_METHOD3(Release2,
void(SharedBitmap* shared_bitmap,
- uint32 sync_point,
+ const gpu::SyncToken& sync_token,
bool lost_resource));
MOCK_METHOD4(ReleaseImpl,
void(const gpu::Mailbox& mailbox,
- uint32 sync_point,
+ const gpu::SyncToken& sync_token,
bool lost_resource,
BlockingTaskRunner* main_thread_task_runner));
MOCK_METHOD4(ReleaseImpl2,
void(SharedBitmap* shared_bitmap,
- uint32 sync_point,
+ const gpu::SyncToken& sync_token,
bool lost_resource,
BlockingTaskRunner* main_thread_task_runner));
};
@@ -137,8 +137,8 @@ struct CommonMailboxObjects {
explicit CommonMailboxObjects(SharedBitmapManager* manager)
: mailbox_name1_(MailboxFromChar('1')),
mailbox_name2_(MailboxFromChar('2')),
- sync_point1_(1),
- sync_point2_(2) {
+ sync_token1_(1),
+ sync_token2_(2) {
release_mailbox1_ = base::Bind(&MockMailboxCallback::Release,
base::Unretained(&mock_callback_),
mailbox_name1_);
@@ -153,8 +153,8 @@ struct CommonMailboxObjects {
mailbox_name2_);
const uint32 arbitrary_target1 = GL_TEXTURE_2D;
const uint32 arbitrary_target2 = GL_TEXTURE_EXTERNAL_OES;
- mailbox1_ = TextureMailbox(mailbox_name1_, arbitrary_target1, sync_point1_);
- mailbox2_ = TextureMailbox(mailbox_name2_, arbitrary_target2, sync_point2_);
+ mailbox1_ = TextureMailbox(mailbox_name1_, sync_token1_, arbitrary_target1);
+ mailbox2_ = TextureMailbox(mailbox_name2_, sync_token2_, arbitrary_target2);
gfx::Size size(128, 128);
shared_bitmap_ = manager->AllocateSharedBitmap(size);
DCHECK(shared_bitmap_);
@@ -179,8 +179,8 @@ struct CommonMailboxObjects {
TextureMailbox mailbox1_;
TextureMailbox mailbox2_;
TextureMailbox mailbox3_;
- uint32 sync_point1_;
- uint32 sync_point2_;
+ gpu::SyncToken sync_token1_;
+ gpu::SyncToken sync_token2_;
scoped_ptr<SharedBitmap> shared_bitmap_;
};
@@ -252,10 +252,10 @@ class TextureLayerWithMailboxTest : public TextureLayerTest {
protected:
void TearDown() override {
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
- EXPECT_CALL(test_data_.mock_callback_,
- Release(test_data_.mailbox_name1_,
- test_data_.sync_point1_,
- false)).Times(1);
+ EXPECT_CALL(
+ test_data_.mock_callback_,
+ Release(test_data_.mailbox_name1_, test_data_.sync_token1_, false))
+ .Times(1);
TextureLayerTest::TearDown();
}
};
@@ -276,10 +276,9 @@ TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) {
Mock::VerifyAndClearExpectations(layer_tree_host_.get());
EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
- EXPECT_CALL(test_data_.mock_callback_,
- Release(test_data_.mailbox_name1_,
- test_data_.sync_point1_,
- false))
+ EXPECT_CALL(
+ test_data_.mock_callback_,
+ Release(test_data_.mailbox_name1_, test_data_.sync_token1_, false))
.Times(1);
test_layer->SetTextureMailbox(
test_data_.mailbox2_,
@@ -288,10 +287,9 @@ TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) {
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
- EXPECT_CALL(test_data_.mock_callback_,
- Release(test_data_.mailbox_name2_,
- test_data_.sync_point2_,
- false))
+ EXPECT_CALL(
+ test_data_.mock_callback_,
+ Release(test_data_.mailbox_name2_, test_data_.sync_token2_, false))
.Times(1);
test_layer->SetTextureMailbox(TextureMailbox(), nullptr);
Mock::VerifyAndClearExpectations(layer_tree_host_.get());
@@ -306,7 +304,8 @@ TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) {
EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
EXPECT_CALL(test_data_.mock_callback_,
- Release2(test_data_.shared_bitmap_.get(), 0, false)).Times(1);
+ Release2(test_data_.shared_bitmap_.get(), _, false))
+ .Times(1);
test_layer->SetTextureMailbox(TextureMailbox(), nullptr);
Mock::VerifyAndClearExpectations(layer_tree_host_.get());
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
@@ -324,8 +323,10 @@ TEST_F(TextureLayerTest, SetTextureMailboxWithoutReleaseCallback) {
ASSERT_TRUE(test_layer.get());
// These use the same gpu::Mailbox, but different sync points.
- TextureMailbox mailbox1(MailboxFromChar('a'), GL_TEXTURE_2D, 1);
- TextureMailbox mailbox2(MailboxFromChar('a'), GL_TEXTURE_2D, 2);
+ TextureMailbox mailbox1(MailboxFromChar('a'), gpu::SyncToken(1),
+ GL_TEXTURE_2D);
+ TextureMailbox mailbox2(MailboxFromChar('a'), gpu::SyncToken(2),
+ GL_TEXTURE_2D);
EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
layer_tree_host_->SetRootLayer(test_layer);
@@ -428,8 +429,8 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) {
// The compositors both destroy their impl trees before the main thread layer
// is destroyed.
- compositor1->Run(100, false, main_thread_task_runner_.get());
- compositor2->Run(200, false, main_thread_task_runner_.get());
+ compositor1->Run(gpu::SyncToken(100), false, main_thread_task_runner_.get());
+ compositor2->Run(gpu::SyncToken(200), false, main_thread_task_runner_.get());
Wait(main_thread_);
@@ -439,7 +440,8 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) {
// The main thread ref is the last one, so the mailbox is released back to the
// embedder, with the last sync point provided by the impl trees.
EXPECT_CALL(test_data_.mock_callback_,
- Release(test_data_.mailbox_name1_, 200, false)).Times(1);
+ Release(test_data_.mailbox_name1_, gpu::SyncToken(200), false))
+ .Times(1);
main_thread_.message_loop()->task_runner()->PostTask(
FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::ReleaseMainRef,
@@ -477,7 +479,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) {
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
// One compositor destroys their impl tree.
- compositor1->Run(100, false, main_thread_task_runner_.get());
+ compositor1->Run(gpu::SyncToken(100), false, main_thread_task_runner_.get());
// Then the main thread reference is destroyed.
main_thread_.message_loop()->task_runner()->PostTask(
@@ -492,9 +494,10 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) {
// The second impl reference is destroyed last, causing the mailbox to be
// released back to the embedder with the last sync point from the impl tree.
EXPECT_CALL(test_data_.mock_callback_,
- Release(test_data_.mailbox_name1_, 200, true)).Times(1);
+ Release(test_data_.mailbox_name1_, gpu::SyncToken(200), true))
+ .Times(1);
- compositor2->Run(200, true, main_thread_task_runner_.get());
+ compositor2->Run(gpu::SyncToken(200), true, main_thread_task_runner_.get());
Wait(main_thread_);
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
}
@@ -533,7 +536,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) {
base::Unretained(this)));
// One compositor destroys their impl tree.
- compositor2->Run(200, false, main_thread_task_runner_.get());
+ compositor2->Run(gpu::SyncToken(200), false, main_thread_task_runner_.get());
Wait(main_thread_);
@@ -543,9 +546,10 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) {
// The second impl reference is destroyed last, causing the mailbox to be
// released back to the embedder with the last sync point from the impl tree.
EXPECT_CALL(test_data_.mock_callback_,
- Release(test_data_.mailbox_name1_, 100, true)).Times(1);
+ Release(test_data_.mailbox_name1_, gpu::SyncToken(100), true))
+ .Times(1);
- compositor1->Run(100, true, main_thread_task_runner_.get());
+ compositor1->Run(gpu::SyncToken(100), true, main_thread_task_runner_.get());
Wait(main_thread_);
Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
}
@@ -584,7 +588,8 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
base::Unretained(this)));
EXPECT_CALL(test_data_.mock_callback_,
- Release(test_data_.mailbox_name1_, 200, true)).Times(1);
+ Release(test_data_.mailbox_name1_, gpu::SyncToken(200), true))
+ .Times(1);
bool manual_reset = false;
bool initially_signaled = false;
@@ -603,7 +608,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
// Before the main thread capturing starts, one compositor destroys their
// impl reference. Since capturing did not start, this gets post-tasked to
// the main thread.
- compositor1->Run(100, false, main_thread_task_runner_.get());
+ compositor1->Run(gpu::SyncToken(100), false, main_thread_task_runner_.get());
// Start capturing on the main thread.
begin_capture.Signal();
@@ -614,7 +619,7 @@ TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
// released before compositor1, whose reference will be released later when
// the post-task is serviced. But since it was destroyed _on the impl thread_
// last, its sync point values should be used.
- compositor2->Run(200, true, main_thread_task_runner_.get());
+ compositor2->Run(gpu::SyncToken(200), true, main_thread_task_runner_.get());
stop_capture.Signal();
Wait(main_thread_);
@@ -629,7 +634,7 @@ class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest {
commit_count_(0) {}
// Make sure callback is received on main and doesn't block the impl thread.
- void ReleaseCallback(uint32 sync_point, bool lost_resource) {
+ void ReleaseCallback(const gpu::SyncToken& sync_token, bool lost_resource) {
EXPECT_EQ(true, main_thread_.CalledOnValidThread());
EXPECT_FALSE(lost_resource);
++callback_count_;
@@ -641,9 +646,9 @@ class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest {
base::Bind(
&TextureLayerImplWithMailboxThreadedCallback::ReleaseCallback,
base::Unretained(this)));
- layer_->SetTextureMailbox(
- TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
- callback.Pass());
+ layer_->SetTextureMailbox(TextureMailbox(MailboxFromChar(mailbox_char),
+ gpu::SyncToken(), GL_TEXTURE_2D),
+ callback.Pass());
}
void BeginTest() override {
@@ -750,15 +755,16 @@ class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest {
protected:
TextureLayerMailboxIsActivatedDuringCommit() : activate_count_(0) {}
- static void ReleaseCallback(uint32 sync_point, bool lost_resource) {}
+ static void ReleaseCallback(const gpu::SyncToken& sync_token,
+ bool lost_resource) {}
void SetMailbox(char mailbox_char) {
scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
base::Bind(
&TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback));
- layer_->SetTextureMailbox(
- TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
- callback.Pass());
+ layer_->SetTextureMailbox(TextureMailbox(MailboxFromChar(mailbox_char),
+ gpu::SyncToken(), GL_TEXTURE_2D),
+ callback.Pass());
}
void BeginTest() override {
@@ -857,10 +863,11 @@ class TextureLayerImplWithMailboxTest : public TextureLayerTest {
TEST_F(TextureLayerImplWithMailboxTest, TestWillDraw) {
EXPECT_CALL(
test_data_.mock_callback_,
- ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_point1_, false, _))
+ ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_token1_, false, _))
.Times(AnyNumber());
- EXPECT_CALL(test_data_.mock_callback_,
- ReleaseImpl2(test_data_.shared_bitmap_.get(), 0, false, _))
+ EXPECT_CALL(
+ test_data_.mock_callback_,
+ ReleaseImpl2(test_data_.shared_bitmap_.get(), gpu::SyncToken(), false, _))
.Times(AnyNumber());
// Hardware mode.
{
@@ -944,7 +951,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) {
// Test multiple commits without an activation.
EXPECT_CALL(
test_data_.mock_callback_,
- ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_point1_, false, _))
+ ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_token1_, false, _))
.Times(1);
pending_layer->SetTextureMailbox(
test_data_.mailbox2_,
@@ -978,7 +985,7 @@ TEST_F(TextureLayerImplWithMailboxTest, TestImplLayerCallbacks) {
// Test destructor.
EXPECT_CALL(
test_data_.mock_callback_,
- ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_point1_, false, _))
+ ReleaseImpl(test_data_.mailbox_name1_, test_data_.sync_token1_, false, _))
.Times(1);
pending_layer->SetTextureMailbox(
test_data_.mailbox1_,
@@ -1043,14 +1050,15 @@ class TextureLayerNoExtraCommitForMailboxTest
return true;
}
- *texture_mailbox = TextureMailbox(MailboxFromChar('1'), GL_TEXTURE_2D, 0);
+ *texture_mailbox =
+ TextureMailbox(MailboxFromChar('1'), gpu::SyncToken(), GL_TEXTURE_2D);
*release_callback = SingleReleaseCallback::Create(
base::Bind(&TextureLayerNoExtraCommitForMailboxTest::MailboxReleased,
base::Unretained(this)));
return true;
}
- void MailboxReleased(uint32 sync_point, bool lost_resource) {
+ void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) {
// Source frame number during callback is the same as the source frame
// on which it was released.
EXPECT_EQ(1, layer_tree_host()->source_frame_number());
@@ -1145,10 +1153,11 @@ class TextureLayerChangeInvisibleMailboxTest
}
TextureMailbox MakeMailbox(char name) {
- return TextureMailbox(MailboxFromChar(name), GL_TEXTURE_2D, 0);
+ return TextureMailbox(MailboxFromChar(name), gpu::SyncToken(),
+ GL_TEXTURE_2D);
}
- void MailboxReleased(uint32 sync_point, bool lost_resource) {
+ void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) {
++mailbox_returned_;
}
@@ -1268,14 +1277,15 @@ class TextureLayerReleaseResourcesBase
TextureMailbox* mailbox,
scoped_ptr<SingleReleaseCallback>* release_callback,
bool use_shared_memory) override {
- *mailbox = TextureMailbox(MailboxFromChar('1'), GL_TEXTURE_2D, 0);
+ *mailbox =
+ TextureMailbox(MailboxFromChar('1'), gpu::SyncToken(), GL_TEXTURE_2D);
*release_callback = SingleReleaseCallback::Create(
base::Bind(&TextureLayerReleaseResourcesBase::MailboxReleased,
base::Unretained(this)));
return true;
}
- void MailboxReleased(unsigned sync_point, bool lost_resource) {
+ void MailboxReleased(const gpu::SyncToken& sync_token, bool lost_resource) {
mailbox_released_ = true;
}
@@ -1327,7 +1337,7 @@ SINGLE_AND_MULTI_THREAD_TEST_F(TextureLayerReleaseResourcesAfterActivate);
class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest {
public:
- void ReleaseCallback(uint32 sync_point, bool lost_resource) {
+ void ReleaseCallback(const gpu::SyncToken& sync_token, bool lost_resource) {
EXPECT_EQ(true, main_thread_.CalledOnValidThread());
EXPECT_FALSE(lost_resource);
++callback_count_;
@@ -1340,9 +1350,9 @@ class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest {
base::Bind(
&TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback,
base::Unretained(this)));
- layer_->SetTextureMailbox(
- TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
- callback.Pass());
+ layer_->SetTextureMailbox(TextureMailbox(MailboxFromChar(mailbox_char),
+ gpu::SyncToken(), GL_TEXTURE_2D),
+ callback.Pass());
}
void SetupTree() override {
@@ -1396,7 +1406,7 @@ SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(
class TextureLayerWithMailboxImplThreadDeleted : public LayerTreeTest {
public:
- void ReleaseCallback(uint32 sync_point, bool lost_resource) {
+ void ReleaseCallback(const gpu::SyncToken& sync_token, bool lost_resource) {
EXPECT_EQ(true, main_thread_.CalledOnValidThread());
EXPECT_FALSE(lost_resource);
++callback_count_;
@@ -1409,9 +1419,9 @@ class TextureLayerWithMailboxImplThreadDeleted : public LayerTreeTest {
base::Bind(
&TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback,
base::Unretained(this)));
- layer_->SetTextureMailbox(
- TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
- callback.Pass());
+ layer_->SetTextureMailbox(TextureMailbox(MailboxFromChar(mailbox_char),
+ gpu::SyncToken(), GL_TEXTURE_2D),
+ callback.Pass());
}
void SetupTree() override {
« no previous file with comments | « cc/layers/texture_layer_impl_unittest.cc ('k') | cc/layers/video_layer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698