mesa/src/gfxstream
Gurchetan Singh adec216eb0 meson,gfxstream: add Android support via meson2hermetic
Previously, there were no meson.build rules for the Android
portion of gfxstream_vk, since nobody builds gfxstream_vk + Android
via the Android NDK.

Using Soong (and not the Android NDK) is an absolute requirement,
since Android Virtual Devices (AVDs) were amongst to fully
transition to Soong over Android makefiles, leading to
breath-taking and exhilarating build speeds.

The meson build rules that do exist works are designed for
gfxstream_vk + Linux.  That leads to higher maintainence
costs: maintaining hand-written Android.bp files for Android,
and meson.build for Linux.

Enter meson2hermetic.  With this tool, meson.build becomes the
source of truth, and Android.bp are generating automatically,
reducing maintainence costs.

But for this to work, the portion of gfxstream_vk that didn't
have meson build rules needs them.  This patch does this
and there are two things to note:

1) gfxstream_vk + Android needs dependencies that don't have
any pkg-config files, and exist only with the AOSP tree.
These include things like:

   - libqemupipe.ranchu
   - libOpenglCodecCommon
   - libgralloc_cb.ranchu
   - renderControlEncoder

Most of these dependencies support the Goldfish AVD, and will
be deleted over time as the that emulator transitions to
virtio-gpu.  There are more generic Android deps too, like
"android_base".

Generic Android dependencies are given the prefix "android-",
while Goldfish (a.k.a Android Emulator) is given the prefix
"android-aemu-".

The ability to use dependencies that don't have a direct
Linux-distro style analogue is the one of motivators
meson2hermetic.

2) There's a special "gfxstream_emulated_android" case.  This
is for the GfxstreamEnd2EndTests target, which uses the code
defined here:

- src/gfxstream/guest/android/ANativeWindowEmulated.cpp
- src/gfxstream/guest/android/GrallocEmulated.cpp

This is used by Gfxstream Github for CI/CD.

Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39279>
2026-01-20 17:17:58 +00:00
..
aemu gfxstream: meson format -i {all meson files} 2025-11-12 16:05:12 +00:00
codegen gfxstream: Partial revert of "gfxstream: revert "gfxstream: Add Vulkan func/structs for passing debugging data to host"" 2026-01-09 22:50:18 +00:00
guest meson,gfxstream: add Android support via meson2hermetic 2026-01-20 17:17:58 +00:00
.clang-format gfxstream: add clang-format 2024-10-09 22:53:05 +00:00
meson.build gfxstream: explicitly list Python dependencies for gfxstream codegen 2026-01-08 08:02:37 -08:00