Skip to content

docs: Android VK extension survey for pre-Lume-Pad bring-up#349

Open
leaiss wants to merge 1 commit into
ci/android-emulator-smoke-testfrom
docs/android-vk-extension-survey
Open

docs: Android VK extension survey for pre-Lume-Pad bring-up#349
leaiss wants to merge 1 commit into
ci/android-emulator-smoke-testfrom
docs/android-vk-extension-survey

Conversation

@leaiss
Copy link
Copy Markdown
Collaborator

@leaiss leaiss commented May 27, 2026

Summary

Stacked on PR #347. New doc at docs/getting-started/android-vulkan-extension-survey.md — a pre-Lume-Pad reference that inventories every VK device extension the runtime requests on Android, predicts which ones swiftshader (emulator) vs Adreno (Lume Pad) provides, and gives a step-by-step expectation table for first hardware bring-up.

Why

Today's emulator runs hit VK_ERROR_EXTENSION_NOT_PRESENT at both null_compositor::vk_create_device AND xrCreateVulkanDeviceKHR. The questions everyone will ask on Lume Pad day-1 are:

  1. Was the emulator failure swiftshader-specific or runtime-specific?
  2. Which xrCreate* step is expected to be the first hardware-specific behavior?
  3. If something else fails too, where do I look?

This doc answers all three in advance.

Key prediction

Three of the runtime's required extensions are AHardwareBuffer-related — swiftshader doesn't implement them, but they're standard on Adreno's Android Vulkan ICD. So Lume Pad should clear the emulator wall at first VkDevice creation without any code change. If it doesn't, the doc names the exact oxr_vulkan.c line to edit (move the missing extension from required to optional).

Stacking

Based on PR #347 (sentinel + smoke script). Rebase onto main after #347 lands.

Test plan

  • When Lume Pad arrives, run scripts/android-smoketest.sh and walk through the step-by-step expectation table.
  • If predictions hold (likely): close this PR's TODO with a note "verified on Lume Pad 2026-XX-XX".
  • If a prediction misses: update the relevant row + open a follow-up PR per the doc's "How to update" section.

🤖 Generated with Claude Code

@leaiss leaiss requested a review from dfattal as a code owner May 27, 2026 21:42
@leaiss leaiss force-pushed the ci/android-emulator-smoke-test branch from 0358093 to e390c66 Compare June 2, 2026 15:57
@leaiss leaiss force-pushed the docs/android-vk-extension-survey branch 3 times, most recently from df89261 to 58a19dc Compare June 2, 2026 16:47
Inventories every Vulkan device extension the runtime requests at
xrCreateVulkanDeviceKHR on Android (from oxr_vulkan.c with the
AHardwareBuffer + FD-sync platform flags). Cross-references each
against:
  - what swiftshader/gfxstream provides on the emulator (observed via
    today's smoke runs)
  - what Adreno 6xx/7xx on Lume Pad is expected to provide (per
    vulkan.gpuinfo.org reports for Snapdragon 845/888)

Predicts which xrCreate* call should advance past the emulator wall
on real hardware vs which steps will be the first hardware-specific
behavior. Includes a step-by-step expectation table for first
Lume Pad bring-up, mapping each log line to the emulator/Lume Pad
expected outcomes.

Key prediction: extensions #6 (VK_ANDROID_external_memory_android_
hardware_buffer), #7 (VK_KHR_sampler_ycbcr_conversion), and #10
(VK_EXT_queue_family_foreign) are the three swiftshader doesn't
provide — all AHardwareBuffer-related — and all three are standard
on Adreno's Android Vulkan ICD. So Lume Pad should clear the
emulator wall at first device creation.

If the prediction is wrong, the doc's "How to update" section
points at the exact code change to make.
@leaiss leaiss force-pushed the docs/android-vk-extension-survey branch from 58a19dc to 2b8ba7d Compare June 2, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant