Repository navigation
Android: armeabi-v7a (32-bit ARM) builds - #43
Merged
Merged
Conversation
android-arm32 preset, tools/android.py --abi arm32, package_apk.py takes armeabi-v7a; CMake picks the armv7a-linux-androideabi triple and defines VULKAN_HPP_TYPESAFE_CONVERSION (Vulkan's non-dispatchable handles are 64-bit integers on 32-bit targets). - patches/nvrhi-vulkan-32bit-handles.patch: NVRHI's Vulkan backend names objects, defaults and prints handles through rawHandle(), and uses VK_NULL_HANDLE instead of nullptr. - patches/Donut-chunk-layout-64bit-only.patch: the chunk structs' 64-bit size asserts. - patches/Donut-skinned-buffer-size-uint64.patch: size_t passed as uint64_t&. - core/donut_interop.cpp: Vulkan handles to and from NVRHI's Object and printfMessenger by their 64 bits. - headless and nvrhi_direct are not built for armeabi-v7a: tslang has no @cppvtable struct returns for 32-bit ARM, so core/nvrhi.ts cannot compile there; android.py skips headless. Checked: basic_triangle builds and its APK installs and starts on an armeabi-v7a-only device (SM-T510), up to Donut's Vulkan 1.3 check, which that device (Vulkan 1.1) fails. No frame has been rendered on 32-bit ARM. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Owner
Author
|
Update: after these changes |
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
android-arm32preset,tools/android.py --abi arm32, andarmeabi-v7ainpackage_apk.py;CMakeLists.txtuses thearmv7a-linux-androideabitriple and definesVULKAN_HPP_TYPESAFE_CONVERSIONfor it (Vulkan's non-dispatchable handles are 64-bit integers on 32-bit targets).patches/nvrhi-vulkan-32bit-handles.patch: NVRHI's Vulkan backend names objects and builds debug text through arawHandle()helper, and usesVK_NULL_HANDLEinstead ofnullptr.patches/Donut-chunk-layout-64bit-only.patch: Donut's chunk struct size asserts hold only on 64-bit.patches/Donut-skinned-buffer-size-uint64.patch:size_tpassed asuint64_t&inScene::CreateMeshBuffers.core/donut_interop.cpp: Vulkan handles to and from NVRHI'sObject(pointeron 64-bit,integeron 32-bit) andprintfMessengerkept as its 64 bits.headlessandnvrhi_directare not built for armeabi-v7a: tslang has no@cppvtablestruct returns for 32-bit ARM, socore/nvrhi.tscannot compile there.android.pyskips headless for arm32.Needs
A tslang drop with the armeabi-v7a collector, async runtime and default library (
android/armeabi-v7a/lib,defaultlib/lib/arm): see ASDAlexander77/TypeScriptCompiler#555 and ASDAlexander77/TypeScriptCompilerDefaultLib#32.Verified
python tools/android.py build --abi arm32 basic_trianglebuilds the APK (NDK r30).Not verified
basic_trianglewas built; the other examples were not.rawHandle/vkHandle*helpers compile to the old pointer casts, but that is unchecked).🤖 Generated with Claude Code