|
|
Chromium Code Reviews
Description[VSync Queue] Flush input in CommitComplete()
We should call |DeliverInputForBeginFrame()| in two places:
1. Low latency mode (begin main frame and commit every frame)
* Flush input in |WillBeginImplFrame()| and the commit should include all input
2. High latency mode (begin main frame and commit are late)
* Flush input in |CommitComplete()| and before |PrepareTiles()|
* Also make sure it's outside an impl frame
Tested locally and checkerboard issue seems to be fixed.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGediBEAAJ
BUG=704732
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Review-Url: https://codereview.chromium.org/2841263002
Cr-Commit-Position: refs/heads/master@{#469118}
Committed: https://chromium.googlesource.com/chromium/src/+/a237ad2e80ec9ff5cf211b8f28bc2525349e55e0
Patch Set 1 : Test Patch: VsyncAlignedInput Enabled #
Total comments: 6
Patch Set 2 : dtapuska's review: Rename |InputEventState| => |ImplThreadPhase|; Remove field trial config #Patch Set 3 : danakj's comment: Also flush input in CommitComplete() #
Total comments: 2
Patch Set 4 : sunnyps's review: Add comment #Messages
Total messages: 53 (40 generated)
Description was changed from ========== Only queue input events inside impl frame BUG= ========== to ========== Only queue input events inside impl frame BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
The CQ bit was checked by chongz@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: 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_androi...)
Description was changed from
==========
Only queue input events inside impl frame
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
to
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
Description was changed from
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
to
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
Patch 1 mac_retina_perf_bisect test result: (https://goo.gl/bpXHie)
TOT
Patch
mean_pixels_checkerboarded 260.260% 223.180%
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
Description was changed from
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
Patch 1 mac_retina_perf_bisect test result: (https://goo.gl/bpXHie)
TOT
Patch
mean_pixels_checkerboarded 260.260% 223.180%
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
to
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
Patch 1 mac_retina_perf_bisect test result: (https://goo.gl/bpXHie)
TOT Patch
mean_pixels_checkerboarded 260.260% 223.180%
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
Description was changed from
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
Patch 1 mac_retina_perf_bisect test result: (https://goo.gl/bpXHie)
TOT Patch
mean_pixels_checkerboarded 260.260% 223.180%
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
to
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
Patch 1 mac_retina_perf_bisect test result: (https://goo.gl/bpXHie)
TOT Patch
mean_pixels_checkerboarded 260.260% 223.180%
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
Description was changed from
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
Patch 1 mac_retina_perf_bisect test result: (https://goo.gl/bpXHie)
TOT Patch
mean_pixels_checkerboarded 260.260% 223.180%
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
to
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
Patch 1 mac_retina_perf_bisect test result: (https://goo.gl/bpXHie)
TOT Patch
mean_pixels_checkerboarded 260.260% 223.180%
BUG=704732
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
chongz@chromium.org changed reviewers: + sunnyps@chromium.org
sunnyps@ PTAL, thanks! https://codereview.chromium.org/2841263002/diff/1/cc/trees/layer_tree_host_im... File cc/trees/layer_tree_host_impl.cc (right): https://codereview.chromium.org/2841263002/diff/1/cc/trees/layer_tree_host_im... cc/trees/layer_tree_host_impl.cc:1918: input_handler_state_ = InputHandlerState::IDLE; Is this the right place, or should I put it in the start of |LayerTreeHostImpl::DrawLayers()|?
dtapuska@chromium.org changed reviewers: + dtapuska@chromium.org
https://codereview.chromium.org/2841263002/diff/1/cc/input/input_handler.h File cc/input/input_handler.h (right): https://codereview.chromium.org/2841263002/diff/1/cc/input/input_handler.h#ne... cc/input/input_handler.h:113: enum class InputHandlerState { This name seems a bit too generic. https://codereview.chromium.org/2841263002/diff/1/testing/variations/fieldtri... File testing/variations/fieldtrial_testing_config.json (right): https://codereview.chromium.org/2841263002/diff/1/testing/variations/fieldtri... testing/variations/fieldtrial_testing_config.json:3205: "VsyncAlignedInput": [ The variation change should be a separate change entirely.
The CQ bit was checked by chongz@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
dtapuska@ PTAL again, thanks! https://codereview.chromium.org/2841263002/diff/1/cc/input/input_handler.h File cc/input/input_handler.h (right): https://codereview.chromium.org/2841263002/diff/1/cc/input/input_handler.h#ne... cc/input/input_handler.h:113: enum class InputHandlerState { On 2017/04/27 16:24:44, dtapuska wrote: > This name seems a bit too generic. Changed to READY_FOR_INPUT and BUSY_INSIDE_IMPL_FRAME, or do you have other suggestions? https://codereview.chromium.org/2841263002/diff/1/testing/variations/fieldtri... File testing/variations/fieldtrial_testing_config.json (right): https://codereview.chromium.org/2841263002/diff/1/testing/variations/fieldtri... testing/variations/fieldtrial_testing_config.json:3205: "VsyncAlignedInput": [ On 2017/04/27 16:24:44, dtapuska wrote: > The variation change should be a separate change entirely. Removed. Was uploaded for telemetry testing.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_trusty_blink_rel on master.tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/linux_trusty_blink_rel/b...) chromeos_daisy_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_daisy_...) linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by chongz@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_trusty_blink_rel on master.tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/linux_trusty_blink_rel/b...)
chongz@chromium.org changed reviewers: + danakj@chromium.org
danakj@ PTAL, thanks!
The CQ bit was checked by chongz@chromium.org to run a CQ dry run
Patchset #2 (id:20001) has been deleted
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
dtapuska@ I've renamed enum |InputEventState| to |ImplThreadPhase| according to our offline discussion. PTAL again, thanks! https://codereview.chromium.org/2841263002/diff/1/cc/input/input_handler.h File cc/input/input_handler.h (right): https://codereview.chromium.org/2841263002/diff/1/cc/input/input_handler.h#ne... cc/input/input_handler.h:113: enum class InputHandlerState { On 2017/04/27 19:12:14, chongz wrote: > On 2017/04/27 16:24:44, dtapuska wrote: > > This name seems a bit too generic. > > Changed to READY_FOR_INPUT and BUSY_INSIDE_IMPL_FRAME, or do you have other > suggestions? Changed enum name to |ImplThreadPhase|.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
dtapuska@ Can you take a look at the new enum name please? Thanks!
On 2017/05/01 19:14:23, chongz wrote: > dtapuska@ Can you take a look at the new enum name please? Thanks! lgtm. That name is definitely better than InputEventState.
sunnyps@ danakj@ PTAL at cc implementation, thanks!
The CQ bit was checked by chongz@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from
==========
[VSync Queue] Only queue gesture events during impl frame
Queuing events all the time will cause checkerboard issue in high latency mode.
This CL changed the process to:
1. Queue gesture events between |LayerTreeHostImpl::WillBeginImplFrame()| and
|LayerTreeHostImpl::DidFinishImplFrame()|.
2. Otherwise flush and forward gesture events immediately.
3. Still flush gesture events on |LayerTreeHostImpl::WillBeginImplFrame|.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
Patch 1 mac_retina_perf_bisect test result: (https://goo.gl/bpXHie)
TOT Patch
mean_pixels_checkerboarded 260.260% 223.180%
BUG=704732
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
to
==========
[VSync Queue] Flush input in CommitComplete()
We should call |DeliverInputForBeginFrame()| in two places:
1. Low latency mode (begin main frame and commit every frame)
* Flush input in |WillBeginImplFrame()| and the commit should include all
input
2. High latency mode (begin main frame and commit are late)
* Flush input in |CommitComplete()| and before |PrepareTiles()|
Tested locally and checkerboard issue seems to be fixed.
Graphics-dev discussion:
https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe...
BUG=704732
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
==========
Description was changed from ========== [VSync Queue] Flush input in CommitComplete() We should call |DeliverInputForBeginFrame()| in two places: 1. Low latency mode (begin main frame and commit every frame) * Flush input in |WillBeginImplFrame()| and the commit should include all input 2. High latency mode (begin main frame and commit are late) * Flush input in |CommitComplete()| and before |PrepareTiles()| Tested locally and checkerboard issue seems to be fixed. Graphics-dev discussion: https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe... BUG=704732 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== [VSync Queue] Flush input in CommitComplete() We should call |DeliverInputForBeginFrame()| in two places: 1. Low latency mode (begin main frame and commit every frame) * Flush input in |WillBeginImplFrame()| and the commit should include all input 2. High latency mode (begin main frame and commit are late) * Flush input in |CommitComplete()| and before |PrepareTiles()| * Also make sure it's outside an impl frame Tested locally and checkerboard issue seems to be fixed. Graphics-dev discussion: https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe... BUG=704732 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
LGTM
lgtm https://codereview.chromium.org/2841263002/diff/60001/cc/trees/layer_tree_hos... File cc/trees/layer_tree_host_impl.cc (right): https://codereview.chromium.org/2841263002/diff/60001/cc/trees/layer_tree_hos... cc/trees/layer_tree_host_impl.cc:344: if (input_handler_client_ && impl_thread_phase_ == ImplThreadPhase::IDLE) nit: can you please add a comment explaining why we're doing this here?
The CQ bit was checked by chongz@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2841263002/diff/60001/cc/trees/layer_tree_hos... File cc/trees/layer_tree_host_impl.cc (right): https://codereview.chromium.org/2841263002/diff/60001/cc/trees/layer_tree_hos... cc/trees/layer_tree_host_impl.cc:344: if (input_handler_client_ && impl_thread_phase_ == ImplThreadPhase::IDLE) On 2017/05/03 18:37:13, sunnyps wrote: > nit: can you please add a comment explaining why we're doing this here? Done.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by chongz@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from dtapuska@chromium.org, danakj@chromium.org, sunnyps@chromium.org Link to the patchset: https://codereview.chromium.org/2841263002/#ps80001 (title: "sunnyps's review: Add comment")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 80001, "attempt_start_ts": 1493845145888080,
"parent_rev": "d4b5dbc19c72bfabba394a7e728fd67b96d7287b", "commit_rev":
"a237ad2e80ec9ff5cf211b8f28bc2525349e55e0"}
Message was sent while issue was closed.
Description was changed from ========== [VSync Queue] Flush input in CommitComplete() We should call |DeliverInputForBeginFrame()| in two places: 1. Low latency mode (begin main frame and commit every frame) * Flush input in |WillBeginImplFrame()| and the commit should include all input 2. High latency mode (begin main frame and commit are late) * Flush input in |CommitComplete()| and before |PrepareTiles()| * Also make sure it's outside an impl frame Tested locally and checkerboard issue seems to be fixed. Graphics-dev discussion: https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe... BUG=704732 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== [VSync Queue] Flush input in CommitComplete() We should call |DeliverInputForBeginFrame()| in two places: 1. Low latency mode (begin main frame and commit every frame) * Flush input in |WillBeginImplFrame()| and the commit should include all input 2. High latency mode (begin main frame and commit are late) * Flush input in |CommitComplete()| and before |PrepareTiles()| * Also make sure it's outside an impl frame Tested locally and checkerboard issue seems to be fixed. Graphics-dev discussion: https://groups.google.com/a/chromium.org/d/msg/graphics-dev/xOdp3hIxZvg/SQtGe... BUG=704732 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2841263002 Cr-Commit-Position: refs/heads/master@{#469118} Committed: https://chromium.googlesource.com/chromium/src/+/a237ad2e80ec9ff5cf211b8f28bc... ==========
Message was sent while issue was closed.
Committed patchset #4 (id:80001) as https://chromium.googlesource.com/chromium/src/+/a237ad2e80ec9ff5cf211b8f28bc... |
