| commit | d5003225dd93cc664a41d35d5e368a6b1a607dbc | [log] [tgz] |
|---|---|---|
| author | Serdar Kocdemir <kocdemir@google.com> | Tue Jul 22 16:09:07 2025 +0100 |
| committer | Serdar Kocdemir <kocdemir@google.com> | Tue Jul 22 16:09:07 2025 +0100 |
| tree | a63323608debc58e7ae808d7d5b39846e09d8cbc | |
| parent | 694b04ea1fa7e054dca2ccef2e6e2376c576fe24 [diff] |
Separate external memory metal usage from MoltenVK In order to support other drivers, without the portability extension requirements, separate external memory metal usages from moltenvk usage checks. This enables running the emulator with new KosmicKrisp driver on the host gpu driver path on Mac. Bug: 433496880 Test: run emulator with kosmickrisp ICD Change-Id: I3639bfe9ca555c16c2954bcf96f3703933d0b51f
Graphics Streaming Kit, colloquially known as Gfxstream and previously known as Vulkan Cereal, is a collection of code generators and libraries for streaming rendering APIs from one place to another.
The Bazel build current supports building the host server which is typically used for Android virtual device host tooling.
cd <gfxstream project> bazel build ... bazel test ...
The CMake build has historically been used for building the host backend for Goldfish.
The CMake build can be used from either a standalone Gfxstream checkout or from inside an Android repo.
Then,
mkdir build cd build cmake .. -G Ninja ninja
For validating a Goldfish build,
cd <aosp/emu-main-dev repo> cd external/qemu python android/build/python/cmake.py --gfxstream
The Meson build has historically been used for building the backend for Linux guest on Linux host use cases.
cd <gfxstream project>
meson setup \
-Ddefault_library=static \
-Dgfxstream-build=host \
build
meson compile -C build
The Android Soong build is used for building the guest components for virtual device (Cuttlefish, Goldfish, etc) images and was previously used for building the host backend for virtual device host tools.
Please follow the instructions here for getting started with Android development and setting up a repo.
Then,
m libgfxstream_backend
and libgfxstream_backend.so can be found in out/host.
For validating changes, consider running
cd hardware/google/gfxstream mma
to build everything inside of the Gfxstream directory.
Make sure the latest CMake is installed. Make sure Visual Studio 2019 is installed on your system along with all the Clang C++ toolchain components. Then:
mkdir build cd build cmake . ../ -A x64 -T ClangCL
A solution file should be generated. Then open the solution file in Visual studio and build the gfxstream_backend target.
Run:
scripts/generate-apigen-source.sh
To re-generate both guest and Vulkan code, please run:
scripts/generate-gfxstream-vulkan.sh
bazel test ...
or
bazel test common/end2end:gfxstream_end2end_tests
From within an Android repo, run:
atest --host GfxstreamEnd2EndTests
There are a bunch of test executables generated. They require libEGL.dll and libGLESv2.dll and vulkan-1.dll to be available, possibly from your GPU vendor or ANGLE, in the %PATH%.
This is not an officially supported Google product. This project is not eligible for the Google Open Source Software Vulnerability Rewards Program.