Filament View

This plugin is built for use with an AndroidView on the Flutter side.

Requirements

  • System Compatibility: The target system must support Vulkan

  • Compiler: Clang

    • Note: Filament requires Clang

Cloning Filament

git clone https://github.com/google/filament -b release git checkout v1.52.3

Building Filament

Apply patches found here: https://github.com/meta-flutter/workspace-automation/tree/filament-dev/patches/filament

Note: If building for desktop do not apply last patch

Build using these flags:

-DFILAMENT_SUPPORTS_VULKAN=ON
-DFILAMENT_ENABLE_LTO=ON
-DFILAMENT_SUPPORTS_OPENGL=OFF
-DFILAMENT_USE_EXTERNAL_GLES3=OFF
-DFILAMENT_SUPPORTS_WAYLAND=ON
-DFILAMENT_SUPPORTS_X11=OFF
-DFILAMENT_SUPPORTS_XCB=OFF
-DFILAMENT_SUPPORTS_EGL_ON_LINUX=OFF
-DFILAMENT_SKIP_SDL2=ON
-DFILAMENT_SKIP_SAMPLES=ON
-DFILAMENT_USE_SWIFTSHADER=OFF
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_STAGING_PREFIX=/mnt/raid10/filament/out/debug/usr

Make the install target to stage the required folders.

ninja -C . install

Set ivi-homescreen variables to subfolders of the staged install:

-DFILAMENT_INCLUDE_DIR=/mnt/raid10/filament/out/debug/include
-DFILAMENT_LINK_LIBRARIES_DIR=/mnt/raid10/filament/out/debug/lib/x86_64

In above case the staged install is set to:

/mnt/raid10/filament/out/debug/usr

Notes

Playx3d-scene needs conversion of assets for running on Vulkan+Linux:

cd filament/cmake-build-debug-clang
./tools/matc/matc --api vulkan -o /home/joel/workspace-automation/app/playx-3d-scene/example/build/flutter_assets/assets/materials/textured_pbr.filamat ../samples/materials/groundShadow.mat