blob: 44e58bb2d6957af1ece3c7b849a20a15616760ae [file] [log] [blame]
These instructions will help you build upstream Mesa binaries for DB845c/RB5
and prepare linaro vendor-package.
Build and boot upstream Mesa (freedreno) with AOSP:
---------------------------------------------------
* Build AOSP with upstream Mesa:
$ mkdir $AOSP
$ cd $AOSP
$ repo init -u https://android.googlesource.com/platform/manifest -b master
$ repo sync -j`nproc`
$ cd $AOSP/external/mesa3d
$ git checkout aosp/upstream-main
$ cd $AOSP
$ . build/envsetup.sh
$ lunch db845c-userdebug
$ make TARGET_BUILD_MESA=true -j`nproc`
* Boot the DB845c/RB5 in fastboot mode and flash the images:
$ cd $AOSP/out/target/product/db845c
$ fastboot flash super ./super.img flash boot ./boot.img \
flash vendor_boot ./vendor_boot.img reboot
Updating the Mesa prebuilt binaries in linaro vendor-package:
------------------------------------------------------------
* Before we update and ship the new set of Mesa prebuilt binaries, please make
sure that there are no new or obvious regressions when we test run
CtsGraphicsTestcases, CtsDEQPTestcases and CtsHardwareTestcases on DB845c and
RB5 with the new binaries.
Report any breakages or regressions at https://gitlab.freedesktop.org/mesa/mesa/-/issues
* Copy new Mesa binaries over from AOSP build:
$ git clone git@gitlab.com:LinaroLtd/linaro-aosp/linaro-vendor-package
$ cd linaro-vendor-package/src/db845c/mesa_prebuilt/
$ ./copy_bins.sh # This script will copy Mesa prebuilt binaries from \
$ANDROID_PRODUCT_OUT pre-set by "lunch db845c-userdebug" \
or user need to set it explicitly to $AOSP/out/target/product/db845c
Run "git status" to look for modified binaries. Discard any new *_dri.so in
./lib{,64}/dri/ directory which are usually just a symlink to libgallium_dri.so.
Commit the changes with detailed change log and update top-level src/README
accordingly.
Preparing linaro vendor-package for AOSP:
-----------------------------------------
* Follow instructions in src/README_PrepareVendorPackage to prepare linaro
vendor-package for AOSP.
Troubleshooting:
----------------
* Upstream Mesa is/was broken due to deprecated libbacktrace in AOSP
https://gitlab.freedesktop.org/mesa/mesa/-/issues/7465,
so we may have to use following hack to workaround that build error:
-- a/src/util/meson.build
+++ b/src/util/meson.build
@@ -269,7 +269,7 @@ libmesa_util_sse41 = static_library(
_libmesa_util = static_library(
'mesa_util',
- [files_mesa_util, files_debug_stack, format_srgb, u_indices_gen_c, u_unfilled_gen_c],
+ [files_mesa_util, format_srgb, u_indices_gen_c, u_unfilled_gen_c],
include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
dependencies : deps_for_libmesa_util,
link_with: [libmesa_format, libmesa_util_sse41],
* Upstream also has a new dependency on meson version >= 0.54 now,
and that broke the build on Ubuntu 20.04.5. So update meson by
adding the following untrusted PPA:
$ sudo add-apt-repository ppa:ubuntu-support-team/meson
$ sudo apt update
$ sudo apt install meson
h/t: https://launchpad.net/~ubuntu-support-team/+archive/ubuntu/meson