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

Issue 12040049: gpu: Implement idle async pixel transfers. (Closed)

Created:
7 years, 11 months ago by reveman
Modified:
7 years, 9 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam
Visibility:
Public.

Description

gpu: Implement idle async pixel transfers. This makes the fallback pixel transfer implementation perform texture uploads when command buffer is idle. BUG=161337 R=epenner@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=188558

Patch Set 1 #

Patch Set 2 : rebase #

Patch Set 3 : rebase and prevent starvation #

Total comments: 16

Patch Set 4 : Address review feedback and make BindFinishedAsyncPixelTransfers() handle out of order async upload… #

Total comments: 17

Patch Set 5 : Address feedback, improve efficiency and implement globally idle uploads. #

Patch Set 6 : last_idle_time_ fix. #

Patch Set 7 : move idle async upload impl to _idle.cc #

Patch Set 8 : rebase #

Total comments: 10

Patch Set 9 : address review feedback #

Patch Set 10 : Fix MockAsyncPixelTransferDelegate #

Patch Set 11 : remove texture_dirty_ state from AsyncPixelTransferDelegateIdle #

Total comments: 14

Patch Set 12 : Restore use of kHandleMoreWorkPeriodBusyMs and address review feedback #

Total comments: 10

Patch Set 13 : address feedback #

Patch Set 14 : Add DCHECKs to ensure idle async uploads are only used with GL_TEXTURE_2D target #

Unified diffs Side-by-side diffs Delta from patch set Stats (+598 lines, -28 lines) Patch
M content/common/gpu/gpu_channel.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +3 lines, -0 lines 0 comments Download
M content/common/gpu/gpu_channel_manager.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M content/common/gpu/gpu_channel_manager.cc View 1 2 3 4 5 6 7 1 chunk +19 lines, -0 lines 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +64 lines, -9 lines 0 comments Download
M gpu/command_buffer/service/async_pixel_transfer_delegate_mock.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.h View 1 2 3 4 5 6 7 1 chunk +5 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +18 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_mock.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gpu_scheduler.h View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gpu_scheduler.cc View 1 2 3 4 2 chunks +12 lines, -1 line 0 comments Download
M ui/gl/async_pixel_transfer_delegate.h View 1 2 3 4 5 6 7 8 1 chunk +10 lines, -0 lines 0 comments Download
M ui/gl/async_pixel_transfer_delegate_android.cc View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +17 lines, -8 lines 0 comments Download
A ui/gl/async_pixel_transfer_delegate_idle.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +96 lines, -0 lines 0 comments Download
A ui/gl/async_pixel_transfer_delegate_idle.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +328 lines, -0 lines 0 comments Download
M ui/gl/async_pixel_transfer_delegate_stub.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M ui/gl/async_pixel_transfer_delegate_stub.cc View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +10 lines, -10 lines 0 comments Download
M ui/gl/gl.gyp View 1 2 3 4 5 6 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 29 (0 generated)
reveman
This patch implements "idle" async uploads for use with impl-side painting on non-android platforms. "idle" ...
7 years, 9 months ago (2013-03-07 01:13:21 UTC) #1
Sami
https://codereview.chromium.org/12040049/diff/5001/content/common/gpu/gpu_command_buffer_stub.cc File content/common/gpu/gpu_command_buffer_stub.cc (right): https://codereview.chromium.org/12040049/diff/5001/content/common/gpu/gpu_command_buffer_stub.cc#newcode94 content/common/gpu/gpu_command_buffer_stub.cc:94: // Use a shorter delay when there'ss idle work ...
7 years, 9 months ago (2013-03-07 16:57:19 UTC) #2
reveman
Addressed review feedback and fixed TextureManager::BindFinishedAsyncPixelTransfers as I realized it didn't handle out of order ...
7 years, 9 months ago (2013-03-07 20:21:03 UTC) #3
Sami
Thanks, lgtm. Let's get Eric's opinion too.
7 years, 9 months ago (2013-03-08 12:01:23 UTC) #4
greggman
https://codereview.chromium.org/12040049/diff/13001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/12040049/diff/13001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode9129 gpu/command_buffer/service/gles2_cmd_decoder.cc:9129: RestoreCurrentTexture2DBindings(); What do think about moving RestoreCurrentTexture2DBindings inside ProcessPendingTransfers? ...
7 years, 9 months ago (2013-03-08 21:06:21 UTC) #5
epenner
Sorry for the delay, and looking good! Let me know how you would like to ...
7 years, 9 months ago (2013-03-08 21:44:57 UTC) #6
reveman
Addressed feedback and improved performance significantly. PTAL. https://codereview.chromium.org/12040049/diff/13001/content/common/gpu/gpu_command_buffer_stub.cc File content/common/gpu/gpu_command_buffer_stub.cc (right): https://codereview.chromium.org/12040049/diff/13001/content/common/gpu/gpu_command_buffer_stub.cc#newcode289 content/common/gpu/gpu_command_buffer_stub.cc:289: // Consider ...
7 years, 9 months ago (2013-03-12 00:31:41 UTC) #7
epenner
On 2013/03/12 00:31:41, David Reveman wrote: > How about _delegate_sync.cc and _delegate_idle.cc? Current impl is ...
7 years, 9 months ago (2013-03-12 20:00:47 UTC) #8
reveman
Idle upload impl was moved to _idle.cc in latest patch. I'll do the _android.cc/_linux.cc cleanup ...
7 years, 9 months ago (2013-03-12 21:14:16 UTC) #9
reveman
Latest patch has been rebased on Eric's delegate cleanup. PTAL.
7 years, 9 months ago (2013-03-13 17:47:25 UTC) #10
epenner
https://codereview.chromium.org/12040049/diff/33001/ui/gl/async_pixel_transfer_delegate_idle.cc File ui/gl/async_pixel_transfer_delegate_idle.cc (right): https://codereview.chromium.org/12040049/diff/33001/ui/gl/async_pixel_transfer_delegate_idle.cc#newcode86 ui/gl/async_pixel_transfer_delegate_idle.cc:86: class AsyncTransferStateIdle : public AsyncPixelTransferState { See my comment ...
7 years, 9 months ago (2013-03-13 18:58:01 UTC) #11
reveman
PTAL https://codereview.chromium.org/12040049/diff/33001/ui/gl/async_pixel_transfer_delegate_idle.cc File ui/gl/async_pixel_transfer_delegate_idle.cc (right): https://codereview.chromium.org/12040049/diff/33001/ui/gl/async_pixel_transfer_delegate_idle.cc#newcode86 ui/gl/async_pixel_transfer_delegate_idle.cc:86: class AsyncTransferStateIdle : public AsyncPixelTransferState { Internal class ...
7 years, 9 months ago (2013-03-14 01:12:45 UTC) #12
Sami
Drive-by nits. https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_channel.h File content/common/gpu/gpu_channel.h (right): https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_channel.h#newcode140 content/common/gpu/gpu_channel.h:140: bool handle_messages_scheduled() { return handle_messages_scheduled_; } Nit: ...
7 years, 9 months ago (2013-03-14 15:18:07 UTC) #13
epenner
LGTM. I haven't looked extensively at the GPU side changes but the Async changes were ...
7 years, 9 months ago (2013-03-14 18:03:56 UTC) #14
greggman
Hey Al, can you take a look at the gpu_command_buffer_stub.cc changes? You know what's expected ...
7 years, 9 months ago (2013-03-14 18:15:45 UTC) #15
greggman
Hey Al, can you take a look at the gpu_command_buffer_stub.cc changes? You know what's expected ...
7 years, 9 months ago (2013-03-14 18:15:59 UTC) #16
epenner
https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_command_buffer_stub.cc File content/common/gpu/gpu_command_buffer_stub.cc (right): https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_command_buffer_stub.cc#newcode300 content/common/gpu/gpu_command_buffer_stub.cc:300: // No need for a delay when there's idle ...
7 years, 9 months ago (2013-03-14 18:23:24 UTC) #17
greggman
On 2013/03/14 18:23:24, epenner wrote: > https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_command_buffer_stub.cc > File content/common/gpu/gpu_command_buffer_stub.cc (right): > > https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_command_buffer_stub.cc#newcode300 > ...
7 years, 9 months ago (2013-03-14 18:33:58 UTC) #18
reveman
PTAL https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_channel.h File content/common/gpu/gpu_channel.h (right): https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_channel.h#newcode140 content/common/gpu/gpu_channel.h:140: bool handle_messages_scheduled() { return handle_messages_scheduled_; } On 2013/03/14 ...
7 years, 9 months ago (2013-03-14 19:21:47 UTC) #19
reveman
On 2013/03/14 18:33:58, greggman wrote: > On 2013/03/14 18:23:24, epenner wrote: > > > https://codereview.chromium.org/12040049/diff/43001/content/common/gpu/gpu_command_buffer_stub.cc ...
7 years, 9 months ago (2013-03-14 19:27:51 UTC) #20
greggman
On 2013/03/14 19:27:51, David Reveman wrote: > On 2013/03/14 18:33:58, greggman wrote: > > On ...
7 years, 9 months ago (2013-03-14 20:09:07 UTC) #21
epenner
> We need to move async_pixel transfer out of ui where it > doesn't belong ...
7 years, 9 months ago (2013-03-14 20:31:00 UTC) #22
apatrick_chromium
https://codereview.chromium.org/12040049/diff/55001/ui/gl/async_pixel_transfer_delegate_idle.cc File ui/gl/async_pixel_transfer_delegate_idle.cc (right): https://codereview.chromium.org/12040049/diff/55001/ui/gl/async_pixel_transfer_delegate_idle.cc#newcode30 ui/gl/async_pixel_transfer_delegate_idle.cc:30: // is just DCHECKS here. is -> are https://codereview.chromium.org/12040049/diff/55001/ui/gl/async_pixel_transfer_delegate_idle.cc#newcode115 ...
7 years, 9 months ago (2013-03-14 23:30:39 UTC) #23
reveman
Fixed issues. PTAL. https://codereview.chromium.org/12040049/diff/55001/ui/gl/async_pixel_transfer_delegate_idle.cc File ui/gl/async_pixel_transfer_delegate_idle.cc (right): https://codereview.chromium.org/12040049/diff/55001/ui/gl/async_pixel_transfer_delegate_idle.cc#newcode30 ui/gl/async_pixel_transfer_delegate_idle.cc:30: // is just DCHECKS here. On ...
7 years, 9 months ago (2013-03-15 01:34:03 UTC) #24
apatrick_chromium
On 2013/03/15 01:34:03, David Reveman wrote: > Fixed issues. PTAL. > > https://codereview.chromium.org/12040049/diff/55001/ui/gl/async_pixel_transfer_delegate_idle.cc > File ...
7 years, 9 months ago (2013-03-15 18:12:54 UTC) #25
reveman
On 2013/03/15 18:12:54, apatrick_chromium wrote: > On 2013/03/15 01:34:03, David Reveman wrote: > > Fixed ...
7 years, 9 months ago (2013-03-15 18:28:54 UTC) #26
apatrick_chromium
LGTM. Just a note. Not for this patch. If other texture targets were to be ...
7 years, 9 months ago (2013-03-15 18:49:16 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/reveman@chromium.org/12040049/73001
7 years, 9 months ago (2013-03-15 19:19:45 UTC) #28
commit-bot: I haz the power
7 years, 9 months ago (2013-03-16 09:25:09 UTC) #29
Message was sent while issue was closed.
Change committed as 188558

Powered by Google App Engine
This is Rietveld 408576698