Escher is a physically based renderer.


  • Volumetric soft shadows
  • Color bleeding
  • Light diffusion
  • Lens effect

Building for Fuchsia

Escher itself is part of any Fuchsia build that includes Scenic, i.e. any build that targets a device with a screen. The Escher examples and tests are built by adding //garnet/packages/examples:escher and //garnet/packages/tests:escher to your fx set invocation.

Building for Linux

Escher can also build on Linux. In order to do so, you need to:

  • install build dependencies
    sudo apt install libxinerama-dev libxrandr-dev libxcursor-dev libx11-xcb-dev \
    libx11-dev mesa-common-dev
  • install a GPU driver that supports Vulkan
    • NVIDIA: version >= 367.35
      sudo apt install nvidia-driver
    • Intel: Mesa >= 12.0
      sudo apt install mesa-vulkan-drivers
  • set the VK_LAYER_PATH, and LD_LIBRARY_PATH environment variables, e.g.:
    export VULKAN_SDK=$FUCHSIA_DIR/prebuilt/third_party/vulkansdk/linux/x86_64
    export VK_LAYER_PATH=$VULKAN_SDK/etc/explicit_layer.d
  • Specify that you want the Escher examples and unit-tests to be built:
    fx set terminal.x64 --with='//garnet/packages/examples:escher,//garnet/packages/tests:escher' --args escher_use_null_vulkan_config_on_host=false
    • See $FUCHSIA_DIR/docs/ for how to set up the fx tool.
    • The command-line above is just an example. For example, you can use a different product than terminal or use a more inclusive package such as //garnet/packages/examples:all.
  • Do the following each time you want to rebuild and run the waterfall example:
    fx build host_x64/waterfall && out/default/host_x64/waterfall
  • Escher unit-tests are built and run similarly:
    fx build host_x64/escher_unittests && out/default/host_x64/escher_unittests