diff options
author | reveman <reveman@chromium.org> | 2014-11-04 17:24:12 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-05 01:24:34 +0000 |
commit | d7416fb2e1c7fd4d7e68060c1d307815d3fb3deb (patch) | |
tree | 814fd4c4a1e5a8d7ab4f295a5727b031964f4101 | |
parent | 181466fe957d966cb13ab8c1ee3fb99742d05ee9 (diff) | |
download | chromium_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.cc | 16 |
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(); |