** Description changed: [ Impact ] - * It is a hardware enablement SRU. + * 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. + * 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. + * 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 + * 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 + * 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 + * 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" + * 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; + 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; + 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": + 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 + 4. Make sure some display/screen is physically connected to the board - 5. Install kmscube: + 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): + 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 + version: "1.5" + vendor: "Mesa Project [..] OpenGL ES 2.x information: [..] - vendor: "freedreno" - renderer: "FD663" + 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. + 7. Verify visually that you can see rotating colorful cube on the screen. + Press 'q` to quit. - 9. Install ubuntu-desktop: + 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. - + 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 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. + * 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. + * 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. + * 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 + * 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 + * 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. + * 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.
-- You received this bug notification because you are a member of Ubuntu-X, which is subscribed to mesa in Ubuntu. https://bugs.launchpad.net/bugs/2112695 Title: Add Adreno623 support for Noble To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/2112695/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~ubuntu-x-swat Post to : ubuntu-x-swat@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-x-swat More help : https://help.launchpad.net/ListHelp