Repair etvk.vma_dep=instantiated to share VMA via 3.2.0#20225
Conversation
Summary: Fixes the ExecuTorch Vulkan backend's `etvk.vma_dep=instantiated` mode so the backend links a single, shared VulkanMemoryAllocator (VMA) instead of instantiating its own. This is the prerequisite that lets a binary link both ET Vulkan and another VMA consumer (e.g. IGL/compphoto) without an `ld.lld: duplicate symbol: Vma*` collision. Changes (both `fbcode` and `xplat` mirrors): 1. `backends/vulkan/targets.bzl`: repair the `etvk.vma_dep=instantiated` path, which pointed at `//third-party/VulkanMemoryAllocator/3.0.1:VulkanMemoryAllocatorInstantiated` — a package that no longer exists at HEAD (only `3.2.0` remains), so the mode was broken for everyone. Repoint it to `3.2.0:VulkanMemoryAllocatorInstantiated`, the same target IGL/compphoto already use, so VMA is linked exactly once. 2. `backends/vulkan/runtime/vk_api/memory/vma_api.h`: align the `ETVK_USE_META_VMA` branch `VMA_VULKAN_VERSION` from `1002000` to `1003000` to match the 3.2.0 instantiated lib's config (`vk_mem_alloc_instantiated.h`) so struct layouts agree across translation units and the pre-instantiated static lib (ABI safety). Both changes only affect the opt-in `etvk.vma_dep=instantiated` mode (which was already broken/unused), so default `xplat` builds and all other ET consumers are byte-for-byte unchanged. Differential Revision: D108337179
|
@blood-orange has exported this pull request. If you are a Meta employee, you can view the originating Diff in D108337179. |
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/20225
Note: Links to docs will display an error until the docs builds have been completed. ⏳ No Failures, 43 PendingAs of commit b292c2f with merge base 2302c25 ( This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
This PR needs a
|
Summary:
Fixes the ExecuTorch Vulkan backend's
etvk.vma_dep=instantiatedmode so the backend links a single, shared VulkanMemoryAllocator (VMA) instead of instantiating its own. This is the prerequisite that lets a binary link both ET Vulkan and another VMA consumer (e.g. IGL/compphoto) without anld.lld: duplicate symbol: Vma*collision.Changes (both
fbcodeandxplatmirrors):backends/vulkan/targets.bzl: repair theetvk.vma_dep=instantiatedpath, which pointed at//third-party/VulkanMemoryAllocator/3.0.1:VulkanMemoryAllocatorInstantiated— a package that no longer exists at HEAD (only3.2.0remains), so the mode was broken for everyone. Repoint it to3.2.0:VulkanMemoryAllocatorInstantiated, the same target IGL/compphoto already use, so VMA is linked exactly once.backends/vulkan/runtime/vk_api/memory/vma_api.h: align theETVK_USE_META_VMAbranchVMA_VULKAN_VERSIONfrom1002000to1003000to match the 3.2.0 instantiated lib's config (vk_mem_alloc_instantiated.h) so struct layouts agree across translation units and the pre-instantiated static lib (ABI safety).Both changes only affect the opt-in
etvk.vma_dep=instantiatedmode (which was already broken/unused), so defaultxplatbuilds and all other ET consumers are byte-for-byte unchanged.Differential Revision: D108337179