Skip to content

Conversation

@chkohn
Copy link
Contributor

@chkohn chkohn commented Feb 3, 2026

Fix various ros2-jazzy desktop-full build issues when building for AMD-Xilinx devices with Mali-400 (Lima) or Mali G78AE devices (proprietary ARM driver) using scarthgap.

This PR depends on meta-qt5/meta-qt5#627.

Update build and export dependencies for various ogre recipes from
mesa to virtual/mesa to avoid build failures with mesa-gl as mesa
provider.

ERROR: Nothing PROVIDES 'mesa' (but meta-ros/meta-ros2-jazzy/generated-recipes/rviz/rviz-ogre-vendor_14.1.19-1.bb,
       meta-ros/meta-ros2-jazzy/generated-recipes/gz-ogre-next-vendor/gz-ogre-next-vendor_0.0.5-1.bb
       DEPENDS on or otherwise requires it)
mesa was skipped: PREFERRED_PROVIDER_virtual/libgl set to mesa-gl, not mesa

Signed-off-by: Christian Kohn <chris.kohn@amd.com>
Forcefully remove the glxext.h file in the configure task,
otherwise, if the same recipe is built in an iterative fashion,
a second call of the rm command will error out as follows:

rm: cannot remove 'ogre-next/2.3.3/git/RenderSystems/GL3Plus/include/GL/glxext.h': No such file or directory

Signed-off-by: Christian Kohn <chris.kohn@amd.com>
meta-clang is not a required layer and clang-native is not needed
to build this recipe. Remove unnecessary dependency.

ERROR: Nothing PROVIDES 'clang-native' (but meta-ros/meta-ros-common/recipes-graphics/openexr/openexr_3.2.1.bb
       DEPENDS on or otherwise requires it). Close matches:

Signed-off-by: Christian Kohn <chris.kohn@amd.com>
Convert the openmp dependency into a package config and disable it
by default as openmp introduces a hard dependency on meta-clang and
the layer doesn't advertise such a dependency:

ERROR: Nothing PROVIDES 'openmp' (but meta-ros/meta-ros-common/recipes-extended/libflann/libflann_1.9.2.bb
       DEPENDS on or otherwise requires it).

Signed-off-by: Christian Kohn <chris.kohn@amd.com>
Add patch to add missing GL_UNSIGNED_INT_8_8_8_8_REV define.

| FAILED: src/plugins/minimal_scene/CMakeFiles/MinimalScene.dir/EngineToQtInterface.cc.o
| gz-gui8/8.4.0/git/src/plugins/minimal_scene/EngineToQtInterface.cc: In member function 'GLuint gz::gui::plugins::EngineToQtInterface::TextureId(gz::rendering::v8::CameraPtr&)':
| gz-gui8/8.4.0/git/src/plugins/minimal_scene/EngineToQtInterface.cc:179:7: error: 'GL_UNSIGNED_INT_8_8_8_8_REV' was not declared in this scope; did you mean 'GL_UNSIGNED_INT_5_9_9_9_REV'?
|   179 |       GL_UNSIGNED_INT_8_8_8_8_REV, this->dataPtr->fallbackImage->Data());
|       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|       |       GL_UNSIGNED_INT_5_9_9_9_REV

Signed-off-by: Christian Kohn <chris.kohn@amd.com>
Add the OSGPL-1.0 license which is based on the LGPL-2.1-only license
with WxWindows-exception-3.1 in the meta-ros-common licenses directory.

Update the recipe to use the newly added OSGL-1.0 license replacing
the existing "LGPL-2.1-only & WxWindows-exception-3.1" license
designation which is not recognized by the build system and triggers a
QA warning as well as a SPDX creation error if SBOM is enabled in the
build:

ERROR: openscenegraph-3.6.5+git-r0 do_create_spdx: Cannot find any text for license WxWindows-exception-3.1

Signed-off-by: Christian Kohn <chris.kohn@amd.com>
@robwoolley
Copy link
Collaborator

Thanks, @chkohn

I did a quick check and I believe this affects these boards:

GPU AMD‑Xilinx Devices
Mali‑400MP (Lima‑supported) Zynq UltraScale+ MPSoC EG / EV
Mali‑G78AE Versal AI Edge Series Gen 2, Versal Prime Series Gen 2

Do you know if this also affects the AMD Kria boards using Mali‑400 MP2?

Cheers,
Rob

@chkohn
Copy link
Contributor Author

chkohn commented Feb 5, 2026

@robwoolley your table is correct, you can club Kria into the first row as it is just another Zynq UltraScale+ in a SoM forma-factor, but same SoC device and thus same GPU.

In fact, my primary testing has been on a Kria KR260 for this series (incl runtime testing), whereas my test coverage for versal gen2 has been mostly build testing.

I should also mention that by default, we enable the proprietary ARM driver for mali400 in our zynqmp yocto machines. but for my testing, I changed the driver to lima which is an important detail. the proprietary ARM driver cannot be used here.

i you have any questions on this series, please let me know.

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.

2 participants