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

Unified Diff: cc/trees/layer_tree_host_pixeltest_tiles.cc

Issue 2609253003: Remove ForceReclaimResources (Closed)
Patch Set: Make test cases / phases the same Created 3 years, 11 months 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/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_pixeltest_tiles.cc
diff --git a/cc/trees/layer_tree_host_pixeltest_tiles.cc b/cc/trees/layer_tree_host_pixeltest_tiles.cc
index b569208f018825fa9a39eac55878ddd0ea154437..fb57b9a30c7b77799e40d99e1cceb4a5fcee4389 100644
--- a/cc/trees/layer_tree_host_pixeltest_tiles.cc
+++ b/cc/trees/layer_tree_host_pixeltest_tiles.cc
@@ -11,6 +11,8 @@
#include "cc/playback/display_item_list_settings.h"
#include "cc/playback/drawing_display_item.h"
#include "cc/test/layer_tree_pixel_test.h"
+#include "cc/test/test_compositor_frame_sink.h"
+#include "gpu/command_buffer/client/gles2_interface.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkPictureRecorder.h"
@@ -160,11 +162,17 @@ class LayerTreeHostTilesTestPartialInvalidation
void DidCommitAndDrawFrame() override {
switch (layer_tree_host()->SourceFrameNumber()) {
case 1:
- // We have done one frame, so the layer's content has been rastered.
- // Now we change the picture behind it to record something completely
- // different, but we give a smaller invalidation rect. The layer should
- // only re-raster the stuff in the rect. If it doesn't do partial raster
- // it would re-raster the whole thing instead.
+ // We have done one frame, but the resource may not be available for
+ // partial raster yet. Force a second frame.
+ picture_layer_->SetNeedsDisplayRect(gfx::Rect(50, 50, 100, 100));
+ break;
+ case 2:
+ // We have done two frames, so the layer's content has been rastered
+ // twice and the first frame's resource is available for partial
+ // raster. Now we change the picture behind it to record something
+ // completely different, but we give a smaller invalidation rect. The
+ // layer should only re-raster the stuff in the rect. If it doesn't do
+ // partial raster it would re-raster the whole thing instead.
client_.set_blue_top(false);
Finish();
picture_layer_->SetNeedsDisplayRect(gfx::Rect(50, 50, 100, 100));
@@ -175,6 +183,18 @@ class LayerTreeHostTilesTestPartialInvalidation
}
}
+ void WillPrepareTilesOnThread(LayerTreeHostImpl* host_impl) override {
+ // Issue a GL finish before preparing tiles to ensure resources become
+ // available for use in a timely manner. Needed for the one-copy path.
+ ContextProvider* context_provider =
+ host_impl->compositor_frame_sink()->worker_context_provider();
+ if (!context_provider)
+ return;
+
+ ContextProvider::ScopedContextLock lock(context_provider);
+ lock.ContextGL()->Finish();
+ }
+
protected:
BlueYellowClient client_;
scoped_refptr<PictureLayer> picture_layer_;
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698