summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authorjbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-28 02:11:08 +0000
committerjbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-28 02:11:08 +0000
commita7266a9dc36aa68143d670eb8646f9d67237fa61 (patch)
tree783113824e460a2154aec46f401ead1f1ffd8e66 /content/renderer
parent0390d8c8d8c72dedb6bcb9ef39b96fbb8e6915b2 (diff)
downloadchromium_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.cc1
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)