Handle dirtiness of the UI scene elements |
|||||
Issue descriptionSome input events (such as scrolling) can have an effect on UiElement properties. If these properties are not animated, they get updated immediately and its dirtiness is not realized on UiElement::DoBeginFrame. As a result, the world transforms do not get updated. Only the elements' transforms seem to be affected at the moment, but other properties could potentially be affected as well. Here are some ideas to solve the problem: - Add a wrapper around each property that affects the scene and let it announce the dirtiness of the element. - Let the setters handle dirtiness. - Always call UpdateWorldTransform and make it calculate the dirtiness of the elements.
,
May 17 2018
,
May 17 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5cdcce079f424f6876bbbd9e4451d7acd26b06e7 commit 5cdcce079f424f6876bbbd9e4451d7acd26b06e7 Author: Aldo Culquicondor <acondor@chromium.org> Date: Thu May 17 19:10:34 2018 VR: Always update world transforms UpdateWorldTransform is already optimized to skip invisible subtrees and to skip recalculating local transforms when they haven't changed. This is not a final fix for dirtiness handling. Bug: 843326 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr Change-Id: I70a45d1d602474f8b8439f16f9680186b08f8679 Reviewed-on: https://chromium-review.googlesource.com/1064451 Reviewed-by: Christopher Grant <cjgrant@chromium.org> Commit-Queue: Aldo Culquicondor <acondor@chromium.org> Cr-Commit-Position: refs/heads/master@{#559633} [modify] https://crrev.com/5cdcce079f424f6876bbbd9e4451d7acd26b06e7/chrome/browser/vr/elements/scrollable_element.cc [modify] https://crrev.com/5cdcce079f424f6876bbbd9e4451d7acd26b06e7/chrome/browser/vr/elements/scrollable_element.h [modify] https://crrev.com/5cdcce079f424f6876bbbd9e4451d7acd26b06e7/chrome/browser/vr/ui_scene.cc
,
May 22 2018
Assigning to Aldo and marking started as work is landing.
,
May 22 2018
The change landed ensures that we always calculate the local transforms, so that the scene drawn is always up to date. At the moment, there is no need to calculate the appropriate dirtiness of the scene.
,
May 22 2018
This change should ensure that the dirtiness value is correct: https://chromium-review.googlesource.com/c/chromium/src/+/1065528. I think we can mark this is as fixed for now. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by acondor@chromium.org
, May 17 2018