summaryrefslogtreecommitdiffstats
path: root/cc/output
diff options
context:
space:
mode:
authoralokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 05:07:15 +0000
committeralokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 05:07:15 +0000
commitfbc293322412d2a41edd14dae1ae5cc6135f62ef (patch)
tree5bf315796ac3bec1931b41dc2b9eb55f75bdba9d /cc/output
parentbaed42c24524270f2927f9f2b1f78645a2a31afb (diff)
downloadchromium_src-fbc293322412d2a41edd14dae1ae5cc6135f62ef.zip
chromium_src-fbc293322412d2a41edd14dae1ae5cc6135f62ef.tar.gz
chromium_src-fbc293322412d2a41edd14dae1ae5cc6135f62ef.tar.bz2
cc: Delete RenderSurface caching.
RenderSurface caching has been disabled for some time and getting in the way of optimizing OcclusionTracker. The proposed optimization cannot distinguish between inside and outside occlusion, which is needed by surface caching. The proposed optimization for OcclusionTracker is here: https://codereview.chromium.org/23708021/ BUG=276725 Review URL: https://codereview.chromium.org/23792012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/output')
-rw-r--r--cc/output/direct_renderer.cc27
-rw-r--r--cc/output/direct_renderer.h26
-rw-r--r--cc/output/gl_renderer.cc2
-rw-r--r--cc/output/renderer.cc4
-rw-r--r--cc/output/renderer.h1
-rw-r--r--cc/output/software_renderer.cc2
6 files changed, 9 insertions, 53 deletions
diff --git a/cc/output/direct_renderer.cc b/cc/output/direct_renderer.cc
index bb85de9..d46f46d 100644
--- a/cc/output/direct_renderer.cc
+++ b/cc/output/direct_renderer.cc
@@ -154,7 +154,7 @@ void DirectRenderer::DecideRenderPassAllocationsForFrame(
render_passes_in_draw_order[i]->id, render_passes_in_draw_order[i]));
std::vector<RenderPass::Id> passes_to_delete;
- base::ScopedPtrHashMap<RenderPass::Id, CachedResource>::const_iterator
+ base::ScopedPtrHashMap<RenderPass::Id, ScopedResource>::const_iterator
pass_iter;
for (pass_iter = render_pass_textures_.begin();
pass_iter != render_pass_textures_.end();
@@ -170,7 +170,7 @@ void DirectRenderer::DecideRenderPassAllocationsForFrame(
gfx::Size required_size = RenderPassTextureSize(render_pass_in_frame);
ResourceFormat required_format =
RenderPassTextureFormat(render_pass_in_frame);
- CachedResource* texture = pass_iter->second;
+ ScopedResource* texture = pass_iter->second;
DCHECK(texture);
bool size_appropriate = texture->size().width() >= required_size.width() &&
@@ -187,8 +187,8 @@ void DirectRenderer::DecideRenderPassAllocationsForFrame(
for (size_t i = 0; i < render_passes_in_draw_order.size(); ++i) {
if (!render_pass_textures_.contains(render_passes_in_draw_order[i]->id)) {
- scoped_ptr<CachedResource> texture =
- CachedResource::Create(resource_provider_);
+ scoped_ptr<ScopedResource> texture =
+ ScopedResource::create(resource_provider_);
render_pass_textures_.set(render_passes_in_draw_order[i]->id,
texture.Pass());
}
@@ -381,12 +381,6 @@ void DirectRenderer::DrawRenderPass(DrawingFrame* frame,
DoDrawQuad(frame, *it);
}
FinishDrawingQuadList();
-
- CachedResource* texture = render_pass_textures_.get(render_pass->id);
- if (texture) {
- texture->set_is_complete(
- !render_pass->has_occlusion_from_outside_target_surface);
- }
}
bool DirectRenderer::UseRenderPass(DrawingFrame* frame,
@@ -406,7 +400,7 @@ bool DirectRenderer::UseRenderPass(DrawingFrame* frame,
if (!resource_provider_)
return false;
- CachedResource* texture = render_pass_textures_.get(render_pass->id);
+ ScopedResource* texture = render_pass_textures_.get(render_pass->id);
DCHECK(texture);
gfx::Size size = RenderPassTextureSize(render_pass);
@@ -421,18 +415,9 @@ bool DirectRenderer::UseRenderPass(DrawingFrame* frame,
return BindFramebufferToTexture(frame, texture, render_pass->output_rect);
}
-bool DirectRenderer::HaveCachedResourcesForRenderPassId(RenderPass::Id id)
- const {
- if (!settings_->cache_render_pass_contents)
- return false;
-
- CachedResource* texture = render_pass_textures_.get(id);
- return texture && texture->id() && texture->is_complete();
-}
-
bool DirectRenderer::HasAllocatedResourcesForTesting(RenderPass::Id id)
const {
- CachedResource* texture = render_pass_textures_.get(id);
+ ScopedResource* texture = render_pass_textures_.get(id);
return texture && texture->id();
}
diff --git a/cc/output/direct_renderer.h b/cc/output/direct_renderer.h
index dcb0426..a73c62d 100644
--- a/cc/output/direct_renderer.h
+++ b/cc/output/direct_renderer.h
@@ -29,8 +29,6 @@ class CC_EXPORT DirectRenderer : public Renderer {
virtual bool CanReadPixels() const OVERRIDE;
virtual void DecideRenderPassAllocationsForFrame(
const RenderPassList& render_passes_in_draw_order) OVERRIDE;
- virtual bool HaveCachedResourcesForRenderPassId(RenderPass::Id id) const
- OVERRIDE;
virtual bool HasAllocatedResourcesForTesting(RenderPass::Id id) const
OVERRIDE;
virtual void DrawFrame(RenderPassList* render_passes_in_draw_order,
@@ -62,28 +60,6 @@ class CC_EXPORT DirectRenderer : public Renderer {
OutputSurface* output_surface,
ResourceProvider* resource_provider);
- class CachedResource : public ScopedResource {
- public:
- static scoped_ptr<CachedResource> Create(
- ResourceProvider* resource_provider) {
- return make_scoped_ptr(new CachedResource(resource_provider));
- }
- virtual ~CachedResource() {}
-
- bool is_complete() const { return is_complete_; }
- void set_is_complete(bool is_complete) { is_complete_ = is_complete; }
-
- protected:
- explicit CachedResource(ResourceProvider* resource_provider)
- : ScopedResource(resource_provider),
- is_complete_(false) {}
-
- private:
- bool is_complete_;
-
- DISALLOW_COPY_AND_ASSIGN(CachedResource);
- };
-
static gfx::RectF QuadVertexRect();
static void QuadRectTransform(gfx::Transform* quad_rect_transform,
const gfx::Transform& quad_transform,
@@ -138,7 +114,7 @@ class CC_EXPORT DirectRenderer : public Renderer {
DrawingFrame* frame,
scoped_ptr<CopyOutputRequest> request) = 0;
- base::ScopedPtrHashMap<RenderPass::Id, CachedResource> render_pass_textures_;
+ base::ScopedPtrHashMap<RenderPass::Id, ScopedResource> render_pass_textures_;
OutputSurface* output_surface_;
ResourceProvider* resource_provider_;
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
index 99c4573..68fb456 100644
--- a/cc/output/gl_renderer.cc
+++ b/cc/output/gl_renderer.cc
@@ -732,7 +732,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
const RenderPassDrawQuad* quad) {
SetBlendEnabled(quad->ShouldDrawWithBlending());
- CachedResource* contents_texture =
+ ScopedResource* contents_texture =
render_pass_textures_.get(quad->render_pass_id);
if (!contents_texture || !contents_texture->id())
return;
diff --git a/cc/output/renderer.cc b/cc/output/renderer.cc
index bec001b..2fe0ef7 100644
--- a/cc/output/renderer.cc
+++ b/cc/output/renderer.cc
@@ -6,10 +6,6 @@
namespace cc {
-bool Renderer::HaveCachedResourcesForRenderPassId(RenderPass::Id id) const {
- return false;
-}
-
bool Renderer::HasAllocatedResourcesForTesting(RenderPass::Id id) const {
return false;
}
diff --git a/cc/output/renderer.h b/cc/output/renderer.h
index 59d41f4..b3ff65b 100644
--- a/cc/output/renderer.h
+++ b/cc/output/renderer.h
@@ -42,7 +42,6 @@ class CC_EXPORT Renderer {
virtual void DecideRenderPassAllocationsForFrame(
const RenderPassList& render_passes_in_draw_order) {}
- virtual bool HaveCachedResourcesForRenderPassId(RenderPass::Id id) const;
virtual bool HasAllocatedResourcesForTesting(RenderPass::Id id) const;
// This passes ownership of the render passes to the renderer. It should
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
index ace1b30..86d35c6 100644
--- a/cc/output/software_renderer.cc
+++ b/cc/output/software_renderer.cc
@@ -415,7 +415,7 @@ void SoftwareRenderer::DrawTileQuad(const DrawingFrame* frame,
void SoftwareRenderer::DrawRenderPassQuad(const DrawingFrame* frame,
const RenderPassDrawQuad* quad) {
- CachedResource* content_texture =
+ ScopedResource* content_texture =
render_pass_textures_.get(quad->render_pass_id);
if (!content_texture || !content_texture->id())
return;