Skip to content

Emulator 36.x Vulkan probe failure on Windows CI agent despite -gpu swiftshader #11062

@simonrozsival

Description

@simonrozsival

Summary

Since PR #10971 (merged March 19, 2026) bumped the Android emulator from 32.1.9 to 36.4.10, every Xamarin.Android-PR DevDiv build has exactly 1 out of ~17 Start emulator tasks failing with a Vulkan driver error on a Windows CI agent, despite -gpu swiftshader being passed.

Error

Emulator failed to start: [Vulkan Loader] ERROR | DRIVER:
windows_read_data_files_in_registry: Registry lookup failed to get ICD
manifest files. Possibly missing Vulkan driver?

Source: build-tools/scripts/TestApks.targets line 76 → StartAndroidEmulator task.

Impact

  • Frequency: 100% of builds since March 19 — always 1/17 emulator lanes
  • Affected lane: Windows > Tests > Debugging (on Android-1ESPT pool agents)
  • Severity: Non-blocking — pipeline continues via succeededWithIssues (configured in 983dc9142)
  • Other lanes: The remaining ~16 Start emulator tasks succeed, including other Windows lanes

Context

PR #10971 acknowledged this problem and added -gpu swiftshader to TestAvdExtraBootArgs:

<TestAvdExtraBootArgs Condition=" '$(TestAvdShowWindow)' == 'false' ">
  -no-window -no-boot-anim -gpu swiftshader $(TestAvdExtraBootArgs)
</TestAvdExtraBootArgs>

This works for most agents but one Windows agent in the Android-1ESPT pool still fails — likely because emulator 36.x probes the Vulkan loader DLL before honoring -gpu swiftshader, and that agent lacks the Vulkan runtime entirely.

Possible fixes

  1. Reimage/update the failing agent in the Android-1ESPT pool
  2. Set ANDROID_EMU_VK_ICD=swiftshader environment variable before starting the emulator to skip the Vulkan ICD file probe entirely
  3. Add retry logic in StartAndroidEmulator.cs for Vulkan-related startup failures

Affected builds (sample)

Build ID Result Date
13702557 partiallySucceeded 2026-04-01
13701132 partiallySucceeded 2026-03-31
13704638 failed 2026-03-31
13701236 partiallySucceeded 2026-03-31

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions