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

Issue 2722883002: gpu: Allow waiting on sync tokens without sync token client. (Closed)

Created:
3 years, 9 months ago by sunnyps
Modified:
3 years, 9 months ago
Reviewers:
Fady Samuel, boliu, jbauman
CC:
chromium-reviews, rjkroege, piman+watch_chromium.org, fuzzing_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

gpu: Allow waiting on sync tokens without sync token client. This CL adds SyncPointManager::Wait which takes a sync token and an order number. This enables the upcoming gpu scheduler to wait on sync tokens that a flush depends on without executing the flush. Such waits are safe from deadlock if the order number of the message is used. Misc cleanup in this CL: 1. Hide SyncPointClientState and instead use sync tokens for waiting. 2. The wait methods do not run the callback if the wait is invalid. 3. The cmd decoder wait sync token callback returns true on valid waits. 4. Added few more cmd buffer message types that don't need MakeCurrent. 5. Changed the sync point tests to use sync tokens everywhere. R=jbauman@chromium.org BUG=514813 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2722883002 Cr-Commit-Position: refs/heads/master@{#454361} Committed: https://chromium.googlesource.com/chromium/src/+/9147a531d69c35b928d4dc1a11684bb5baf1d6f9

Patch Set 1 #

Patch Set 2 : android webview compile fix #

Patch Set 3 : Fix GLManager::SignalSyncToken #

Patch Set 4 : oops #

Total comments: 2

Patch Set 5 : process signal sync token in order in in proc cmd buffer #

Total comments: 2

Patch Set 6 : review #

Unified diffs Side-by-side diffs Delta from patch set Stats (+548 lines, -817 lines) Patch
M android_webview/browser/deferred_gpu_command_service.cc View 1 1 chunk +1 line, -2 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.h View 3 chunks +6 lines, -7 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 5 chunks +12 lines, -9 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_mock.h View 1 chunk +2 lines, -2 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h View 3 chunks +3 lines, -2 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc View 1 chunk +3 lines, -3 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc View 1 chunk +5 lines, -5 lines 0 comments Download
M gpu/command_buffer/service/sync_point_manager.h View 1 2 3 4 5 8 chunks +98 lines, -128 lines 0 comments Download
M gpu/command_buffer/service/sync_point_manager.cc View 7 chunks +123 lines, -154 lines 0 comments Download
M gpu/command_buffer/service/sync_point_manager_unittest.cc View 10 chunks +154 lines, -211 lines 0 comments Download
M gpu/command_buffer/tests/fuzzer_main.cc View 4 chunks +11 lines, -20 lines 0 comments Download
M gpu/command_buffer/tests/gl_fence_sync_unittest.cc View 2 chunks +2 lines, -11 lines 0 comments Download
M gpu/command_buffer/tests/gl_manager.h View 1 2 3 3 chunks +20 lines, -22 lines 0 comments Download
M gpu/command_buffer/tests/gl_manager.cc View 1 2 4 chunks +21 lines, -51 lines 0 comments Download
M gpu/ipc/in_process_command_buffer.h View 1 chunk +2 lines, -6 lines 0 comments Download
M gpu/ipc/in_process_command_buffer.cc View 1 2 3 4 7 chunks +33 lines, -70 lines 0 comments Download
M gpu/ipc/service/gpu_channel_manager.h View 2 chunks +0 lines, -2 lines 0 comments Download
M gpu/ipc/service/gpu_channel_manager.cc View 2 chunks +5 lines, -15 lines 0 comments Download
M gpu/ipc/service/gpu_channel_test_common.cc View 1 chunk +1 line, -1 line 0 comments Download
M gpu/ipc/service/gpu_command_buffer_stub.h View 2 chunks +2 lines, -10 lines 0 comments Download
M gpu/ipc/service/gpu_command_buffer_stub.cc View 8 chunks +43 lines, -83 lines 0 comments Download
M services/ui/gpu/gpu_service.cc View 1 chunk +1 line, -3 lines 0 comments Download

Messages

Total messages: 42 (29 generated)
sunnyps
PTAL Let me know if you want me to split out any part of this ...
3 years, 9 months ago (2017-02-28 20:09:13 UTC) #4
jbauman
https://codereview.chromium.org/2722883002/diff/60001/gpu/command_buffer/service/sync_point_manager.h File gpu/command_buffer/service/sync_point_manager.h (right): https://codereview.chromium.org/2722883002/diff/60001/gpu/command_buffer/service/sync_point_manager.h#newcode144 gpu/command_buffer/service/sync_point_manager.h:144: SyncPointClientState(scoped_refptr<SyncPointOrderData> order_data); explicit https://codereview.chromium.org/2722883002/diff/80001/gpu/ipc/in_process_command_buffer.cc File gpu/ipc/in_process_command_buffer.cc (right): https://codereview.chromium.org/2722883002/diff/80001/gpu/ipc/in_process_command_buffer.cc#newcode979 gpu/ipc/in_process_command_buffer.cc:979: ...
3 years, 9 months ago (2017-03-02 00:31:48 UTC) #22
sunnyps
https://codereview.chromium.org/2722883002/diff/80001/gpu/ipc/in_process_command_buffer.cc File gpu/ipc/in_process_command_buffer.cc (right): https://codereview.chromium.org/2722883002/diff/80001/gpu/ipc/in_process_command_buffer.cc#newcode979 gpu/ipc/in_process_command_buffer.cc:979: false, On 2017/03/02 00:31:48, jbauman wrote: > Do you ...
3 years, 9 months ago (2017-03-02 00:34:29 UTC) #23
sunnyps
ptal https://codereview.chromium.org/2722883002/diff/60001/gpu/command_buffer/service/sync_point_manager.h File gpu/command_buffer/service/sync_point_manager.h (right): https://codereview.chromium.org/2722883002/diff/60001/gpu/command_buffer/service/sync_point_manager.h#newcode144 gpu/command_buffer/service/sync_point_manager.h:144: SyncPointClientState(scoped_refptr<SyncPointOrderData> order_data); On 2017/03/02 00:31:48, jbauman wrote: > ...
3 years, 9 months ago (2017-03-02 01:26:45 UTC) #26
jbauman
lgtm
3 years, 9 months ago (2017-03-02 02:03:55 UTC) #27
sunnyps
boliu: please rs android_webview change fsamuel: please rs services/ui/gpu change allow_threaded_wait was unused in SyncPointManager
3 years, 9 months ago (2017-03-02 02:41:09 UTC) #29
Fady Samuel
lgtm
3 years, 9 months ago (2017-03-02 02:43:10 UTC) #30
boliu
rs lgtm
3 years, 9 months ago (2017-03-02 02:43:49 UTC) #31
sunnyps
Thanks, everyone!
3 years, 9 months ago (2017-03-02 02:44:10 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2722883002/100001
3 years, 9 months ago (2017-03-02 02:45:28 UTC) #35
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/242450)
3 years, 9 months ago (2017-03-02 05:04:24 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2722883002/100001
3 years, 9 months ago (2017-03-02 19:27:11 UTC) #39
commit-bot: I haz the power
3 years, 9 months ago (2017-03-02 20:27:31 UTC) #42
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://chromium.googlesource.com/chromium/src/+/9147a531d69c35b928d4dc1a1168...

Powered by Google App Engine
This is Rietveld 408576698