Impeller

This directory contains Flutter's graphics renderer, Impeller.

Development operations

Unit testing

Running all unit tests can take over 10 minutes. It's best to run a subset of tests while developing, then verify all tests at the end.

Building and running unit-tests

../bin/et build -c host_debug_unopt_arm64 \
  //flutter/impeller:impeller_unittests
../../out/host_debug_unopt_arm64/impeller_unittests

Running a specific unit test

../../out/host_debug_unopt_arm64/impeller_unittests \
  --gtest_filter="SizeTest.SizeIsEmpty"

List unit-tests

../../out/host_debug_unopt_arm64/impeller_unittests --gtest_list_tests

Golden testing

The executable for golden testing is impeller_golden_tests. The CWD must be the parent directory of impeller_golden_tests when executing it in order for the dyld to resolve successfully.

The golden tests are currently only supported on macOS.

Build/run/examine golden test

This example assumes macOS with an arm64 processor.

../bin/et build -c host_debug_unopt_arm64 \
  //flutter/impeller/golden_tests:impeller_golden_tests
mkdir -p ~/Desktop/impeller_unit_tests
pushd $PWD
cd ../../out/host_debug_unopt_arm64
./impeller_golden_tests \
  --working_dir=~/Desktop/impeller_unit_tests \
  --gtest_filter="Play/AiksTest.CanPerformSkew/Metal"
popd
open ~/Desktop/impeller_unit_tests/impeller_Play_AiksTest_CanPerformSkew_Metal.png

List golden tests

pushd $PWD
cd ../../out/host_debug_unopt_arm64
./impeller_golden_tests --working_dir=. --gtest_list_tests
popd