Index: cc/trees/layer_tree_host_unittest.cc |
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc |
index 40983ced67bfcd2fefb460feca931c53318c106a..5bfd864cb43cd43112af61c6590db8e7444a67e5 100644 |
--- a/cc/trees/layer_tree_host_unittest.cc |
+++ b/cc/trees/layer_tree_host_unittest.cc |
@@ -369,7 +369,8 @@ class LayerTreeHostTestCompositeAndReadback : public LayerTreeHostTest { |
int num_commits_; |
}; |
-MULTI_THREAD_TEST_F(LayerTreeHostTestCompositeAndReadback); |
+// No readbacks with a delegating renderer. |
+MULTI_THREAD_DIRECT_RENDERER_TEST_F(LayerTreeHostTestCompositeAndReadback); |
class LayerTreeHostTestCompositeAndReadbackBeforePreviousCommitDraws |
: public LayerTreeHostTest { |
@@ -401,7 +402,8 @@ class LayerTreeHostTestCompositeAndReadbackBeforePreviousCommitDraws |
int num_commits_; |
}; |
-MULTI_THREAD_TEST_F( |
+// No readbacks with a delegating renderer. |
+MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
LayerTreeHostTestCompositeAndReadbackBeforePreviousCommitDraws); |
// If the layerTreeHost says it can't draw, Then we should not try to draw. |
@@ -434,8 +436,13 @@ class LayerTreeHostTestCanDrawBlocksDrawing : public LayerTreeHostTest { |
// Make the viewport empty so the host says it can't draw. |
layer_tree_host()->SetViewportSize(gfx::Size(0, 0)); |
} else if (num_commits_ == 2) { |
- char pixels[4]; |
- layer_tree_host()->CompositeAndReadback(&pixels, gfx::Rect(0, 0, 1, 1)); |
+ if (delegating_renderer()) { |
+ // No readbacks with a delegating renderer. |
+ layer_tree_host()->SetNeedsCommit(); |
+ } else { |
+ char pixels[4]; |
+ layer_tree_host()->CompositeAndReadback(&pixels, gfx::Rect(0, 0, 1, 1)); |
+ } |
} else if (num_commits_ == 3) { |
// Let it draw so we go idle and end the test. |
layer_tree_host()->SetViewportSize(gfx::Size(1, 1)); |
@@ -542,7 +549,9 @@ class LayerTreeHostTestCompositeAndReadbackWhileInvisible |
int num_commits_; |
}; |
-MULTI_THREAD_TEST_F(LayerTreeHostTestCompositeAndReadbackWhileInvisible); |
+// No readbacks with a delegating renderer. |
+MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
+ LayerTreeHostTestCompositeAndReadbackWhileInvisible); |
class LayerTreeHostTestAbortFrameWhenInvisible : public LayerTreeHostTest { |
public: |
@@ -956,7 +965,7 @@ class LayerTreeHostTestAtomicCommit : public LayerTreeHostTest { |
TestWebGraphicsContext3D* context = static_cast<TestWebGraphicsContext3D*>( |
impl->output_surface()->context3d()); |
- // Number of textures used for draw should always be one for each layer. |
+ // We draw/ship one texture each frame for each layer. |
EXPECT_EQ(2u, context->NumUsedTextures()); |
context->ResetUsedTextures(); |
} |
@@ -1183,7 +1192,9 @@ class LayerTreeHostTestAtomicCommitWithPartialUpdate |
int num_commits_; |
}; |
-MULTI_THREAD_TEST_F(LayerTreeHostTestAtomicCommitWithPartialUpdate); |
+// Partial updates are not possible with a delegating renderer. |
+MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
+ LayerTreeHostTestAtomicCommitWithPartialUpdate); |
class LayerTreeHostTestFinishAllRendering : public LayerTreeHostTest { |
public: |
@@ -1243,7 +1254,9 @@ class LayerTreeHostTestCompositeAndReadbackCleanup : public LayerTreeHostTest { |
virtual void AfterTest() OVERRIDE {} |
}; |
-SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestCompositeAndReadbackCleanup); |
+// No readbacks with a delegating renderer. |
+SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
+ LayerTreeHostTestCompositeAndReadbackCleanup); |
class LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit |
: public LayerTreeHostTest { |
@@ -1336,7 +1349,8 @@ class LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit |
scoped_refptr<FakeContentLayer> replica_layer2_; |
}; |
-SINGLE_AND_MULTI_THREAD_TEST_F( |
+ // Surfaces don't exist with a delegated renderer. |
+SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit); |
class EvictionTestLayer : public Layer { |
@@ -1886,19 +1900,13 @@ class LayerTreeHostTestMaxPendingFrames : public LayerTreeHostTest { |
public: |
LayerTreeHostTestMaxPendingFrames() : LayerTreeHostTest() {} |
- virtual scoped_ptr<OutputSurface> CreateOutputSurface() OVERRIDE { |
- if (delegating_renderer_) |
- return FakeOutputSurface::CreateDelegating3d().PassAs<OutputSurface>(); |
- return FakeOutputSurface::Create3d().PassAs<OutputSurface>(); |
- } |
- |
virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
DCHECK(host_impl->proxy()->HasImplThread()); |
const ThreadProxy* proxy = static_cast<ThreadProxy*>(host_impl->proxy()); |
- if (delegating_renderer_) { |
+ if (delegating_renderer()) { |
EXPECT_EQ(1, proxy->MaxFramesPendingForTesting()); |
} else { |
EXPECT_EQ(FrameRateController::DEFAULT_MAX_FRAMES_PENDING, |
@@ -1908,19 +1916,14 @@ class LayerTreeHostTestMaxPendingFrames : public LayerTreeHostTest { |
} |
virtual void AfterTest() OVERRIDE {} |
- |
- protected: |
- bool delegating_renderer_; |
}; |
TEST_F(LayerTreeHostTestMaxPendingFrames, DelegatingRenderer) { |
- delegating_renderer_ = true; |
- RunTest(true); |
+ RunTest(true, true); |
} |
TEST_F(LayerTreeHostTestMaxPendingFrames, GLRenderer) { |
- delegating_renderer_ = false; |
- RunTest(true); |
+ RunTest(true, false); |
} |
class LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted |
@@ -2561,7 +2564,8 @@ class LayerTreeHostTestIOSurfaceDrawing : public LayerTreeHostTest { |
gfx::Size io_surface_size_; |
}; |
-SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestIOSurfaceDrawing); |
+SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
+ LayerTreeHostTestIOSurfaceDrawing); |
class LayerTreeHostTestAsyncReadback : public LayerTreeHostTest { |
protected: |
@@ -2661,24 +2665,25 @@ class LayerTreeHostTestAsyncReadback : public LayerTreeHostTest { |
scoped_refptr<FakeContentLayer> child; |
}; |
+// Readback can't be done with a delegating renderer. |
TEST_F(LayerTreeHostTestAsyncReadback, GLRenderer_RunSingleThread) { |
use_gl_renderer_ = true; |
- RunTest(false); |
+ RunTest(false, false); |
} |
TEST_F(LayerTreeHostTestAsyncReadback, GLRenderer_RunMultiThread) { |
use_gl_renderer_ = true; |
- RunTest(true); |
+ RunTest(true, false); |
} |
TEST_F(LayerTreeHostTestAsyncReadback, SoftwareRenderer_RunSingleThread) { |
use_gl_renderer_ = false; |
- RunTest(false); |
+ RunTest(false, false); |
} |
TEST_F(LayerTreeHostTestAsyncReadback, SoftwareRenderer_RunMultiThread) { |
use_gl_renderer_ = false; |
- RunTest(true); |
+ RunTest(true, false); |
} |
class LayerTreeHostTestAsyncReadbackLayerDestroyed : public LayerTreeHostTest { |
@@ -2772,18 +2777,11 @@ SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestAsyncReadbackLayerDestroyed); |
class LayerTreeHostTestNumFramesPending : public LayerTreeHostTest { |
public: |
- LayerTreeHostTestNumFramesPending() |
- : delegating_renderer_(false), |
- frame_(0) {} |
- |
- virtual scoped_ptr<OutputSurface> CreateOutputSurface() OVERRIDE { |
- if (delegating_renderer_) |
- return FakeOutputSurface::CreateDelegating3d().PassAs<OutputSurface>(); |
- return FakeOutputSurface::Create3d().PassAs<OutputSurface>(); |
+ virtual void BeginTest() OVERRIDE { |
+ frame_ = 0; |
+ PostSetNeedsCommitToMainThread(); |
} |
- virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
- |
// Round 1: commit + draw |
// Round 2: commit only (no draw/swap) |
// Round 3: draw only (no commit) |
@@ -2801,6 +2799,8 @@ class LayerTreeHostTestNumFramesPending : public LayerTreeHostTest { |
case 3: |
// CompositeAndReadback in Round 4, first commit. |
EXPECT_EQ(2, frame_); |
+ if (delegating_renderer()) |
+ layer_tree_host()->SetNeedsCommit(); |
break; |
case 4: |
// Round 4 done. |
@@ -2824,7 +2824,13 @@ class LayerTreeHostTestNumFramesPending : public LayerTreeHostTest { |
case 2: |
// Round 3 done. |
EXPECT_EQ(2, commit); |
- layer_tree_host()->CompositeAndReadback(pixels, gfx::Rect(0, 0, 1, 1)); |
+ if (delegating_renderer()) { |
+ // Delegating renderer cannot readback. |
+ layer_tree_host()->SetNeedsCommit(); |
piman
2013/05/09 20:38:47
The entire point of this test was to make sure Com
danakj
2013/05/09 22:42:37
I've restored this.
|
+ } else { |
+ layer_tree_host()->CompositeAndReadback(pixels, |
+ gfx::Rect(0, 0, 1, 1)); |
+ } |
break; |
case 3: |
// Round 5 done. |
@@ -2842,18 +2848,15 @@ class LayerTreeHostTestNumFramesPending : public LayerTreeHostTest { |
virtual void AfterTest() OVERRIDE {} |
protected: |
- bool delegating_renderer_; |
int frame_; |
}; |
TEST_F(LayerTreeHostTestNumFramesPending, DelegatingRenderer) { |
- delegating_renderer_ = true; |
- RunTest(true); |
+ RunTest(true, true); |
} |
TEST_F(LayerTreeHostTestNumFramesPending, GLRenderer) { |
- delegating_renderer_ = false; |
- RunTest(true); |
+ RunTest(true, false); |
} |
} // namespace |