summaryrefslogtreecommitdiffstats
path: root/cc/output
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-06 12:15:10 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-06 12:15:10 +0000
commitaa8be181b085366e165c8fdcbf0f951f094d2b45 (patch)
tree4a97e75ab8d68a26e48749e3c1394e6f397c26f5 /cc/output
parent94741f033be369b57e0d1d879add0b8da0dff8ba (diff)
downloadchromium_src-aa8be181b085366e165c8fdcbf0f951f094d2b45.zip
chromium_src-aa8be181b085366e165c8fdcbf0f951f094d2b45.tar.gz
chromium_src-aa8be181b085366e165c8fdcbf0f951f094d2b45.tar.bz2
Remove always-on compositor capabilities
All context implementations the compositor uses support the following capabilities: - discard_backbuffer - set_visibility - map_sub - shallow_flush so there's no point in passing these values or, even worse, branching on them. R=piman Review URL: https://codereview.chromium.org/94113004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239171 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/output')
-rw-r--r--cc/output/context_provider.cc12
-rw-r--r--cc/output/context_provider.h4
-rw-r--r--cc/output/delegating_renderer.cc13
-rw-r--r--cc/output/gl_renderer.cc5
-rw-r--r--cc/output/gl_renderer_unittest.cc11
-rw-r--r--cc/output/output_surface.cc8
-rw-r--r--cc/output/output_surface.h1
-rw-r--r--cc/output/software_renderer.cc1
8 files changed, 12 insertions, 43 deletions
diff --git a/cc/output/context_provider.cc b/cc/output/context_provider.cc
index e8e5c9d..454d96b 100644
--- a/cc/output/context_provider.cc
+++ b/cc/output/context_provider.cc
@@ -9,15 +9,11 @@
namespace cc {
ContextProvider::Capabilities::Capabilities()
- : discard_backbuffer(false),
- egl_image_external(false),
+ : egl_image_external(false),
fast_npot_mo8_textures(false),
iosurface(false),
map_image(false),
- map_sub(false),
post_sub_buffer(false),
- set_visibility(false),
- shallow_flush(false),
swapbuffers_complete_callback(false),
texture_format_bgra8888(false),
texture_format_etc1(false),
@@ -29,15 +25,11 @@ ContextProvider::Capabilities::Capabilities()
ContextProvider::Capabilities::Capabilities(
const gpu::Capabilities& gpu_capabilities)
- : discard_backbuffer(false),
- egl_image_external(gpu_capabilities.egl_image_external),
+ : egl_image_external(gpu_capabilities.egl_image_external),
fast_npot_mo8_textures(gpu_capabilities.fast_npot_mo8_textures),
iosurface(gpu_capabilities.iosurface),
map_image(gpu_capabilities.map_image),
- map_sub(false),
post_sub_buffer(gpu_capabilities.post_sub_buffer),
- set_visibility(false),
- shallow_flush(false),
swapbuffers_complete_callback(false),
texture_format_bgra8888(gpu_capabilities.texture_format_bgra8888),
texture_format_etc1(gpu_capabilities.texture_format_etc1),
diff --git a/cc/output/context_provider.h b/cc/output/context_provider.h
index 8649421..09b1835 100644
--- a/cc/output/context_provider.h
+++ b/cc/output/context_provider.h
@@ -34,15 +34,11 @@ class ContextProvider : public base::RefCountedThreadSafe<ContextProvider> {
virtual class GrContext* GrContext() = 0;
struct Capabilities {
- bool discard_backbuffer : 1;
bool egl_image_external : 1;
bool fast_npot_mo8_textures : 1;
bool iosurface : 1;
bool map_image : 1;
- bool map_sub : 1;
bool post_sub_buffer : 1;
- bool set_visibility : 1;
- bool shallow_flush : 1;
bool swapbuffers_complete_callback : 1;
bool texture_format_bgra8888 : 1;
bool texture_format_etc1 : 1;
diff --git a/cc/output/delegating_renderer.cc b/cc/output/delegating_renderer.cc
index 918491d..001b7fd 100644
--- a/cc/output/delegating_renderer.cc
+++ b/cc/output/delegating_renderer.cc
@@ -78,7 +78,6 @@ bool DelegatingRenderer::Initialize() {
DCHECK(!caps.iosurface || caps.texture_rectangle);
- capabilities_.using_set_visibility = caps.set_visibility;
capabilities_.using_egl_image = caps.egl_image_external;
capabilities_.using_map_image = settings_->use_map_image && caps.map_image;
@@ -162,13 +161,11 @@ void DelegatingRenderer::SetVisible(bool visible) {
if (context_provider)
context_provider->Context3d()->flush();
}
- if (capabilities_.using_set_visibility) {
- // We loop visibility to the GPU process, since that's what manages memory.
- // That will allow it to feed us with memory allocations that we can act
- // upon.
- DCHECK(context_provider);
- context_provider->Context3d()->setVisibilityCHROMIUM(visible);
- }
+ // We loop visibility to the GPU process, since that's what manages memory.
+ // That will allow it to feed us with memory allocations that we can act
+ // upon.
+ DCHECK(context_provider);
+ context_provider->Context3d()->setVisibilityCHROMIUM(visible);
}
void DelegatingRenderer::SendManagedMemoryStats(size_t bytes_visible,
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
index 3bf0d5b..16bdd31 100644
--- a/cc/output/gl_renderer.cc
+++ b/cc/output/gl_renderer.cc
@@ -202,8 +202,6 @@ bool GLRenderer::Initialize() {
capabilities_.using_partial_swap =
settings_->partial_swap_enabled && context_caps.post_sub_buffer;
- capabilities_.using_set_visibility = context_caps.set_visibility;
-
DCHECK(!context_caps.iosurface || context_caps.texture_rectangle);
capabilities_.using_egl_image = context_caps.egl_image_external;
@@ -283,8 +281,7 @@ void GLRenderer::SetVisible(bool visible) {
// TODO(jamesr): Replace setVisibilityCHROMIUM() with an extension to
// explicitly manage front/backbuffers
// crbug.com/116049
- if (capabilities_.using_set_visibility)
- context_->setVisibilityCHROMIUM(visible);
+ context_->setVisibilityCHROMIUM(visible);
}
void GLRenderer::SendManagedMemoryStats(size_t bytes_visible,
diff --git a/cc/output/gl_renderer_unittest.cc b/cc/output/gl_renderer_unittest.cc
index 6288c5d..773768e 100644
--- a/cc/output/gl_renderer_unittest.cc
+++ b/cc/output/gl_renderer_unittest.cc
@@ -132,10 +132,7 @@ TEST_F(GLRendererShaderPixelTest, AllShadersCompile) { TestShaders(); }
class FrameCountingContext : public TestWebGraphicsContext3D {
public:
FrameCountingContext()
- : frame_(0) {
- test_capabilities_.set_visibility = true;
- test_capabilities_.discard_backbuffer = true;
- }
+ : frame_(0) {}
// WebGraphicsContext3D methods.
@@ -738,10 +735,7 @@ class VisibilityChangeIsLastCallTrackingContext
: public TestWebGraphicsContext3D {
public:
VisibilityChangeIsLastCallTrackingContext()
- : last_call_was_set_visibility_(false) {
- test_capabilities_.set_visibility = true;
- test_capabilities_.discard_backbuffer = true;
- }
+ : last_call_was_set_visibility_(false) {}
// WebGraphicsContext3D methods.
virtual void setVisibilityCHROMIUM(bool visible) {
@@ -1599,7 +1593,6 @@ TEST_F(GLRendererShaderTest, DrawSolidColorShader) {
class OutputSurfaceMockContext : public TestWebGraphicsContext3D {
public:
OutputSurfaceMockContext() {
- test_capabilities_.discard_backbuffer = true;
test_capabilities_.post_sub_buffer = true;
}
diff --git a/cc/output/output_surface.cc b/cc/output/output_surface.cc
index 749527e..7c56eea 100644
--- a/cc/output/output_surface.cc
+++ b/cc/output/output_surface.cc
@@ -44,7 +44,6 @@ namespace cc {
OutputSurface::OutputSurface(scoped_refptr<ContextProvider> context_provider)
: context_provider_(context_provider),
- has_gl_discard_backbuffer_(false),
has_swap_buffers_complete_callback_(false),
device_scale_factor_(-1),
max_frames_pending_(0),
@@ -60,7 +59,6 @@ OutputSurface::OutputSurface(scoped_refptr<ContextProvider> context_provider)
OutputSurface::OutputSurface(
scoped_ptr<cc::SoftwareOutputDevice> software_device)
: software_device_(software_device.Pass()),
- has_gl_discard_backbuffer_(false),
has_swap_buffers_complete_callback_(false),
device_scale_factor_(-1),
max_frames_pending_(0),
@@ -78,7 +76,6 @@ OutputSurface::OutputSurface(
scoped_ptr<cc::SoftwareOutputDevice> software_device)
: context_provider_(context_provider),
software_device_(software_device.Pass()),
- has_gl_discard_backbuffer_(false),
has_swap_buffers_complete_callback_(false),
device_scale_factor_(-1),
max_frames_pending_(0),
@@ -320,7 +317,6 @@ void OutputSurface::SetUpContext3d() {
const ContextProvider::Capabilities& caps =
context_provider_->ContextCapabilities();
- has_gl_discard_backbuffer_ = caps.discard_backbuffer;
has_swap_buffers_complete_callback_ = caps.swapbuffers_complete_callback;
context_provider_->SetLostContextCallback(
@@ -356,14 +352,14 @@ void OutputSurface::ResetContext3d() {
}
void OutputSurface::EnsureBackbuffer() {
- if (context_provider_ && has_gl_discard_backbuffer_)
+ if (context_provider_)
context_provider_->Context3d()->ensureBackbufferCHROMIUM();
if (software_device_)
software_device_->EnsureBackbuffer();
}
void OutputSurface::DiscardBackbuffer() {
- if (context_provider_ && has_gl_discard_backbuffer_)
+ if (context_provider_)
context_provider_->Context3d()->discardBackbufferCHROMIUM();
if (software_device_)
software_device_->DiscardBackbuffer();
diff --git a/cc/output/output_surface.h b/cc/output/output_surface.h
index efe0ea2..d724465 100644
--- a/cc/output/output_surface.h
+++ b/cc/output/output_surface.h
@@ -154,7 +154,6 @@ class CC_EXPORT OutputSurface : public FrameRateControllerClient {
struct cc::OutputSurface::Capabilities capabilities_;
scoped_refptr<ContextProvider> context_provider_;
scoped_ptr<cc::SoftwareOutputDevice> software_device_;
- bool has_gl_discard_backbuffer_;
bool has_swap_buffers_complete_callback_;
gfx::Size surface_size_;
float device_scale_factor_;
diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc
index 3cc4e29..421e541 100644
--- a/cc/output/software_renderer.cc
+++ b/cc/output/software_renderer.cc
@@ -86,7 +86,6 @@ SoftwareRenderer::SoftwareRenderer(RendererClient* client,
capabilities_.best_texture_format =
resource_provider_->best_texture_format();
}
- capabilities_.using_set_visibility = true;
// The updater can access bitmaps while the SoftwareRenderer is using them.
capabilities_.allow_partial_texture_updates = true;
capabilities_.using_partial_swap = true;