| 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 |