[roll] Roll fuchsia Reland "[flatland] Only compute ViewTree when necessary."

This reverts commit e802a0f0873187cbaecb0ae516cab933448f56a9.

The failure mechanism is now understood.  The key mistake was to assume
that UberStructSystem::UpdateInstances() cannot be called twice without
an intervening call to Engine::GenerateViewTreeSnapshot().  However,
there are cases where this assumption is violated.

Specifically, we run into issues when the FrameScheduler applies updates
but then later decides to skip the frame because another frame is still
in flight; another frame is auto-rescheduled when the first is no longer
in flight.  Often, the rescheduled frame has no further updates to
apply, and the original/reverted CL thus concludes that no ViewTree
recomputation is needed.

This CL has been updated to robustly handle consecutive calls to
UpdateInstances().

NOTE: the functionality remains disabled for now; a subsequent one-liner
will enable it.  Search for `kAlwaysRecomputeViewTree`.

Original change's description:
> Revert "[flatland] Only compute ViewTree when necessary."
>
> This reverts commit 3c27594ee2ec05c27930108fbfae0c36b2cbf273.
>
> Reason for revert: possible culprit for b/467303317
>
> Original change's description:
> > [flatland] Only compute ViewTree when necessary.
> >
> > Flatland sessions now check whether the current Present() includes
> > changes that might affect the ViewTree.  False positives are possible,
> > which can result in unnecessary ViewTree recomputation.
> >
> > Change-Id: Ifb735aceb1e6e0c76d7caeda345f217ac2ac9dda
> > Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1435086
> > Commit-Queue: Josh Gargus <jjosh@google.com>
> > Reviewed-by: Emircan Uysaler <emircan@google.com>
>
> Multiply: flatland-a11y-view
> Change-Id: I9fe6be4f9afa3dc2f4b3a06e08c23f7b300ba372
> Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1448077
> Reviewed-by: RubberStamper 🤖 <android-build-ayeaye@system.gserviceaccount.com>
> Commit-Queue: Ina Huh <ihuh@google.com>

Original-Bug: 401298250
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1453462
Original-Revision: ae9346f8c2c3b3e9beffe407f7895ffbd490912f
GitOrigin-RevId: 414228b15e63515d1d15ea9c57fadf3c53a872ca
Change-Id: I81355899d86fc6e27eda7582bb60eb77a1aefccc
1 file changed
tree: 5b636b3bcfa7022149104dd4436eb64c51253941
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. flower
  6. jiri.lock
  7. MILESTONE
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.