Skip to content

Cherry-pick Lavapipe uprev and symlink/ICD fixes to version-1.57-dev - #3442

Closed
rmuthiah wants to merge 9 commits into
google:version-1.57-devfrom
rmuthiah:cherry-pick-lavapipe-uprev-1.57
Closed

rmuthiah wants to merge 9 commits into
google:version-1.57-devfrom
rmuthiah:cherry-pick-lavapipe-uprev-1.57

Conversation

@rmuthiah

Copy link
Copy Markdown
Collaborator

Cherry-picks the Lavapipe uprev series (PR #2997) and follow-up symlink/ICD/LLVM fixes from main to version-1.57-dev so cuttlefish-base (1.57.x) builds libvulkan_lvp.so with -DHAVE_MEMFD_CREATE and -DHAVE_MKOSTEMP (plus the /tmp/xdg-runtime-mesa-%ld fallback in anon_file.c), resolving the SIGSEGV at 0xffffffffffffffff (MAP_FAILED) in CompositorVk::createStagingBufferWithData when running --gpu_mode=gfxstream_guest_angle_host_lavapipe in Oxygenation where XDG_RUNTIME_DIR is unset:

  • dc15078f2920 Uprev spirv dependencies
  • 7e51d75cad1c Add glslang dependency
  • 8881b642e929 Uprev the Lavapipe build
  • 80f59d99330b Enable multi queue emulation for lavapipe
  • dc002981556a Add Lavapipe dEQP smoke test
  • e28453c28535 Add link to internal document about updating
  • 1185c6aff9be Update lavapipe library name in ICD manifest
  • 670a5317cf6f Update lavapipe symlink target
  • 7b2e347a2cb5 Add HAVE_UNW_ADD_DYNAMIC_FDE to the llvm build

Bug: b/406553848
Bug: b/396350461

(cherry picked from commit dc15078)
... needed by the Lavapipe build.

(cherry picked from commit 7e51d75)
Bug: b/406553848
Test: bazel run //cuttlefish/package:cvd -- create \
      --gpu_mode=gfxstream_guest_angle_host_lavapipe
(cherry picked from commit 8881b64)
(cherry picked from commit dc00298)
Noticed by @valentineburley in
google#2997

(cherry picked from commit 670a531)
This resolves

```
libunwind: __unw_add_dynamic_fde: bad fde: FDE is really a CIE
```

logspam with Lavapipe. Lavapipe uses LLVM to JIT compiler shaders and
LLVM acts different depending on whether or not it is used with libgcc
or libunwind:

  libgcc and libunwind __register_frame behave differently

  ...

  // With libunwind, __register_frame has to be called for each FDE entry.

  ...

  // With libgcc, __register_frame takes a single argument:
  // a pointer to the start of the .eh_frame section.

IIUC, Cuttlefish uses libunwind via the Bazel hermatic toolchain.

It looks like llvm/llvm-project#212260 may make
LLVM be able to handle this at runtime in the future.

Bug: b/406553848
(cherry picked from commit 7b2e347)
@rmuthiah rmuthiah closed this Oct 29, 2026
@rmuthiah
rmuthiah deleted the cherry-pick-lavapipe-uprev-1.57 branch October 29, 2026 17:11
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.

2 participants