diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-27 19:00:08 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-27 19:00:08 +0000 |
commit | 6335fc2676f780d574d4465517ca7ee339066149 (patch) | |
tree | 9506639bb67c6a61b6b01d60b64ffc9a4daa2db0 /ui/gfx | |
parent | 27d44042000983cff9d7093ae6f63be83af6ccfc (diff) | |
download | chromium_src-6335fc2676f780d574d4465517ca7ee339066149.zip chromium_src-6335fc2676f780d574d4465517ca7ee339066149.tar.gz chromium_src-6335fc2676f780d574d4465517ca7ee339066149.tar.bz2 |
Revert 134201 - Fix framerate jank for accelerated content on windows
By delaying the SwapBuffersAck to after Present, we send back the Ack at the rate that D3D Presents finish, which is typically vsync or slower when GPU bound.
BUG=125232
TEST=Open WebGL Aquarium, record trace in about:tracing, verify smooth framerate.
Review URL: http://codereview.chromium.org/10222029
TBR=jbates@chromium.org
Suspected performance regression:
http://build.chromium.org/f/chromium/perf/gpu-win7-release-nvidia/gpu_frame_rate/report.html?history=150&rev=-1&graph=fireflies
Review URL: https://chromiumcodereview.appspot.com/10187019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134313 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx')
-rw-r--r-- | ui/gfx/surface/accelerated_surface_win.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ui/gfx/surface/accelerated_surface_win.cc b/ui/gfx/surface/accelerated_surface_win.cc index 8bd8e46..d5c7ddc 100644 --- a/ui/gfx/surface/accelerated_surface_win.cc +++ b/ui/gfx/surface/accelerated_surface_win.cc @@ -637,6 +637,10 @@ void AcceleratedPresenter::DoPresentAndAcknowledge( if (swap_delay.ToInternalValue()) base::PlatformThread::Sleep(swap_delay); + scoped_completion_runner.Release(); + if (!completion_task.is_null()) + completion_task.Run(true); + { TRACE_EVENT0("surface", "Present"); hr = swap_chain_->Present(&rect, &rect, window_, NULL, 0); |