diff options
author | scottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-06 01:37:31 +0000 |
---|---|---|
committer | scottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-06 01:37:31 +0000 |
commit | 111975c6ed2caac665ed17f876f86536af6c3d2f (patch) | |
tree | 80512760fdaffd6354b8152104686095d3d73148 /ui/surface | |
parent | 07ed535b5f4250e2030cd169fb1e9de050eea07e (diff) | |
download | chromium_src-111975c6ed2caac665ed17f876f86536af6c3d2f.zip chromium_src-111975c6ed2caac665ed17f876f86536af6c3d2f.tar.gz chromium_src-111975c6ed2caac665ed17f876f86536af6c3d2f.tar.bz2 |
Enable GPU acceleration for Aura on Windows
Use GpuTransportSurface and AcceleratedSurface for rendering on win aura.
Run with:
--open-ash --force-compositing-mode --enable-threaded-compositing
BUG=
Review URL: https://chromiumcodereview.appspot.com/10890046
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155093 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/surface')
-rw-r--r-- | ui/surface/accelerated_surface_win.cc | 24 | ||||
-rw-r--r-- | ui/surface/accelerated_surface_win.h | 8 | ||||
-rw-r--r-- | ui/surface/surface.gyp | 8 |
3 files changed, 18 insertions, 22 deletions
diff --git a/ui/surface/accelerated_surface_win.cc b/ui/surface/accelerated_surface_win.cc index ff3affa..74b8aec 100644 --- a/ui/surface/accelerated_surface_win.cc +++ b/ui/surface/accelerated_surface_win.cc @@ -229,12 +229,14 @@ class PresentThreadPool { class AcceleratedPresenterMap { public: AcceleratedPresenterMap(); - scoped_refptr<AcceleratedPresenter> CreatePresenter(gfx::NativeWindow window); + scoped_refptr<AcceleratedPresenter> CreatePresenter( + gfx::PluginWindowHandle window); void RemovePresenter(const scoped_refptr<AcceleratedPresenter>& presenter); - scoped_refptr<AcceleratedPresenter> GetPresenter(gfx::NativeWindow window); + scoped_refptr<AcceleratedPresenter> GetPresenter( + gfx::PluginWindowHandle window); private: base::Lock lock_; - typedef std::map<gfx::NativeWindow, AcceleratedPresenter*> PresenterMap; + typedef std::map<gfx::PluginWindowHandle, AcceleratedPresenter*> PresenterMap; PresenterMap presenters_; DISALLOW_COPY_AND_ASSIGN(AcceleratedPresenterMap); }; @@ -381,7 +383,7 @@ AcceleratedPresenterMap::AcceleratedPresenterMap() { } scoped_refptr<AcceleratedPresenter> AcceleratedPresenterMap::CreatePresenter( - gfx::NativeWindow window) { + gfx::PluginWindowHandle window) { scoped_refptr<AcceleratedPresenter> presenter( new AcceleratedPresenter(window)); @@ -408,7 +410,7 @@ void AcceleratedPresenterMap::RemovePresenter( } scoped_refptr<AcceleratedPresenter> AcceleratedPresenterMap::GetPresenter( - gfx::NativeWindow window) { + gfx::PluginWindowHandle window) { base::AutoLock locked(lock_); PresenterMap::iterator it = presenters_.find(window); if (it == presenters_.end()) @@ -417,7 +419,7 @@ scoped_refptr<AcceleratedPresenter> AcceleratedPresenterMap::GetPresenter( return it->second; } -AcceleratedPresenter::AcceleratedPresenter(gfx::NativeWindow window) +AcceleratedPresenter::AcceleratedPresenter(gfx::PluginWindowHandle window) : present_thread_(g_present_thread_pool.Pointer()->NextThread()), window_(window), event_(false, false), @@ -425,7 +427,7 @@ AcceleratedPresenter::AcceleratedPresenter(gfx::NativeWindow window) } scoped_refptr<AcceleratedPresenter> AcceleratedPresenter::GetForWindow( - gfx::NativeWindow window) { + gfx::PluginWindowHandle window) { return g_accelerated_presenter_map.Pointer()->GetPresenter(window); } @@ -676,8 +678,10 @@ void AcceleratedPresenter::DoPresentAndAcknowledge( const gfx::Size& size, int64 surface_handle, const CompletionTask& completion_task) { - TRACE_EVENT1( - "gpu", "DoPresentAndAcknowledge", "surface_handle", surface_handle); + TRACE_EVENT2( + "gpu", "DoPresentAndAcknowledge", + "width", size.width(), + "height", size.height()); HRESULT hr; @@ -920,7 +924,7 @@ bool AcceleratedPresenter::GetPresentationStats(base::TimeTicks* timebase, return true; } -AcceleratedSurface::AcceleratedSurface(gfx::NativeWindow window) +AcceleratedSurface::AcceleratedSurface(gfx::PluginWindowHandle window) : presenter_(g_accelerated_presenter_map.Pointer()->CreatePresenter( window)) { } diff --git a/ui/surface/accelerated_surface_win.h b/ui/surface/accelerated_surface_win.h index 6a19e81..1256909 100644 --- a/ui/surface/accelerated_surface_win.h +++ b/ui/surface/accelerated_surface_win.h @@ -29,13 +29,13 @@ class SURFACE_EXPORT AcceleratedPresenter base::TimeTicks, base::TimeDelta)> CompletionTask; - explicit AcceleratedPresenter(gfx::NativeWindow window); + explicit AcceleratedPresenter(gfx::PluginWindowHandle window); // Returns a thread safe reference to the presenter for the given window or // null is no such presenter exists. The thread safe refptr ensures the // presenter will not be destroyed. This can be called on any thread. static scoped_refptr<AcceleratedPresenter> GetForWindow( - gfx::NativeWindow window); + gfx::PluginWindowHandle window); // Schedule a frame to be presented. The completion callback will be invoked // when it is safe to write to the surface on another thread. The lock for @@ -96,7 +96,7 @@ class SURFACE_EXPORT AcceleratedPresenter PresentThread* const present_thread_; // The window that is presented to. - gfx::NativeWindow window_; + gfx::PluginWindowHandle window_; // The lock is taken while any thread is calling the object, except those that // simply post from the main thread to the present thread via the immutable @@ -130,7 +130,7 @@ class SURFACE_EXPORT AcceleratedPresenter class SURFACE_EXPORT AcceleratedSurface { public: - AcceleratedSurface(gfx::NativeWindow window); + AcceleratedSurface(gfx::PluginWindowHandle window); ~AcceleratedSurface(); // Synchronously present a frame with no acknowledgement. diff --git a/ui/surface/surface.gyp b/ui/surface/surface.gyp index 4858b54..80a70b4 100644 --- a/ui/surface/surface.gyp +++ b/ui/surface/surface.gyp @@ -44,14 +44,6 @@ 'defines': [ 'SURFACE_IMPLEMENTATION', ], - 'conditions': [ - ['use_aura==1', { - 'sources/': [ - ['exclude', 'accelerated_surface_win.cc'], - ['exclude', 'accelerated_surface_win.h'], - ], - }], - ], }, ], } |