summaryrefslogtreecommitdiffstats
path: root/cc/layers
diff options
context:
space:
mode:
authordanakj <danakj@chromium.org>2015-04-24 15:19:02 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-24 22:19:05 +0000
commitf942757417b8472005abc6ef62dbc18d6d1bf86e (patch)
tree0c6d975f3bf95000ffe86e832a777cbda1fc31fd /cc/layers
parentf5f397bd63d605b746e3332d50a4c96258048760 (diff)
downloadchromium_src-f942757417b8472005abc6ef62dbc18d6d1bf86e.zip
chromium_src-f942757417b8472005abc6ef62dbc18d6d1bf86e.tar.gz
chromium_src-f942757417b8472005abc6ef62dbc18d6d1bf86e.tar.bz2
cc: Some more cleanup and removing TODOs for validating resources.
This adds a LayerImpl::ValidateQuadResources() that each layer can call on quads that it appends. This function is empty when DCHECKs are off, which means it should be cheap/free in release builds. R=piman@chromium.org BUG=475894 Review URL: https://codereview.chromium.org/1096703006 Cr-Commit-Position: refs/heads/master@{#326903}
Diffstat (limited to 'cc/layers')
-rw-r--r--cc/layers/delegated_renderer_layer_impl.cc16
-rw-r--r--cc/layers/heads_up_display_layer_impl.cc4
-rw-r--r--cc/layers/io_surface_layer_impl.cc4
-rw-r--r--cc/layers/layer_impl.cc17
-rw-r--r--cc/layers/layer_impl.h9
-rw-r--r--cc/layers/nine_patch_layer_impl.cc12
-rw-r--r--cc/layers/painted_scrollbar_layer_impl.cc6
-rw-r--r--cc/layers/picture_layer_impl.cc7
-rw-r--r--cc/layers/texture_layer_impl.cc3
-rw-r--r--cc/layers/tiled_layer_impl.cc4
-rw-r--r--cc/layers/ui_resource_layer_impl.cc4
-rw-r--r--cc/layers/video_layer_impl.cc28
12 files changed, 53 insertions, 61 deletions
diff --git a/cc/layers/delegated_renderer_layer_impl.cc b/cc/layers/delegated_renderer_layer_impl.cc
index aa16beb..7037038 100644
--- a/cc/layers/delegated_renderer_layer_impl.cc
+++ b/cc/layers/delegated_renderer_layer_impl.cc
@@ -408,14 +408,6 @@ void DelegatedRendererLayerImpl::AppendRainbowDebugBorder(
}
}
-// TODO(danakj): crbug.com/455931
-static ResourceProvider::ResourceId ValidateResource(
- ResourceProvider* provider,
- ResourceProvider::ResourceId id) {
- provider->ValidateResource(id);
- return id;
-}
-
void DelegatedRendererLayerImpl::AppendRenderPassQuads(
RenderPass* render_pass,
const RenderPass* delegated_render_pass,
@@ -487,9 +479,7 @@ void DelegatedRendererLayerImpl::AppendRenderPassQuads(
DrawQuad* output_quad = render_pass->CopyFromAndAppendDrawQuad(
delegated_quad, output_shared_quad_state);
output_quad->visible_rect = quad_visible_rect;
- // TODO(danakj): crbug.com/455931
- output_quad->IterateResources(base::Bind(
- &ValidateResource, layer_tree_impl()->resource_provider()));
+ ValidateQuadResources(output_quad);
} else {
RenderPassId delegated_contributing_render_pass_id =
RenderPassDrawQuad::MaterialCast(delegated_quad)->render_pass_id;
@@ -507,9 +497,7 @@ void DelegatedRendererLayerImpl::AppendRenderPassQuads(
RenderPassDrawQuad::MaterialCast(delegated_quad),
output_shared_quad_state, output_contributing_render_pass_id);
output_quad->visible_rect = quad_visible_rect;
- // TODO(danakj): crbug.com/455931
- output_quad->IterateResources(base::Bind(
- &ValidateResource, layer_tree_impl()->resource_provider()));
+ ValidateQuadResources(output_quad);
}
}
}
diff --git a/cc/layers/heads_up_display_layer_impl.cc b/cc/layers/heads_up_display_layer_impl.cc
index 3eacbbd..7d449b7 100644
--- a/cc/layers/heads_up_display_layer_impl.cc
+++ b/cc/layers/heads_up_display_layer_impl.cc
@@ -159,9 +159,6 @@ void HeadsUpDisplayLayerImpl::AppendQuads(
bool nearest_neighbor = false;
TextureDrawQuad* quad =
render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- resources_.back()->id());
quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
@@ -174,6 +171,7 @@ void HeadsUpDisplayLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
void HeadsUpDisplayLayerImpl::UpdateHudTexture(
diff --git a/cc/layers/io_surface_layer_impl.cc b/cc/layers/io_surface_layer_impl.cc
index f9acc68..a7da986 100644
--- a/cc/layers/io_surface_layer_impl.cc
+++ b/cc/layers/io_surface_layer_impl.cc
@@ -77,9 +77,6 @@ void IOSurfaceLayerImpl::AppendQuads(
if (visible_quad_rect.IsEmpty())
return;
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- io_surface_resource_id_);
IOSurfaceDrawQuad* quad =
render_pass->CreateAndAppendDrawQuad<IOSurfaceDrawQuad>();
quad->SetNew(shared_quad_state,
@@ -89,6 +86,7 @@ void IOSurfaceLayerImpl::AppendQuads(
io_surface_size_,
io_surface_resource_id_,
IOSurfaceDrawQuad::FLIPPED);
+ ValidateQuadResources(quad);
}
void IOSurfaceLayerImpl::ReleaseResources() {
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index 5655596..c47e50c 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -746,6 +746,23 @@ void LayerImpl::NoteLayerPropertyChangedForDescendants() {
SetNeedsPushProperties();
}
+#if DCHECK_IS_ON()
+// Verify that the resource id is valid.
+static ResourceProvider::ResourceId ValidateResource(
+ const ResourceProvider* provider,
+ ResourceProvider::ResourceId id) {
+ provider->ValidateResource(id);
+ return id;
+}
+#endif
+
+void LayerImpl::ValidateQuadResourcesInternal(DrawQuad* quad) const {
+#if DCHECK_IS_ON()
+ quad->IterateResources(
+ base::Bind(&ValidateResource, layer_tree_impl_->resource_provider()));
+#endif
+}
+
const char* LayerImpl::LayerTypeAsString() const {
return "cc::LayerImpl";
}
diff --git a/cc/layers/layer_impl.h b/cc/layers/layer_impl.h
index 730b188..f3eb4ce 100644
--- a/cc/layers/layer_impl.h
+++ b/cc/layers/layer_impl.h
@@ -247,6 +247,13 @@ class CC_EXPORT LayerImpl : public LayerAnimationValueObserver,
AppendQuadsData* append_quads_data) {}
virtual void DidDraw(ResourceProvider* resource_provider);
+ // Verify that the resource ids in the quad are valid.
+ void ValidateQuadResources(DrawQuad* quad) const {
+#if DCHECK_IS_ON()
+ ValidateQuadResourcesInternal(quad);
+#endif
+ }
+
virtual void GetContentsResourceId(ResourceProvider::ResourceId* resource_id,
gfx::Size* resource_size) const;
@@ -669,6 +676,8 @@ class CC_EXPORT LayerImpl : public LayerAnimationValueObserver,
gfx::Rect GetScaledEnclosingRectInTargetSpace(float scale) const;
private:
+ void ValidateQuadResourcesInternal(DrawQuad* quad) const;
+
void PushScrollOffset(const gfx::ScrollOffset* scroll_offset);
// If the new scroll offset is assigned from the root scroll offset delegate,
// LayerImpl won't inform the root scroll offset delegate about the scroll
diff --git a/cc/layers/nine_patch_layer_impl.cc b/cc/layers/nine_patch_layer_impl.cc
index 898e6b5..fc2f457 100644
--- a/cc/layers/nine_patch_layer_impl.cc
+++ b/cc/layers/nine_patch_layer_impl.cc
@@ -100,9 +100,6 @@ void NinePatchLayerImpl::AppendQuads(
if (!resource)
return;
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(resource);
-
static const bool flipped = false;
static const bool nearest_neighbor = false;
static const bool premultiplied_alpha = true;
@@ -234,6 +231,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
visible_rect =
@@ -255,6 +253,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
visible_rect =
@@ -276,6 +275,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
visible_rect =
@@ -297,6 +297,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
visible_rect =
@@ -318,6 +319,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
visible_rect =
@@ -339,6 +341,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
visible_rect =
@@ -360,6 +363,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
visible_rect =
@@ -381,6 +385,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
if (fill_center_) {
@@ -403,6 +408,7 @@ void NinePatchLayerImpl::AppendQuads(
vertex_opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
}
}
diff --git a/cc/layers/painted_scrollbar_layer_impl.cc b/cc/layers/painted_scrollbar_layer_impl.cc
index ad98c4f..005e087 100644
--- a/cc/layers/painted_scrollbar_layer_impl.cc
+++ b/cc/layers/painted_scrollbar_layer_impl.cc
@@ -103,14 +103,13 @@ void PaintedScrollbarLayerImpl::AppendQuads(
if (thumb_resource_id && !visible_thumb_quad_rect.IsEmpty()) {
gfx::Rect opaque_rect;
const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(thumb_resource_id);
TextureDrawQuad* quad =
render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
quad->SetNew(shared_quad_state, scaled_thumb_quad_rect, opaque_rect,
scaled_visible_thumb_quad_rect, thumb_resource_id,
premultipled_alpha, uv_top_left, uv_bottom_right,
SK_ColorTRANSPARENT, opacity, flipped, nearest_neighbor);
+ ValidateQuadResources(quad);
}
gfx::Rect track_quad_rect(bounds());
@@ -124,14 +123,13 @@ void PaintedScrollbarLayerImpl::AppendQuads(
gfx::Rect opaque_rect(contents_opaque() ? scaled_track_quad_rect
: gfx::Rect());
const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(track_resource_id);
TextureDrawQuad* quad =
render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
quad->SetNew(shared_quad_state, scaled_track_quad_rect, opaque_rect,
scaled_visible_track_quad_rect, track_resource_id,
premultipled_alpha, uv_top_left, uv_bottom_right,
SK_ColorTRANSPARENT, opacity, flipped, nearest_neighbor);
+ ValidateQuadResources(quad);
}
}
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index 3fb0256..34a7599 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -208,6 +208,7 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass,
visible_geometry_rect, texture_rect, texture_size,
nearest_neighbor_, RGBA_8888, quad_content_rect,
max_contents_scale, raster_source_);
+ ValidateQuadResources(quad);
return;
}
@@ -305,15 +306,13 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass,
append_quads_data->num_incomplete_tiles++;
}
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- draw_info.resource_id());
TileDrawQuad* quad =
render_pass->CreateAndAppendDrawQuad<TileDrawQuad>();
quad->SetNew(shared_quad_state, geometry_rect, opaque_rect,
visible_geometry_rect, draw_info.resource_id(),
texture_rect, draw_info.resource_size(),
draw_info.contents_swizzled(), nearest_neighbor_);
+ ValidateQuadResources(quad);
has_draw_quad = true;
break;
}
@@ -322,6 +321,7 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass,
render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
quad->SetNew(shared_quad_state, geometry_rect, visible_geometry_rect,
draw_info.solid_color(), false);
+ ValidateQuadResources(quad);
has_draw_quad = true;
break;
}
@@ -346,6 +346,7 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass,
visible_geometry_rect,
color,
false);
+ ValidateQuadResources(quad);
}
if (geometry_rect.Intersects(scaled_viewport_for_tile_priority)) {
diff --git a/cc/layers/texture_layer_impl.cc b/cc/layers/texture_layer_impl.cc
index 5df00b8..a7775c9 100644
--- a/cc/layers/texture_layer_impl.cc
+++ b/cc/layers/texture_layer_impl.cc
@@ -167,8 +167,6 @@ void TextureLayerImpl::AppendQuads(RenderPass* render_pass,
render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
ResourceProvider::ResourceId id =
valid_texture_copy_ ? texture_copy_->id() : external_texture_resource_;
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(id);
quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
@@ -181,6 +179,7 @@ void TextureLayerImpl::AppendQuads(RenderPass* render_pass,
vertex_opacity_,
flipped_,
nearest_neighbor_);
+ ValidateQuadResources(quad);
}
SimpleEnclosedRegion TextureLayerImpl::VisibleContentOpaqueRegion() const {
diff --git a/cc/layers/tiled_layer_impl.cc b/cc/layers/tiled_layer_impl.cc
index f2b2b00..85b1115 100644
--- a/cc/layers/tiled_layer_impl.cc
+++ b/cc/layers/tiled_layer_impl.cc
@@ -260,9 +260,6 @@ void TiledLayerImpl::AppendQuads(RenderPass* render_pass,
float tile_height = static_cast<float>(tiler_->tile_size().height());
gfx::Size texture_size(tile_width, tile_height);
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- tile->resource_id());
TileDrawQuad* quad = render_pass->CreateAndAppendDrawQuad<TileDrawQuad>();
quad->SetNew(shared_quad_state,
tile_rect,
@@ -273,6 +270,7 @@ void TiledLayerImpl::AppendQuads(RenderPass* render_pass,
texture_size,
tile->contents_swizzled(),
false);
+ ValidateQuadResources(quad);
}
}
}
diff --git a/cc/layers/ui_resource_layer_impl.cc b/cc/layers/ui_resource_layer_impl.cc
index 5986bec..582ea9e 100644
--- a/cc/layers/ui_resource_layer_impl.cc
+++ b/cc/layers/ui_resource_layer_impl.cc
@@ -110,9 +110,6 @@ void UIResourceLayerImpl::AppendQuads(
if (!resource)
return;
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(resource);
-
static const bool flipped = false;
static const bool nearest_neighbor = false;
static const bool premultiplied_alpha = true;
@@ -144,6 +141,7 @@ void UIResourceLayerImpl::AppendQuads(
vertex_opacity_,
flipped,
nearest_neighbor);
+ ValidateQuadResources(quad);
}
const char* UIResourceLayerImpl::LayerTypeAsString() const {
diff --git a/cc/layers/video_layer_impl.cc b/cc/layers/video_layer_impl.cc
index 5c36e99..5171971 100644
--- a/cc/layers/video_layer_impl.cc
+++ b/cc/layers/video_layer_impl.cc
@@ -202,9 +202,6 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
bool flipped = false;
bool nearest_neighbor = false;
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- software_resources_[0]);
TextureDrawQuad* texture_quad =
render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
texture_quad->SetNew(shared_quad_state,
@@ -219,6 +216,7 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(texture_quad);
break;
}
case VideoFrameExternalResources::YUV_RESOURCE: {
@@ -244,17 +242,6 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
frame_->format(), media::VideoFrame::kAPlane, coded_size));
}
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- frame_resources_[0]);
- layer_tree_impl()->resource_provider()->ValidateResource(
- frame_resources_[1]);
- layer_tree_impl()->resource_provider()->ValidateResource(
- frame_resources_[2]);
- if (frame_resources_.size() > 3) {
- layer_tree_impl()->resource_provider()->ValidateResource(
- frame_resources_[3]);
- }
gfx::RectF tex_coord_rect(
tex_x_offset, tex_y_offset, tex_width_scale, tex_height_scale);
YUVVideoDrawQuad* yuv_video_quad =
@@ -264,6 +251,7 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
tex_coord_rect, ya_tex_size, uv_tex_size, frame_resources_[0],
frame_resources_[1], frame_resources_[2],
frame_resources_.size() > 3 ? frame_resources_[3] : 0, color_space);
+ ValidateQuadResources(yuv_video_quad);
break;
}
case VideoFrameExternalResources::RGB_RESOURCE: {
@@ -276,9 +264,6 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
bool flipped = false;
bool nearest_neighbor = false;
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- frame_resources_[0]);
TextureDrawQuad* texture_quad =
render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
texture_quad->SetNew(shared_quad_state,
@@ -293,15 +278,13 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
opacity,
flipped,
nearest_neighbor);
+ ValidateQuadResources(texture_quad);
break;
}
case VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE: {
DCHECK_EQ(frame_resources_.size(), 1u);
if (frame_resources_.size() < 1u)
break;
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- frame_resources_[0]);
gfx::Transform scale;
scale.Scale(tex_width_scale, tex_height_scale);
StreamVideoDrawQuad* stream_video_quad =
@@ -310,15 +293,13 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
shared_quad_state, quad_rect, opaque_rect, visible_quad_rect,
frame_resources_[0],
scale * provider_client_impl_->StreamTextureMatrix());
+ ValidateQuadResources(stream_video_quad);
break;
}
case VideoFrameExternalResources::IO_SURFACE: {
DCHECK_EQ(frame_resources_.size(), 1u);
if (frame_resources_.size() < 1u)
break;
- // TODO(danakj): crbug.com/455931
- layer_tree_impl()->resource_provider()->ValidateResource(
- frame_resources_[0]);
IOSurfaceDrawQuad* io_surface_quad =
render_pass->CreateAndAppendDrawQuad<IOSurfaceDrawQuad>();
io_surface_quad->SetNew(shared_quad_state,
@@ -328,6 +309,7 @@ void VideoLayerImpl::AppendQuads(RenderPass* render_pass,
visible_rect.size(),
frame_resources_[0],
IOSurfaceDrawQuad::UNFLIPPED);
+ ValidateQuadResources(io_surface_quad);
break;
}
#if defined(VIDEO_HOLE)