| Index: cc/output/gl_renderer.cc
|
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
|
| index d3d4851682aee72852ed50da25067c24651b6f58..99f7456736c4dcbe83e500f95036378ddbe27c2d 100644
|
| --- a/cc/output/gl_renderer.cc
|
| +++ b/cc/output/gl_renderer.cc
|
| @@ -2660,6 +2660,8 @@ void GLRenderer::SwapBuffersComplete() {
|
| gl_->ScheduleCALayerInUseQueryCHROMIUM(textures.size(), textures.data());
|
| }
|
| } else if (swapping_overlay_resources_.size() > 1) {
|
| + ResourceProvider::ScopedBatchReturnResources returner(resource_provider_);
|
| +
|
| // If a query is not needed to release the overlay buffers, we can assume
|
| // that once a swap buffer has completed we can remove the oldest buffers
|
| // from the queue.
|
| @@ -2670,6 +2672,7 @@ void GLRenderer::SwapBuffersComplete() {
|
| void GLRenderer::DidReceiveTextureInUseResponses(
|
| const gpu::TextureInUseResponses& responses) {
|
| DCHECK(settings_->release_overlay_resources_after_gpu_query);
|
| + ResourceProvider::ScopedBatchReturnResources returner(resource_provider_);
|
| for (const gpu::TextureInUseResponse& response : responses) {
|
| if (!response.in_use) {
|
| swapped_and_acked_overlay_resources_.erase(response.texture);
|
| @@ -3214,13 +3217,15 @@ void GLRenderer::ScheduleDCLayers() {
|
| current_frame()->dc_layer_overlay_list) {
|
| DCHECK(!dc_layer_overlay.rpdq);
|
|
|
| - ResourceId contents_resource_id = dc_layer_overlay.contents_resource_id;
|
| unsigned texture_id = 0;
|
| - if (contents_resource_id) {
|
| - pending_overlay_resources_.push_back(
|
| - base::MakeUnique<ResourceProvider::ScopedReadLockGL>(
|
| - resource_provider_, contents_resource_id));
|
| - texture_id = pending_overlay_resources_.back()->texture_id();
|
| + for (const auto& contents_resource_id : dc_layer_overlay.resources) {
|
| + if (contents_resource_id) {
|
| + pending_overlay_resources_.push_back(
|
| + base::MakeUnique<ResourceProvider::ScopedReadLockGL>(
|
| + resource_provider_, contents_resource_id));
|
| + if (!texture_id)
|
| + texture_id = pending_overlay_resources_.back()->texture_id();
|
| + }
|
| }
|
| GLfloat contents_rect[4] = {
|
| dc_layer_overlay.contents_rect.x(), dc_layer_overlay.contents_rect.y(),
|
|
|