docs: refresh emulator setup doc post-merge (broker + namespace fix landed)#340
Open
leaiss wants to merge 1 commit into
Open
docs: refresh emulator setup doc post-merge (broker + namespace fix landed)#340leaiss wants to merge 1 commit into
leaiss wants to merge 1 commit into
Conversation
PR #331 (this doc) merged before #332 (runtime broker) and #333 (plug-in namespace fix), so the doc still framed the broker as a gap and showed a build procedure that produces an APK missing CNSDK transitive .so deps. Refresh: 1. Update the "what works on emulator" table — broker, plug-in dlopen + namespace, plug-in probe/negotiate, and xrCreateInstance now all work end-to-end on the emulator after #332/#333 landed. 2. Update "what doesn't work on emulator" — the wall is now xrCreateVulkanDeviceKHR (swiftshader missing an extension the runtime requests), not the broker. Lume Pad's hardware Vulkan should clear that. 3. Build procedure in step 2 was wrong: - Order was plug-in first, then runtime — should be runtime first (downloads Eigen) then plug-in (consumes Eigen3_DIR). - Showed basic `scripts/build-android.sh` + single manual `cp` — produces APK with 2 .so files instead of 16. Switch to `scripts/build-android.sh install-runtime-jnilibs` which handles the CNSDK transitive .so bundle in one command. - Added the third step (runtime rebuild --rerun-tasks) which was implicit before. 4. Expected-log section now shows the full xrCreateInstance success path with broker resolution + preloads + plug-in negotiate, ending at `xrCreateVulkanDeviceKHR vk_result=-7`. Findings from a fresh-checkout dry-run of the merged docs against the merged code. Sanity check: `unzip -l <runtime.apk> | grep .so$` should list 16 entries after a correct build. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
PR #331 (the emulator setup doc) merged before PRs #332 (runtime broker) and #333 (plug-in namespace fix) — so as soon as those two landed, the doc became out of date. This PR refreshes it against the actual current main.
Caught by running a fresh-checkout dry-run of the merged docs against the merged code.
What changes
"What works" table — broker discovery, plug-in dlopen with the namespace preload fix, plug-in probe + negotiate, and `xrCreateInstance` now all work end-to-end on the emulator. Previously this doc framed the broker as the wall.
"What doesn't work" table — the actual wall is now `xrCreateVulkanDeviceKHR` returning `VK_ERROR_EXTENSION_NOT_PRESENT` (swiftshader missing extensions the runtime requests). Lume Pad's hardware Vulkan should clear that.
Build procedure (step 2) was wrong in 3 ways for a fresh checkout:
Expected-log section updated to show the full success path through broker → preload → plug-in negotiate → `xrCreateInstance` → `xrCreateVulkanInstanceKHR` → `xrCreateVulkanDeviceKHR vk_result=-7`.
Sanity check for users
Added to the doc: `unzip -l <runtime.apk> | grep '.so$'` should list 16 entries after a correct build. If it shows only 1 or 2, the `install-runtime-jnilibs` step didn't run or the runtime rebuild didn't pick them up.
Dependency
The new build procedure relies on the plug-in repo's `scripts/build-android.sh install-runtime-jnilibs` target — currently in leia-plugin#8, pending merge. Once that lands the doc commands work as written.
🤖 Generated with Claude Code