Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Issue 8498036: Delay UpdateRect until the SwapBuffers callback when accelerated compositing is on. (Closed)

Created:
9 years, 1 month ago by piman
Modified:
9 years ago
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam, dpranke-watch+content_chromium.org
Visibility:
Public.

Description

Delay UpdateRect until the SwapBuffers callback when accelerated compositing is on. This is also removing the UpdateRect ack in the accelerated compositing case, because it is not needed (and adds scheduling constraints that reduce throughput). This also sends a "dummy" message to the browser to unblock the UI thread if it's waiting on an UpdateRect when the transition from non-accelerated to accelerated happens: the GPU process may need to round trip to the browser UI thread before sending the SwapBuffers callback. BUG=58782 TEST=reduced jankiness on aura builds when resizing. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=113861

Patch Set 1 #

Patch Set 2 : . #

Total comments: 16

Patch Set 3 : address review comments #

Patch Set 4 : remove unused flag #

Patch Set 5 : fix test #

Patch Set 6 : add round trip for throttling #

Patch Set 7 : fix win compile #

Total comments: 2

Patch Set 8 : allow multiple update messages in flight #

Unified diffs Side-by-side diffs Delta from patch set Stats (+209 lines, -115 lines) Patch
M content/browser/renderer_host/render_message_filter.h View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_message_filter.cc View 1 2 3 4 5 6 7 2 chunks +14 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_helper.h View 1 2 3 4 5 6 7 2 chunks +4 lines, -2 lines 0 comments Download
M content/browser/renderer_host/render_widget_helper.cc View 1 2 3 4 5 6 7 3 chunks +13 lines, -25 lines 0 comments Download
M content/browser/renderer_host/render_widget_host.h View 1 2 3 4 5 6 7 2 chunks +1 line, -2 lines 0 comments Download
M content/browser/renderer_host/render_widget_host.cc View 1 2 3 4 5 6 7 4 chunks +12 lines, -7 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_unittest.cc View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_gtk.cc View 1 2 3 4 5 6 7 2 chunks +3 lines, -2 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_win.cc View 1 2 3 4 5 6 7 2 chunks +15 lines, -31 lines 0 comments Download
M content/common/gpu/image_transport_surface.h View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M content/common/gpu/image_transport_surface.cc View 1 2 3 4 5 1 chunk +36 lines, -2 lines 0 comments Download
M content/common/view_messages.h View 1 2 3 4 5 6 7 2 chunks +8 lines, -0 lines 0 comments Download
M content/renderer/render_widget.h View 1 2 3 4 5 6 7 4 chunks +15 lines, -5 lines 0 comments Download
M content/renderer/render_widget.cc View 1 2 3 4 5 6 7 15 chunks +83 lines, -39 lines 0 comments Download

Messages

Total messages: 25 (0 generated)
piman
9 years, 1 month ago (2011-11-11 00:21:33 UTC) #1
jam
I'm not familiar with this code, so I'm not a qualified reviewer. i did just ...
9 years, 1 month ago (2011-11-11 03:03:44 UTC) #2
piman
9 years, 1 month ago (2011-11-11 04:03:28 UTC) #3
nduca
Is there a way to not completely do-away with the ack part of things? I ...
9 years, 1 month ago (2011-11-11 04:50:13 UTC) #4
piman
On Thu, Nov 10, 2011 at 8:50 PM, <nduca@chromium.org> wrote: > Is there a way ...
9 years, 1 month ago (2011-11-11 06:28:00 UTC) #5
nduca
Sorry to be cantankerous, but I think you're being a bit too strong in your ...
9 years, 1 month ago (2011-11-11 06:31:58 UTC) #6
nduca
I think you've convinced me offline that we can try living without updateRectAck's. So this ...
9 years, 1 month ago (2011-11-15 01:57:32 UTC) #7
darin (slow to review)
http://codereview.chromium.org/8498036/diff/2001/content/browser/renderer_host/render_widget_host.cc File content/browser/renderer_host/render_widget_host.cc (right): http://codereview.chromium.org/8498036/diff/2001/content/browser/renderer_host/render_widget_host.cc#newcode1051 content/browser/renderer_host/render_widget_host.cc:1051: // ACK early so we can prefetch the next ...
9 years, 1 month ago (2011-11-15 08:06:04 UTC) #8
piman
http://codereview.chromium.org/8498036/diff/2001/content/browser/renderer_host/render_message_filter.cc File content/browser/renderer_host/render_message_filter.cc (right): http://codereview.chromium.org/8498036/diff/2001/content/browser/renderer_host/render_message_filter.cc#newcode347 content/browser/renderer_host/render_message_filter.cc:347: IPC_MESSAGE_HANDLER_GENERIC(ViewHostMsg_UpdateIsDelayed, On 2011/11/15 01:57:32, nduca wrote: > Can you ...
9 years, 1 month ago (2011-11-16 01:00:55 UTC) #9
piman
Resurrecting this CL (ping!). I added a mechanism to send a round-trip to the browser ...
9 years ago (2011-12-02 02:32:10 UTC) #10
nduca
This is awesome. LGTM for the scheduling/flow control stuff, with the question: do all OS' ...
9 years ago (2011-12-02 05:13:21 UTC) #11
piman
On Thu, Dec 1, 2011 at 9:13 PM, <nduca@chromium.org> wrote: > This is awesome. LGTM ...
9 years ago (2011-12-02 08:29:11 UTC) #12
piman
+kbr per Nat's suggestion and apatrick because I'm touching code he recently added.
9 years ago (2011-12-02 08:31:13 UTC) #13
nduca
> With Al's recent change, all OS have an ImageTransportSurface. Awesome, didn't catch that. That's ...
9 years ago (2011-12-02 16:27:17 UTC) #14
Ken Russell (switch to Gerrit)
LGTM as far as I can tell from a code review. I'm not sure how ...
9 years ago (2011-12-02 21:33:37 UTC) #15
apatrick_chromium
LGTM if it's tested on all platforms. The PbufferImageTransportSurface and AcceleratedSurface is currently disabled on ...
9 years ago (2011-12-05 19:34:09 UTC) #16
piman
I tested extensively on linux and aura, but I will need your help to test ...
9 years ago (2011-12-05 20:51:16 UTC) #17
Ken Russell (switch to Gerrit)
On 2011/12/05 20:51:16, piman wrote: > I tested extensively on linux and aura, but I ...
9 years ago (2011-12-06 03:45:30 UTC) #18
piman
On Mon, Dec 5, 2011 at 7:45 PM, <kbr@chromium.org> wrote: > On 2011/12/05 20:51:16, piman ...
9 years ago (2011-12-06 04:20:38 UTC) #19
piman
On Mon, Dec 5, 2011 at 8:20 PM, Antoine Labour <piman@chromium.org> wrote: > > > ...
9 years ago (2011-12-06 04:46:17 UTC) #20
piman
PTAL, problem was that the RenderWidgetHelper only allowed a single UpdateRect per renderer in flight.
9 years ago (2011-12-08 01:57:25 UTC) #21
Ken Russell (switch to Gerrit)
Sorry for the delay. LGTM again as far as I can tell from code review. ...
9 years ago (2011-12-09 03:12:39 UTC) #22
darin (slow to review)
LGTM
9 years ago (2011-12-09 17:50:02 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/piman@chromium.org/8498036/36001
9 years ago (2011-12-09 17:52:04 UTC) #24
commit-bot: I haz the power
9 years ago (2011-12-09 22:19:26 UTC) #25
Change committed as 113861

Powered by Google App Engine
This is Rietveld 408576698