diff options
author | reveman <reveman@chromium.org> | 2015-05-21 16:21:07 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-21 23:21:40 +0000 |
commit | 5f717f89f305eed2be7fe113cf8fd9bb6e80a6dd (patch) | |
tree | 9f63726c11973ce13ff83b5a34fa8c57e522aca8 /ui/compositor | |
parent | 5c5e78fd2f3ce8e5d9bba747694b1ffc4d552ad9 (diff) | |
download | chromium_src-5f717f89f305eed2be7fe113cf8fd9bb6e80a6dd.zip chromium_src-5f717f89f305eed2be7fe113cf8fd9bb6e80a6dd.tar.gz chromium_src-5f717f89f305eed2be7fe113cf8fd9bb6e80a6dd.tar.bz2 |
cc: Make CHROMIUM_image capability a requirement for impl-side painting.
This is a prerequisite to removing async uploads.
BUG=460288
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1148273002
Cr-Commit-Position: refs/heads/master@{#331024}
Diffstat (limited to 'ui/compositor')
-rw-r--r-- | ui/compositor/test/in_process_context_factory.cc | 5 | ||||
-rw-r--r-- | ui/compositor/test/in_process_context_factory.h | 2 | ||||
-rw-r--r-- | ui/compositor/test/in_process_context_provider.cc | 20 | ||||
-rw-r--r-- | ui/compositor/test/in_process_context_provider.h | 10 |
4 files changed, 31 insertions, 6 deletions
diff --git a/ui/compositor/test/in_process_context_factory.cc b/ui/compositor/test/in_process_context_factory.cc index 431eea5..1676378 100644 --- a/ui/compositor/test/in_process_context_factory.cc +++ b/ui/compositor/test/in_process_context_factory.cc @@ -105,7 +105,9 @@ void InProcessContextFactory::CreateOutputSurface( bool lose_context_when_out_of_memory = true; scoped_refptr<InProcessContextProvider> context_provider = - InProcessContextProvider::Create(attribs, lose_context_when_out_of_memory, + InProcessContextProvider::Create(attribs, &gpu_memory_buffer_manager_, + &image_factory_, + lose_context_when_out_of_memory, compositor->widget(), "UICompositor"); scoped_ptr<cc::OutputSurface> real_output_surface; @@ -158,6 +160,7 @@ InProcessContextFactory::SharedMainThreadContextProvider() { bool lose_context_when_out_of_memory = false; shared_main_thread_contexts_ = InProcessContextProvider::CreateOffscreen( + &gpu_memory_buffer_manager_, &image_factory_, lose_context_when_out_of_memory); if (shared_main_thread_contexts_.get() && !shared_main_thread_contexts_->BindToCurrentThread()) diff --git a/ui/compositor/test/in_process_context_factory.h b/ui/compositor/test/in_process_context_factory.h index fdfb5cd..8b3cb09 100644 --- a/ui/compositor/test/in_process_context_factory.h +++ b/ui/compositor/test/in_process_context_factory.h @@ -6,6 +6,7 @@ #define UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ #include "cc/test/test_gpu_memory_buffer_manager.h" +#include "cc/test/test_image_factory.h" #include "cc/test/test_shared_bitmap_manager.h" #include "cc/test/test_task_graph_runner.h" #include "ui/compositor/compositor.h" @@ -57,6 +58,7 @@ class InProcessContextFactory : public ContextFactory { scoped_refptr<cc::ContextProvider> shared_main_thread_contexts_; cc::TestSharedBitmapManager shared_bitmap_manager_; cc::TestGpuMemoryBufferManager gpu_memory_buffer_manager_; + cc::TestImageFactory image_factory_; cc::TestTaskGraphRunner task_graph_runner_; uint32_t next_surface_id_namespace_; bool use_test_surface_; diff --git a/ui/compositor/test/in_process_context_provider.cc b/ui/compositor/test/in_process_context_provider.cc index 6e252d8..4885c60 100644 --- a/ui/compositor/test/in_process_context_provider.cc +++ b/ui/compositor/test/in_process_context_provider.cc @@ -40,16 +40,21 @@ base::LazyInstance<GLES2Initializer> g_gles2_initializer = // static scoped_refptr<InProcessContextProvider> InProcessContextProvider::Create( const gpu::gles2::ContextCreationAttribHelper& attribs, + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, + gpu::ImageFactory* image_factory, bool lose_context_when_out_of_memory, gfx::AcceleratedWidget window, const std::string& debug_name) { return new InProcessContextProvider( - attribs, lose_context_when_out_of_memory, window, debug_name); + attribs, gpu_memory_buffer_manager, image_factory, + lose_context_when_out_of_memory, window, debug_name); } // static scoped_refptr<InProcessContextProvider> InProcessContextProvider::CreateOffscreen( + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, + gpu::ImageFactory* image_factory, bool lose_context_when_out_of_memory) { gpu::gles2::ContextCreationAttribHelper attribs; attribs.alpha_size = 8; @@ -62,17 +67,22 @@ InProcessContextProvider::CreateOffscreen( attribs.sample_buffers = 0; attribs.fail_if_major_perf_caveat = false; attribs.bind_generates_resource = false; - return new InProcessContextProvider( - attribs, lose_context_when_out_of_memory, gfx::kNullAcceleratedWidget, - "Offscreen"); + return new InProcessContextProvider(attribs, gpu_memory_buffer_manager, + image_factory, + lose_context_when_out_of_memory, + gfx::kNullAcceleratedWidget, "Offscreen"); } InProcessContextProvider::InProcessContextProvider( const gpu::gles2::ContextCreationAttribHelper& attribs, + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, + gpu::ImageFactory* image_factory, bool lose_context_when_out_of_memory, gfx::AcceleratedWidget window, const std::string& debug_name) : attribs_(attribs), + gpu_memory_buffer_manager_(gpu_memory_buffer_manager), + image_factory_(image_factory), lose_context_when_out_of_memory_(lose_context_when_out_of_memory), window_(window), debug_name_(debug_name), @@ -99,7 +109,7 @@ bool InProcessContextProvider::BindToCurrentThread() { window_, gfx::Size(1, 1), nullptr, /* share_context */ true, /* share_resources */ attribs_, gpu_preference, gpu::GLInProcessContextSharedMemoryLimits(), - nullptr, nullptr)); + gpu_memory_buffer_manager_, image_factory_)); if (!context_) return false; diff --git a/ui/compositor/test/in_process_context_provider.h b/ui/compositor/test/in_process_context_provider.h index 5944bf9..dbeb0f4 100644 --- a/ui/compositor/test/in_process_context_provider.h +++ b/ui/compositor/test/in_process_context_provider.h @@ -18,6 +18,8 @@ namespace gpu { class GLInProcessContext; +class GpuMemoryBufferManager; +class ImageFactory; } namespace ui { @@ -26,17 +28,23 @@ class InProcessContextProvider : public cc::ContextProvider { public: static scoped_refptr<InProcessContextProvider> Create( const gpu::gles2::ContextCreationAttribHelper& attribs, + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, + gpu::ImageFactory* image_factory, bool lose_context_when_out_of_memory, gfx::AcceleratedWidget window, const std::string& debug_name); // Uses default attributes for creating an offscreen context. static scoped_refptr<InProcessContextProvider> CreateOffscreen( + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, + gpu::ImageFactory* image_factory, bool lose_context_when_out_of_memory); private: InProcessContextProvider( const gpu::gles2::ContextCreationAttribHelper& attribs, + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, + gpu::ImageFactory* image_factory, bool lose_context_when_out_of_memory, gfx::AcceleratedWidget window, const std::string& debug_name); @@ -70,6 +78,8 @@ class InProcessContextProvider : public cc::ContextProvider { skia::RefPtr<class GrContext> gr_context_; gpu::gles2::ContextCreationAttribHelper attribs_; + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager_; + gpu::ImageFactory* image_factory_; bool lose_context_when_out_of_memory_; gfx::AcceleratedWidget window_; std::string debug_name_; |