diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-06 12:15:10 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-06 12:15:10 +0000 |
commit | aa8be181b085366e165c8fdcbf0f951f094d2b45 (patch) | |
tree | 4a97e75ab8d68a26e48749e3c1394e6f397c26f5 /cc/output | |
parent | 94741f033be369b57e0d1d879add0b8da0dff8ba (diff) | |
download | chromium_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.cc | 12 | ||||
-rw-r--r-- | cc/output/context_provider.h | 4 | ||||
-rw-r--r-- | cc/output/delegating_renderer.cc | 13 | ||||
-rw-r--r-- | cc/output/gl_renderer.cc | 5 | ||||
-rw-r--r-- | cc/output/gl_renderer_unittest.cc | 11 | ||||
-rw-r--r-- | cc/output/output_surface.cc | 8 | ||||
-rw-r--r-- | cc/output/output_surface.h | 1 | ||||
-rw-r--r-- | cc/output/software_renderer.cc | 1 |
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; |