← Back to team overview

debcrafters-packages team mailing list archive

[Bug 2112695] Re: Add Adreno623 support for Noble

 

The PPA with the packages for Noble and Oracular is
https://launchpad.net/~kadamski/+archive/ubuntu/sru

I did run a test on my test board and I'm attaching the log from the
kmscube run. You can see that before the packages from the PPA are
installed, the kmscube segfaults. After enabling the PPA, updating mesa
packages and running kmscube again, there is a successful run. What you
can't see from the logs but I did see on my own eyes was the colorful
spinning cube on the screen.

I didn't attach that because it doesn't show much useful information but I then did:
sudo apt install ubuntu-desktop-minimal

And observed the login screen to appear.

The Oracular package was built on LP and I did install it in a temporary sbuild, with:
$ apt install software-properties-common kmscube
$ add-apt-repository ppa:kadamski/sru
$ apt upgrade

To make sure the package is also installable without any problems.

-- 
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to mesa in Ubuntu.
https://bugs.launchpad.net/bugs/2112695

Title:
  Add Adreno623 support for Noble

Status in mesa package in Ubuntu:
  New

Bug description:
  [ Impact ]
   * It is a hardware enablement SRU.

   * There is a desire from the community and our Partner (Qualcomm) for being
     able to use the relatively new Adreno 663 GPU for platforms newer than RB3
     (which is supported by
     https://ubuntu.com/download/qualcomm-iot) platform in Ubuntu 24.04.

   * To enable the new GPU, Mesa needs to be made aware about the the
     GPUId/chip_id.

  [ Fix ]
   * Mesa commit:
     334af37697e49e08567b3a3067116cf9568475d2 ("freedreno: Add support for Adreno 663 GPU")
     https://gitlab.freedesktop.org/mesa/mesa/-/commit/334af37697e49e08567b3a3067116cf9568475d2

   * More information could be found in:
     https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33525

  [ Test Plan ]

   * This was already tested on Qualcomm evaluation board using
     Ubuntu Desktop 24.04 Beta release from
     https://ubuntu.com/download/qualcomm-iot

   * Follow the setps
     0. Install Ubuntu Server 24.04 from https://ubuntu.com/download/qualcomm-iot
     1. Boot the system and log-in using serial console, ssh or virtual terminal
     2. Verify we are running Adreno Adreno623. Following script should return "OK"
  #!/bin/bash
  sudo apt update
  sudo apt-get install build-essential libdrm-dev pkgconf
  cat <<END > /tmp/chip_id.c
  #include <stdio.h>
  #include <fcntl.h>
  #include <drm/msm_drm.h>
  #include <xf86drm.h>

  int main(int argc, char *argv[])
  {
          struct drm_msm_param req = {.pipe = MSM_PIPE_3D0, .param = MSM_PARAM_CHIP_ID};
          int fd;

          drmCommandWriteRead(open("/dev/dri/card0", O_RDWR | O_NONBLOCK), DRM_MSM_GET_PARAM, &req, sizeof(req));
          printf("%llx\n", req.value);
          return 0;
  }
  END
  gcc /tmp/chip_id.c $(pkg-config --libs --cflags libdrm) -o /tmp/chip_id
  [ $(/tmp/chip_id) == "ffff06060300" ] && echo OK || echo ERROR

     3. Verify we are running Freedreno. Following command should return "msm":
  basename $(readlink /sys/class/drm/card0/device/driver/module)

     4. Make sure some display/screen is physically connected to the
  board

     5. Install  kmscube:
  sudo apt install kmscube

     6. Verify the output of the 'kmscube' command run from the virtual.
     Expected output (especially note the "FD663" as renderer):
  [..]
  EGL information:
    version: "1.5"
    vendor: "Mesa Project
  [..]
  OpenGL ES 2.x information:
  [..]
    vendor: "freedreno"
    renderer: "FD663"
  [..]
  Rendered 120 frames in 2.004499 sec (59.865323 fps)

     7. Verify visually that you can see rotating colorful cube on the screen.
     Press 'q` to quit.

     9. Install ubuntu-desktop:
  sudo apt-add-repository ppa:ubuntu-qcom-iot/qcom-noble-ppa
  sudo apt install ubuntu-desktop-minimal

     10. Reboot the system and verify that you can see ubuntu login screen on
         your display.

  [ Where problems could occur ]

   * The chip ID could be wrong. In this case the change would effectively be
     a noop and the test would fail/crash. It is thus mitigated by the test
     plan explained above.

   * The chip ID could be a duplicate for another existing GPU entry, therefore
     creating a conflict. It was manually verified that this is not the case.

   * Since this code is Qualcomm specific, it will not have an impact on
     any other hardware.

   * The change is a one-liner that adds a new ID to the existing GPU entry,
     therefore the patch is very traceable.

  [ Other Info ]

   * The test was performed on an Qualcomm evaluation board with QCS9100

   * Without this patch in mesa, running kmscube produces a SIGSEGV due to
   https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33830

   * The test can only be performed on Noble since no other Ubuntu release
   works on this board yet. I did build and install test the package on all
   other releases.

   * Plucky and Questing already have this change.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/2112695/+subscriptions



References