Skip to content

Commit

Permalink
virgl-angle: add venus interface and on device build
Browse files Browse the repository at this point in the history
todo fix this dead lock

virgl-angle --venus --angle-null &
VN_DEBUG=all vkcube
MESA-VIRTIO: debug: stuck in ring seqno wait with iter at 4096
  • Loading branch information
john-peterson committed Feb 9, 2025
1 parent 1561c12 commit 3987caf
Showing 1 changed file with 24 additions and 9 deletions.
33 changes: 24 additions & 9 deletions packages/virglrenderer-android/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,28 @@ termux_step_post_get_source() {
}

termux_step_host_build() {
if $TERMUX_ON_DEVICE_BUILD; then
local _INSTALL_PREFIX=$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/opt/$TERMUX_PKG_NAME
CC=clang
CXX=c++
CROSS=
# need android 30+
# vim $PREFIX/include/sys/mman.h -c /memfd_create
export CFLAGS="--target=aarch64-linux-android30 -w "
else
# This package should use the Android NDK toolchain to compile, not
# our custom toolchain, so I'd like to compile it in the hostbuild step.
export PATH="$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH"
export CCTERMUX_HOST_PLATFORM=$TERMUX_HOST_PLATFORM$TERMUX_PKG_API_LEVEL
if [ $TERMUX_ARCH = arm ]; then
CCTERMUX_HOST_PLATFORM=armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL
fi

local _INSTALL_PREFIX=$TERMUX_PREFIX/opt/$TERMUX_PKG_NAME
CC=$(command -v $CCTERMUX_HOST_PLATFORM-clang)
CXX=$(command -v $CCTERMUX_HOST_PLATFORM-clang++)
CROSS=--cross-file $TERMUX_MESON_CROSSFILE
CFLAGS=
fi

PKG_CONFIG="$TERMUX_PKG_TMPDIR/host-build-pkg-config"
local _HOST_PKGCONFIG=$(command -v pkg-config)
Expand All @@ -42,20 +55,17 @@ termux_step_host_build() {
chmod +x $PKG_CONFIG

AR=$(command -v llvm-ar)
CC=$(command -v $CCTERMUX_HOST_PLATFORM-clang)
CXX=$(command -v $CCTERMUX_HOST_PLATFORM-clang++)
LD=$(command -v ld.lld)
CFLAGS=""
CPPFLAGS=""
CXXFLAGS=""
LDFLAGS="-Wl,-rpath=$_INSTALL_PREFIX/lib"
export LDFLAGS="-Wl,-rpath=$_INSTALL_PREFIX/lib"
STRIP=$(command -v llvm-strip)
termux_setup_meson

# Compile libepoxy
mkdir -p libepoxy-build
$TERMUX_MESON $TERMUX_PKG_SRCDIR/libepoxy libepoxy-build \
--cross-file $TERMUX_MESON_CROSSFILE \
$CROSS \
--prefix=$_INSTALL_PREFIX \
--libdir lib \
-Degl=yes -Dglx=no -Dx11=false
Expand All @@ -64,14 +74,19 @@ termux_step_host_build() {
# Compile virglrenderer
mkdir -p virglrenderer-build
$TERMUX_MESON $TERMUX_PKG_SRCDIR virglrenderer-build \
--cross-file $TERMUX_MESON_CROSSFILE \
$CROSS \
--prefix=$_INSTALL_PREFIX \
--libdir lib \
-Dplatforms=egl
-Dplatforms=egl \
-Dvenus=true
ninja -C virglrenderer-build install -j $TERMUX_PKG_MAKE_PROCESSES

# i have to say everything twice as usual
patchelf --set-rpath $_INSTALL_PREFIX/lib $_INSTALL_PREFIX/bin/virgl_test_server

# Move our virglrenderer binary to regular bin directory.
mv $_INSTALL_PREFIX/bin/virgl_test_server $TERMUX_PREFIX/bin/virgl_test_server_android
mkdir $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/bin
mv $_INSTALL_PREFIX/bin/virgl_test_server $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/bin/virgl-angle

# Cleanup.
rm -rf $_INSTALL_PREFIX/{bin,include,lib/pkgconfig}
Expand Down

0 comments on commit 3987caf

Please sign in to comment.