diff options
author | jbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-28 02:11:08 +0000 |
---|---|---|
committer | jbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-28 02:11:08 +0000 |
commit | a7266a9dc36aa68143d670eb8646f9d67237fa61 (patch) | |
tree | 783113824e460a2154aec46f401ead1f1ffd8e66 /content/renderer | |
parent | 0390d8c8d8c72dedb6bcb9ef39b96fbb8e6915b2 (diff) | |
download | chromium_src-a7266a9dc36aa68143d670eb8646f9d67237fa61.zip chromium_src-a7266a9dc36aa68143d670eb8646f9d67237fa61.tar.gz chromium_src-a7266a9dc36aa68143d670eb8646f9d67237fa61.tar.bz2 |
Defer descheduling of GPU commands until draw or swap
This CL adds support to Windows and Mac. Linux doesn't gain anything, because the GPU process is blocked on the actual SwapBuffers call (whereas Windows and Mac asynchronously notify the browser to execute the Swap).
The surface gets a chance to defer either Draws or Swaps. The surface can unschedule the GpuScheduler on the first attempt at a draw, for example, and reschedule it later when the draw is safe to execute (ie: when the pending SwapBuffers is acked by the browser).
Platforms with triple-buffered contexts can defer all the way until a Swap, while most platforms will use the draws to defer.
Review URL: https://chromiumcodereview.appspot.com/10389202
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144648 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r-- | content/renderer/render_widget.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index ddfde20..fbba3d6 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc @@ -234,6 +234,7 @@ bool RenderWidget::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_HANDLER(ViewMsg_WasRestored, OnWasRestored) IPC_MESSAGE_HANDLER(ViewMsg_WasSwappedOut, OnWasSwappedOut) IPC_MESSAGE_HANDLER(ViewMsg_UpdateRect_ACK, OnUpdateRectAck) + IPC_MESSAGE_HANDLER(ViewMsg_SwapBuffers_ACK, OnSwapBuffersComplete) IPC_MESSAGE_HANDLER(ViewMsg_HandleInputEvent, OnHandleInputEvent) IPC_MESSAGE_HANDLER(ViewMsg_MouseCaptureLost, OnMouseCaptureLost) IPC_MESSAGE_HANDLER(ViewMsg_SetFocus, OnSetFocus) |