Index: cc/output/overlay_unittest.cc |
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc |
index 6ee0ac53226cbc576ed2c8fb75d485e6744f398a..5d1b05f65e702cd51107daece60ea0aee9cd46f5 100644 |
--- a/cc/output/overlay_unittest.cc |
+++ b/cc/output/overlay_unittest.cc |
@@ -23,6 +23,7 @@ |
#include "cc/test/geometry_test_utils.h" |
#include "cc/test/test_context_provider.h" |
#include "cc/test/test_shared_bitmap_manager.h" |
+#include "cc/test/test_web_graphics_context_3d.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/gfx/geometry/rect_conversions.h" |
@@ -1744,7 +1745,40 @@ TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) { |
Mock::VerifyAndClearExpectations(&scheduler_); |
} |
-TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawn) { |
+// GLRenderer skips drawing occluded quads when partial swap is enabled. |
+TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawnWhenPartialSwapEnabled) { |
+ provider_->TestContext3d()->set_have_post_sub_buffer(true); |
+ settings_.partial_swap_enabled = true; |
+ bool use_validator = true; |
+ Init(use_validator); |
+ renderer_->set_expect_overlays(true); |
+ gfx::Rect viewport_rect(16, 16); |
+ |
+ scoped_ptr<RenderPass> pass = CreateRenderPass(); |
+ |
+ CreateFullscreenCandidateQuad(resource_provider_.get(), |
+ pass->shared_quad_state_list.back(), |
+ pass.get()); |
+ CreateFullscreenOpaqueQuad(resource_provider_.get(), |
+ pass->shared_quad_state_list.back(), pass.get()); |
+ CreateFullscreenOpaqueQuad(resource_provider_.get(), |
+ pass->shared_quad_state_list.back(), pass.get()); |
+ |
+ RenderPassList pass_list; |
+ pass_list.push_back(std::move(pass)); |
+ |
+ output_surface_->set_is_displayed_as_overlay_plane(true); |
+ EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(0); |
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2); |
+ renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); |
+ SwapBuffers(); |
+ Mock::VerifyAndClearExpectations(renderer_.get()); |
+ Mock::VerifyAndClearExpectations(&scheduler_); |
+} |
+ |
+// GLRenderer skips drawing occluded quads when empty swap is enabled. |
+TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawnWhenEmptySwapAllowed) { |
+ provider_->TestContext3d()->set_have_commit_overlay_planes(true); |
bool use_validator = true; |
Init(use_validator); |
renderer_->set_expect_overlays(true); |