summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreveman <reveman@chromium.org>2014-11-04 17:24:12 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-05 01:24:34 +0000
commitd7416fb2e1c7fd4d7e68060c1d307815d3fb3deb (patch)
tree814fd4c4a1e5a8d7ab4f295a5727b031964f4101
parent181466fe957d966cb13ab8c1ee3fb99742d05ee9 (diff)
downloadchromium_src-d7416fb2e1c7fd4d7e68060c1d307815d3fb3deb.zip
chromium_src-d7416fb2e1c7fd4d7e68060c1d307815d3fb3deb.tar.gz
chromium_src-d7416fb2e1c7fd4d7e68060c1d307815d3fb3deb.tar.bz2
Re-land: cc: Make Overlay unit tests work when sync query extension is available.
GLRenderer expects a BeginDrawingFrame before each FinishDrawingFrame call. This also makes sure GLRenderer::BeginDrawingFrame doesn't early out before creating the read lock fence. BUG=428071 R=danakj TEST=cc_unittests --gtest_filter=GLRendererWithOverlaysTest.ResourcesExportedAndReturned Review URL: https://codereview.chromium.org/669233003 Cr-Commit-Position: refs/heads/master@{#302730}
-rw-r--r--cc/output/overlay_unittest.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc
index 8b7dc2a8..99192c8 100644
--- a/cc/output/overlay_unittest.cc
+++ b/cc/output/overlay_unittest.cc
@@ -537,6 +537,8 @@ class OverlayInfoRendererGL : public GLRenderer {
MOCK_METHOD2(DoDrawQuad, void(DrawingFrame* frame, const DrawQuad* quad));
+ using GLRenderer::BeginDrawingFrame;
+
virtual void FinishDrawingFrame(DrawingFrame* frame) override {
GLRenderer::FinishDrawingFrame(frame);
@@ -724,19 +726,26 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
ResourceProvider::ResourceId resource2 =
CreateResource(resource_provider_.get());
+ scoped_ptr<RenderPass> pass = CreateRenderPass();
+ RenderPassList pass_list;
+ pass_list.push_back(pass.Pass());
+
DirectRenderer::DrawingFrame frame1;
+ frame1.render_passes_in_draw_order = &pass_list;
frame1.overlay_list.resize(2);
OverlayCandidate& overlay1 = frame1.overlay_list.back();
overlay1.resource_id = resource1;
overlay1.plane_z_order = 1;
DirectRenderer::DrawingFrame frame2;
+ frame2.render_passes_in_draw_order = &pass_list;
frame2.overlay_list.resize(2);
OverlayCandidate& overlay2 = frame2.overlay_list.back();
overlay2.resource_id = resource2;
overlay2.plane_z_order = 1;
EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
@@ -744,6 +753,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
Mock::VerifyAndClearExpectations(&scheduler_);
EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ renderer_->BeginDrawingFrame(&frame2);
renderer_->FinishDrawingFrame(&frame2);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
@@ -752,6 +762,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
Mock::VerifyAndClearExpectations(&scheduler_);
EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
@@ -762,7 +773,9 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
// No overlays, release the resource.
EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
DirectRenderer::DrawingFrame frame3;
+ frame3.render_passes_in_draw_order = &pass_list;
renderer_->set_expect_overlays(false);
+ renderer_->BeginDrawingFrame(&frame3);
renderer_->FinishDrawingFrame(&frame3);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
@@ -773,12 +786,14 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
// Use the same buffer twice.
renderer_->set_expect_overlays(true);
EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
SwapBuffers();
Mock::VerifyAndClearExpectations(&scheduler_);
EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
SwapBuffers();
@@ -787,6 +802,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
renderer_->set_expect_overlays(false);
+ renderer_->BeginDrawingFrame(&frame3);
renderer_->FinishDrawingFrame(&frame3);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
SwapBuffers();