summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-08 01:29:40 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-08 01:29:40 +0000
commit63487d2c29b397ad7a4ef1ef5f0d2ee8509222c6 (patch)
tree5930c11a85472f328d93f0b7c317e090435a9d08 /cc
parentbbe7250added91877c9570465a407aab4a2a7e7e (diff)
downloadchromium_src-63487d2c29b397ad7a4ef1ef5f0d2ee8509222c6.zip
chromium_src-63487d2c29b397ad7a4ef1ef5f0d2ee8509222c6.tar.gz
chromium_src-63487d2c29b397ad7a4ef1ef5f0d2ee8509222c6.tar.bz2
Rename discardFramebufferEXT to discardBackbufferCHROMIUM to avoid collision with real discardFramebufferEXT
Calling the (real) discardFramebufferEXT in the compositor is a performance win, at least on tilers. However currently it can't be called because we alias the name for a different API that controls backbuffer allocation, which I don't want to change. This renames the code to make backbuffer control a completely separate API so I can pipe GL_EXT_discard_framebuffer in fully as a follow-up. Depends on https://bugs.webkit.org/show_bug.cgi?id=104316 BUG= Review URL: https://chromiumcodereview.appspot.com/11474014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171908 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/gl_renderer.cc45
-rw-r--r--cc/gl_renderer.h10
-rw-r--r--cc/gl_renderer_unittest.cc36
-rw-r--r--cc/layer_tree_host.cc2
-rw-r--r--cc/layer_tree_host.h2
5 files changed, 47 insertions, 48 deletions
diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc
index e625362..e9a76c1 100644
--- a/cc/gl_renderer.cc
+++ b/cc/gl_renderer.cc
@@ -74,8 +74,8 @@ GLRenderer::GLRenderer(RendererClient* client, ResourceProvider* resourceProvide
, m_sharedGeometryQuad(gfx::RectF(-0.5f, -0.5f, 1.0f, 1.0f))
, m_context(resourceProvider->graphicsContext3D())
, m_isViewportChanged(false)
- , m_isFramebufferDiscarded(false)
- , m_discardFramebufferWhenNotVisible(false)
+ , m_isBackbufferDiscarded(false)
+ , m_discardBackbufferWhenNotVisible(false)
, m_isUsingBindUniform(false)
, m_visible(true)
, m_isScissorEnabled(false)
@@ -119,7 +119,7 @@ bool GLRenderer::initialize()
if (m_capabilities.usingGpuMemoryManager)
m_context->setMemoryAllocationChangedCallbackCHROMIUM(this);
- m_capabilities.usingDiscardFramebuffer = extensions.count("GL_CHROMIUM_discard_framebuffer");
+ m_capabilities.usingDiscardBackbuffer = extensions.count("GL_CHROMIUM_discard_backbuffer");
m_capabilities.usingEglImage = extensions.count("GL_OES_EGL_image_external");
@@ -188,7 +188,7 @@ void GLRenderer::sendManagedMemoryStats(size_t bytesVisible, size_t bytesVisible
stats.bytesVisible = bytesVisible;
stats.bytesVisibleAndNearby = bytesVisibleAndNearby;
stats.bytesAllocated = bytesAllocated;
- stats.backbufferRequested = !m_isFramebufferDiscarded;
+ stats.backbufferRequested = !m_isBackbufferDiscarded;
m_context->sendManagedMemoryStatsCHROMIUM(&stats);
}
@@ -218,8 +218,8 @@ void GLRenderer::clearFramebuffer(DrawingFrame& frame)
void GLRenderer::beginDrawingFrame(DrawingFrame& frame)
{
- // FIXME: Remove this once framebuffer is automatically recreated on first use
- ensureFramebuffer();
+ // FIXME: Remove this once backbuffer is automatically recreated on first use
+ ensureBackbuffer();
if (viewportSize().IsEmpty())
return;
@@ -1242,7 +1242,7 @@ void GLRenderer::finish()
bool GLRenderer::swapBuffers()
{
DCHECK(m_visible);
- DCHECK(!m_isFramebufferDiscarded);
+ DCHECK(!m_isBackbufferDiscarded);
TRACE_EVENT0("cc", "GLRenderer::swapBuffers");
// We're done! Time to swapbuffers!
@@ -1286,11 +1286,11 @@ void GLRenderer::onMemoryAllocationChanged(WebGraphicsMemoryAllocation allocatio
m_client->setManagedMemoryPolicy(policy);
}
- bool oldDiscardFramebufferWhenNotVisible = m_discardFramebufferWhenNotVisible;
- m_discardFramebufferWhenNotVisible = !allocation.suggestHaveBackbuffer;
+ bool oldDiscardBackbufferWhenNotVisible = m_discardBackbufferWhenNotVisible;
+ m_discardBackbufferWhenNotVisible = !allocation.suggestHaveBackbuffer;
enforceMemoryPolicy();
if (allocation.enforceButDoNotKeepAsPolicy)
- m_discardFramebufferWhenNotVisible = oldDiscardFramebufferWhenNotVisible;
+ m_discardBackbufferWhenNotVisible = oldDiscardBackbufferWhenNotVisible;
}
int GLRenderer::priorityCutoffValue(WebKit::WebGraphicsMemoryAllocation::PriorityCutoff priorityCutoff)
@@ -1314,38 +1314,37 @@ void GLRenderer::enforceMemoryPolicy()
if (!m_visible) {
TRACE_EVENT0("cc", "GLRenderer::enforceMemoryPolicy dropping resources");
releaseRenderPassTextures();
- if (m_discardFramebufferWhenNotVisible)
- discardFramebuffer();
+ if (m_discardBackbufferWhenNotVisible)
+ discardBackbuffer();
GLC(m_context, m_context->flush());
}
}
-void GLRenderer::discardFramebuffer()
+void GLRenderer::discardBackbuffer()
{
- if (m_isFramebufferDiscarded)
+ if (m_isBackbufferDiscarded)
return;
- if (!m_capabilities.usingDiscardFramebuffer)
+ if (!m_capabilities.usingDiscardBackbuffer)
return;
- // FIXME: Update attachments argument to appropriate values once they are no longer ignored.
- m_context->discardFramebufferEXT(GL_TEXTURE_2D, 0, 0);
- m_isFramebufferDiscarded = true;
+ m_context->discardBackbufferCHROMIUM();
+ m_isBackbufferDiscarded = true;
// Damage tracker needs a full reset every time framebuffer is discarded.
m_client->setFullRootLayerDamage();
}
-void GLRenderer::ensureFramebuffer()
+void GLRenderer::ensureBackbuffer()
{
- if (!m_isFramebufferDiscarded)
+ if (!m_isBackbufferDiscarded)
return;
- if (!m_capabilities.usingDiscardFramebuffer)
+ if (!m_capabilities.usingDiscardBackbuffer)
return;
- m_context->ensureFramebufferCHROMIUM();
- m_isFramebufferDiscarded = false;
+ m_context->ensureBackbufferCHROMIUM();
+ m_isBackbufferDiscarded = false;
}
void GLRenderer::onContextLost()
diff --git a/cc/gl_renderer.h b/cc/gl_renderer.h
index 653b4ac..4cfdfc0 100644
--- a/cc/gl_renderer.h
+++ b/cc/gl_renderer.h
@@ -68,7 +68,7 @@ protected:
static void debugGLCall(WebKit::WebGraphicsContext3D*, const char* command, const char* file, int line);
- bool isFramebufferDiscarded() const { return m_isFramebufferDiscarded; }
+ bool isBackbufferDiscarded() const { return m_isBackbufferDiscarded; }
bool initialize();
const gfx::QuadF& sharedGeometryQuad() const { return m_sharedGeometryQuad; }
@@ -130,8 +130,8 @@ private:
// WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM implementation.
virtual void onMemoryAllocationChanged(WebKit::WebGraphicsMemoryAllocation) OVERRIDE;
- void discardFramebuffer();
- void ensureFramebuffer();
+ void discardBackbuffer();
+ void ensureBackbuffer();
void enforceMemoryPolicy();
// WebGraphicsContext3D::WebGraphicsContextLostCallback implementation.
@@ -222,8 +222,8 @@ private:
gfx::Rect m_swapBufferRect;
gfx::Rect m_scissorRect;
bool m_isViewportChanged;
- bool m_isFramebufferDiscarded;
- bool m_discardFramebufferWhenNotVisible;
+ bool m_isBackbufferDiscarded;
+ bool m_discardBackbufferWhenNotVisible;
bool m_isUsingBindUniform;
bool m_visible;
bool m_isScissorEnabled;
diff --git a/cc/gl_renderer_unittest.cc b/cc/gl_renderer_unittest.cc
index e4dcc54..48922e3 100644
--- a/cc/gl_renderer_unittest.cc
+++ b/cc/gl_renderer_unittest.cc
@@ -40,7 +40,7 @@ public:
virtual WebString getString(WebKit::WGC3Denum name)
{
if (name == GL_EXTENSIONS)
- return WebString("GL_CHROMIUM_set_visibility GL_CHROMIUM_gpu_memory_manager GL_CHROMIUM_discard_framebuffer");
+ return WebString("GL_CHROMIUM_set_visibility GL_CHROMIUM_gpu_memory_manager GL_CHROMIUM_discard_backbuffer");
return WebString();
}
@@ -112,7 +112,7 @@ public:
// Changing visibility to public.
using GLRenderer::initialize;
- using GLRenderer::isFramebufferDiscarded;
+ using GLRenderer::isBackbufferDiscarded;
using GLRenderer::drawQuad;
using GLRenderer::beginDrawingFrame;
using GLRenderer::finishDrawingQuadList;
@@ -150,20 +150,20 @@ protected:
FakeRendererGL m_renderer;
};
-// Test GLRenderer discardFramebuffer functionality:
+// Test GLRenderer discardBackbuffer functionality:
// Suggest recreating framebuffer when one already exists.
// Expected: it does nothing.
TEST_F(GLRendererTest, SuggestBackbufferYesWhenItAlreadyExistsShouldDoNothing)
{
context()->setMemoryAllocation(m_suggestHaveBackbufferYes);
EXPECT_EQ(0, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_FALSE(m_renderer.isFramebufferDiscarded());
+ EXPECT_FALSE(m_renderer.isBackbufferDiscarded());
swapBuffers();
EXPECT_EQ(1, context()->frameCount());
}
-// Test GLRenderer discardFramebuffer functionality:
+// Test GLRenderer discardBackbuffer functionality:
// Suggest discarding framebuffer when one exists and the renderer is not visible.
// Expected: it is discarded and damage tracker is reset.
TEST_F(GLRendererTest, SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerWhileNotVisible)
@@ -171,10 +171,10 @@ TEST_F(GLRendererTest, SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLa
m_renderer.setVisible(false);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isBackbufferDiscarded());
}
-// Test GLRenderer discardFramebuffer functionality:
+// Test GLRenderer discardBackbuffer functionality:
// Suggest discarding framebuffer when one exists and the renderer is visible.
// Expected: the allocation is ignored.
TEST_F(GLRendererTest, SuggestBackbufferNoDoNothingWhenVisible)
@@ -182,11 +182,11 @@ TEST_F(GLRendererTest, SuggestBackbufferNoDoNothingWhenVisible)
m_renderer.setVisible(true);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
EXPECT_EQ(0, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_FALSE(m_renderer.isFramebufferDiscarded());
+ EXPECT_FALSE(m_renderer.isBackbufferDiscarded());
}
-// Test GLRenderer discardFramebuffer functionality:
+// Test GLRenderer discardBackbuffer functionality:
// Suggest discarding framebuffer when one does not exist.
// Expected: it does nothing.
TEST_F(GLRendererTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing)
@@ -194,26 +194,26 @@ TEST_F(GLRendererTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing)
m_renderer.setVisible(false);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isBackbufferDiscarded());
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
- EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isBackbufferDiscarded());
}
-// Test GLRenderer discardFramebuffer functionality:
+// Test GLRenderer discardBackbuffer functionality:
// Begin drawing a frame while a framebuffer is discarded.
// Expected: will recreate framebuffer.
TEST_F(GLRendererTest, DiscardedBackbufferIsRecreatedForScopeDuration)
{
m_renderer.setVisible(false);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
- EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isBackbufferDiscarded());
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
m_renderer.setVisible(true);
m_renderer.drawFrame(m_mockClient.renderPassesInDrawOrder(), m_mockClient.renderPasses());
- EXPECT_FALSE(m_renderer.isFramebufferDiscarded());
+ EXPECT_FALSE(m_renderer.isBackbufferDiscarded());
swapBuffers();
EXPECT_EQ(1, context()->frameCount());
@@ -223,15 +223,15 @@ TEST_F(GLRendererTest, FramebufferDiscardedAfterReadbackWhenNotVisible)
{
m_renderer.setVisible(false);
context()->setMemoryAllocation(m_suggestHaveBackbufferNo);
- EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isBackbufferDiscarded());
EXPECT_EQ(1, m_mockClient.setFullRootLayerDamageCount());
char pixels[4];
m_renderer.drawFrame(m_mockClient.renderPassesInDrawOrder(), m_mockClient.renderPasses());
- EXPECT_FALSE(m_renderer.isFramebufferDiscarded());
+ EXPECT_FALSE(m_renderer.isBackbufferDiscarded());
m_renderer.getFramebufferPixels(pixels, gfx::Rect(0, 0, 1, 1));
- EXPECT_TRUE(m_renderer.isFramebufferDiscarded());
+ EXPECT_TRUE(m_renderer.isBackbufferDiscarded());
EXPECT_EQ(2, m_mockClient.setFullRootLayerDamageCount());
}
@@ -457,7 +457,7 @@ public:
virtual WebString getString(WebKit::WGC3Denum name)
{
if (name == GL_EXTENSIONS)
- return WebString("GL_CHROMIUM_set_visibility GL_CHROMIUM_gpu_memory_manager GL_CHROMIUM_discard_framebuffer");
+ return WebString("GL_CHROMIUM_set_visibility GL_CHROMIUM_gpu_memory_manager GL_CHROMIUM_discard_backbuffer");
return WebString();
}
diff --git a/cc/layer_tree_host.cc b/cc/layer_tree_host.cc
index 00a7b68..948e0b9 100644
--- a/cc/layer_tree_host.cc
+++ b/cc/layer_tree_host.cc
@@ -152,7 +152,7 @@ RendererCapabilities::RendererCapabilities()
, usingSetVisibility(false)
, usingSwapCompleteCallback(false)
, usingGpuMemoryManager(false)
- , usingDiscardFramebuffer(false)
+ , usingDiscardBackbuffer(false)
, usingEglImage(false)
, allowPartialTextureUpdates(false)
, maxTextureSize(0)
diff --git a/cc/layer_tree_host.h b/cc/layer_tree_host.h
index 21af798..3f6b9ba 100644
--- a/cc/layer_tree_host.h
+++ b/cc/layer_tree_host.h
@@ -117,7 +117,7 @@ struct CC_EXPORT RendererCapabilities {
bool usingSetVisibility;
bool usingSwapCompleteCallback;
bool usingGpuMemoryManager;
- bool usingDiscardFramebuffer;
+ bool usingDiscardBackbuffer;
bool usingEglImage;
bool allowPartialTextureUpdates;
int maxTextureSize;