Skip to content

[Impeller] MacOS+SwiftShader doesn't render. #134852

@matanlurey

Description

@matanlurey

In order to get some Vulkan validation checking on CI, we'll need to use Swift Shader (Software Rendering). However, as of HEAD (flutter/engine@d0ff708 at time of writing), there are two problems with Vulkan+Swift Shader on MacOS hosts (which I can also reproduce locally):

  1. Asynchronous presentation causes a timeout
  2. Even with synchronous presentation, the image is blank

There is a some more information here:

It's likely the issues are same (nothing is being drawn).


To reproduce (remember, MacOS host - and I only tried ARM64):

# Assuming you're in $ENGINE/src/flutter

# GN
./tools/gn \
  --unopt \
  --mac-cpu arm64 \
  --enable-vulkan-validation-layers \
  --enable-impeller-vulkan \
  --target-dir=host_debug_impeller_vulkan \
  --no-stripped

# Ninja
ninja -j1000 -C ../out/host_debug_impeller_vulkan impeller_unittests

# Make sure this path is right, if not you'll silently use MoltenVK, which works fine.
ls ../out/host_debug_impeller_vulkan/vk_swiftshader_icd.json

# Run, providing Swift Shader, and enabling validation.
VK_ICD_FILENAMES=../out/host_debug_impeller_vulkan/vk_swiftshader_icd.json \
  ../out/host_debug_impeller_vulkan/impeller_unittests \
  --gtest_filter="Play/AiksTest.*/Vulkan" \
  --playground_timeout_ms=1000 \
  --enable_vulkan_validation

I'm filing this issue so we can at least get validation coverage (flutter/engine#45918).

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: tech-debtTechnical debt, code quality, testing, etc.e: impellerImpeller rendering backend issues and features requeststeam-engineOwned by Engine team

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions