Skip to content

Conversation

@bajosoto
Copy link
Contributor

@bajosoto bajosoto commented Dec 1, 2025

This PR reintroduces a hardware‐accelerated Qt pipeline so Okuda can run on eglfs/KMS rather than the software framebuffer:

  • build.sh now configures Qt with -eglfs -gbm -kms (and removes the -linuxfb/-no-gbm/-no-kms overrides) so the EGLFS GBM plugin is built. The build now fails early if libqeglfs-kms-integration.so is missing after make install.
  • tools/sysroot_multistrap.cfg pulls the Mesa/DRM dev packages (libegl1-mesa-dev, libgles2-mesa-dev, libgbm-dev, libdrm-dev) into the cross sysroot so the new plugin links.
  • debian/control.in declares the corresponding runtime deps (libegl1, libgbm1, libdrm2, libgles2) and the build verifies that libqeglfs-kms-integration.so lands in /opt/qt/plugins/egldeviceintegrations.
  • The old Vivante injection logic and packaging blocks were dropped because we now rely on the Mesa stack.

These changes produce a Qt package that ships the eglfs/KMS backend out of the box, along with the Mesa libraries it needs. Combined with the kernel work (etnaviv) and service updates, Okuda can run with vsync again on Bookworm.

The following are supplementary to this PR:
jedi-cookbook: : https://github.com/Ultimaker/jedi-cookbook/pull/294
um-kernel: Ultimaker/um-kernel#217
okuda: https://github.com/Ultimaker/okuda/pull/1207

How has this been tested

In combination with the packages from the PRs above:

  • Went through the menus and different animations to check that everything looks good on a F4, S6, S8

Pull Vivante EGL/GLES into Qt sysroot and fail if eglfs_viv is missing
- enable -gbm/-kms during configure and drop the Vivante-specific packaging
- extend the sysroot recipe with libdrm/libgbm/libegl Mesa headers/libs
- require libegl1, libgbm1, libdrm2 at runtime and sanity-check eglfs_kms plugin
@bajosoto bajosoto changed the title Sem 668 re enable eglfs Sem-668: Re-enable EGLFS Dec 1, 2025
Qt.io is having constant issues with DDoS attacks so has become unreliable
@bajosoto bajosoto marked this pull request as ready for review December 4, 2025 09:50
@bajosoto bajosoto requested a review from Copilot December 4, 2025 09:50
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR re-enables hardware-accelerated Qt rendering using EGLFS/KMS by configuring Qt with the necessary Mesa/GBM/DRM support, removing the previous Vivante-specific injection logic, and ensuring the required Mesa libraries and Qt plugins are packaged correctly for Bookworm.

Key Changes

  • Qt build configuration now includes -eglfs -gbm -kms flags and removes software framebuffer overrides
  • Mesa/DRM development packages added to cross-compilation sysroot
  • Vivante-specific header files and injection logic removed from the build process

Reviewed changes

Copilot reviewed 35 out of 62 changed files in this pull request and generated 1 comment.

File Description
tools/sysroot_multistrap.cfg Adds Mesa/DRM development packages (libegl1-mesa-dev, libgles2-mesa-dev, libgbm-dev, libdrm-dev) to the cross-compilation sysroot
tools/vivante/imx8/include/HAL/* Removes previously committed Vivante proprietary header files that are no longer needed with Mesa stack
tools/vivante/imx8/include/GLES3/* Removes Vivante-specific GLES3 headers now replaced by standard Mesa headers

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bajosoto bajosoto merged commit 512e3bd into master/imx8 Dec 9, 2025
8 checks passed
@bajosoto bajosoto deleted the SEM-668-re-enable-eglfs branch December 9, 2025 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants