[roll] Roll fuchsia [carnelian] Limited support for multiple displays This is a reland of a reverted CL, 58ee00ae7727c934139c8582414d721419496123, This changes adds limited multiple monitor support to Carnelian when running directly on the display controller, enough to allow virtcon2 to function in an acceptable manner. Future changes will improve on this support so that applications can make good choices about what to do as monitors come and go. To make this work, I added a view mode enum (as suggested by reveman@) to application Config. Auto works as environment detection has always worked. Hosted is for apps that only wish to create views when hosted by Scenic or Flatland. Direct is for apps that only wish to create views directly on the display controller. This view mode is necessary as it isn't possible to tell whether the hosted environment is present if a Carnelian application is launched before the display controller comes up. This change stops using the Framebuffer struct from the fuchsia-framebuffer crate with the eye towards eventually deprecating that crate. https://fxbug.dev/84524 An implementation detail of this change is that it uses the display ID of displays as the view key for views so that it is easy to map display controller messages like Vsync to the view hosted on the display. If that ends up being problematic a different mapping mechanism should be introduced in a future CL. Since this change separates application startup and view creation into two steps it is a complete solution for https://fxbug.dev/83859. I removed the early out in view creation in virtcon2, as it did not behave correctly if a single monitor was unplugged then plugged in again. I also used config to make virtcon always run in view mode direct. To test virtcon I made it the default and confirmed that it recovered from have the monitor unplugged and replugged. I tested the system recovery UI, which had no changes in behavior. To test terminal I ran it under the terminal product configuration and confirmed that it started up and rendered correctly. I ran all the examples in view mode direct with and without Spinel. All the examples that ran with Spinel before continue to work in view mode direct. I will file individual bugs for the examples that work incorrectly under Spinel. Removed the get_frame_buffer_size trait function as that isn't used anymore and doesn't fit well with multi display support. I tested a selection of examples under Scenic in the terminal product. Testing: manual, see above for details. Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/615188 Original-Revision: 1d096eaa36581d78125e9df5166c8c94f22250a5 GitOrigin-RevId: 21b39e956e5f00558663b47f9a4587e9d517be1d Change-Id: I991158a7dc74b053efe63194d7e0981a0a7f9177
This repository contains Fuchsia's Global Integration manifest files.
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 via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.