[escher] Final prep for Scenic/PaperRenderer2 integration.

The biggest change is for PaperRenderer2 to always use the
"latched pose buffer" representation for camera matrices,
and to use a Vulkan push constant to choose the left or
right eye matrix.  This is the easiest way to maintain
compatibility with the old PaperRenderer.

Escher's CommandBuffer abstraction has a limitation where
it stomps on binding-resource IDs when beginning a render
pass.  This CL adds DCHECKs to detect such misuse.

Various Scenic clients (root_presenter and examples) are
updated in anticipation of the PaperRenderer2 integration.
For example, hello_scenic takes a command-line argument
to specify the shadow-type to use, and also exercises clipping
using the recently-added SetClipPlanesCmd.  Also, the upcoming
"stencil shadows" will initially only work with PointLights,
so clients add these in addition to the existing ambient
and directional lights.

SCN-670 #comment

TEST=
hello_scenic, hello_base_view, hello_pose_buffer, hello_stereo
escher_unittests (host and target)

Change-Id: I3e9cc9576e1231321044df7af84a8a3f61e86980
23 files changed
tree: e721e811ca7260288c395106fb1667e84de7a3d8
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. garnet/
  7. peridot/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. zircon/
  13. .clang-format
  14. .dir-locals.el
  15. .gitattributes
  16. .gitignore
  17. AUTHORS
  18. CODE_OF_CONDUCT.md
  19. CONTRIBUTING.md
  20. LICENSE
  21. OWNERS
  22. PATENTS
  23. README.md
  24. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.