Repository navigation
fix(boot-device): disable guest Vulkan on macOS Android emulators - #1554
Merged
Merged
Conversation
On macOS the emulator backs guest Vulkan with a CPU driver (SwiftShader, or lavapipe on emulator 37), and Chrome's GPU process keeps crashing on it, so Chrome Custom Tab sign-in flows die. Boot with -feature -Vulkan on macOS, in both the snapshot probe and the boot argv. ARGENT_EMULATOR_GUEST_VULKAN=1 keeps guest Vulkan. Fixes #1549
Member
Author
|
AVD rendering pipelines are dense sources of absurd edge-cases, do not merge this until extremely thorough review. I'd be even more in favour of sensible defaults with extensive at-runtime configurability, allowing the agent to change the rendering pipelines and more. |
…r mode Guest Vulkan off leaves apps with no Vulkan device, so a Vulkan-only renderer (react-native-wgpu) draws nothing. `guestVulkan: true` turns it back on per call; ARGENT_EMULATOR_GUEST_VULKAN sets the default. macOS always passes `-feature Vulkan` or `-feature -Vulkan`, so an advancedFeatures.ini setting cannot override the choice. The already-running fast path reuses an emulator started elsewhere (Android Studio, Diplomat) as-is; it now returns a `note` when that emulator's guest Vulkan mode differs from the one asked for. The crash is not specific to a CPU driver: it also happens with `-gpu host` (MoltenVK), so the comment and docs say so.
latekvo
marked this pull request as ready for review
October 27, 2026 18:48
Member
Author
|
Ready to merge, just fixing last couple of comments and low test findings, then merging. |
… ro.hardware.vulkan comment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1549
On macOS, guest Vulkan in the Android emulator crashes Chrome's GPU process with every host backend (lavapipe, SwiftShader, MoltenVK). This breaks Chrome and Custom Tab sign-in flows.
boot-devicenow boots macOS emulators with-feature -Vulkan.Apps then find no Vulkan device, so a Vulkan-only renderer (react-native-wgpu, WebGPU) draws nothing.
guestVulkan: trueturns it back on;ARGENT_EMULATOR_GUEST_VULKANsets the default. An emulator already running in the other mode (Android Studio, Diplomat) is reused with anotethat points atforce: true, which needs #1586.mainguestVulkan: trueDocs: the
ARGENT_EMULATOR_GUEST_VULKANrow inreference/configuration.mdx.Repro and checks
createBootDeviceTool().execute(), then ran the issue'schrome-gpu-check.sh.auto/lavapipe 6/6/6,host/MoltenVK 6/6,swiftshader6/6. With the flag, every mode gives 0.-gpu swiftshaderdoes not crash (0/0/0), so Linux is unchanged.-gpu auto(lavapipe) crashes 6/6.android.hardware.vulkan.*(static vendor XML) andro.hardware.vulkan=ranchu. Onlyro.boot.hardware.vulkangoes empty, so the reuse note reads that property.guestVulkan: truepasses-feature Vulkan, which also overridesVulkan = offinadvancedFeatures.ini(checked: 1 Vulkan device).default_bootcold-boots once after the upgrade.typecheck:tests, eslint, knip, prettier, docusaurus and the SpiderShield gate (9.07) pass. The tool-server suite passes excepte2e-tool-aliases, which also fails locally onmain.-gpu automay give guest Vulkan on the real GPU.