Index: cc/output/overlay_unittest.cc |
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc |
index b9f4a719333e0243cfc87d45ea33c84a0c26ae68..7908ced03082975bb212e3f2a9713930dfe3d93c 100644 |
--- a/cc/output/overlay_unittest.cc |
+++ b/cc/output/overlay_unittest.cc |
@@ -1226,6 +1226,15 @@ class GLRendererWithOverlaysTest : public testing::Test { |
output_surface_->OnSwapBuffersComplete(); |
renderer_->SwapBuffersComplete(); |
} |
+ void ReturnResourceInUseQuery(ResourceId id) { |
+ ResourceProvider::ScopedReadLockGL lock(resource_provider_.get(), id); |
+ gpu::TextureInUseResponse response; |
+ response.texture = lock.texture_id(); |
+ response.in_use = false; |
+ gpu::TextureInUseResponses responses; |
+ responses.push_back(response); |
+ renderer_->DidReceiveTextureInUseResponses(responses); |
+ } |
RendererSettings settings_; |
FakeOutputSurfaceClient output_surface_client_; |
@@ -1533,9 +1542,9 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) { |
Mock::VerifyAndClearExpectations(&scheduler_); |
} |
-TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedAtSwapComplete) { |
+TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedAfterGpuQuery) { |
bool use_validator = true; |
- settings_.release_overlay_resources_on_swap_complete = true; |
+ settings_.release_overlay_resources_after_gpu_query = true; |
Init(use_validator); |
renderer_->set_expect_overlays(true); |
@@ -1610,19 +1619,27 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedAtSwapComplete) { |
// This completion corresponds to the first frame. |
SwapBuffersComplete(); |
- EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
+ EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); |
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); |
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource3)); |
- // This completion corresponds to the second frame. |
+ // This completion corresponds to the second frame. The first resource is no |
+ // longer in use. |
+ ReturnResourceInUseQuery(resource1); |
SwapBuffersComplete(); |
EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
- EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); |
+ EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); |
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource3)); |
// This completion corresponds to the third frame. |
SwapBuffersComplete(); |
EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
+ EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2)); |
+ EXPECT_TRUE(resource_provider_->InUseByConsumer(resource3)); |
+ |
+ ReturnResourceInUseQuery(resource2); |
+ ReturnResourceInUseQuery(resource3); |
+ EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); |
EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2)); |
EXPECT_FALSE(resource_provider_->InUseByConsumer(resource3)); |
} |