Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RPI5 MIPI Display Serial Interface DRI fails to load in mesa #1389

Open
BassemMohsen opened this issue Nov 15, 2024 · 1 comment · May be fixed by #1390
Open

RPI5 MIPI Display Serial Interface DRI fails to load in mesa #1389

BassemMohsen opened this issue Nov 15, 2024 · 1 comment · May be fixed by #1390

Comments

@BassemMohsen
Copy link

BassemMohsen commented Nov 15, 2024

Current setup:
Scargarth/Styhead: Raspberry Pi 5, Qt6.8 Demo
MIPI DSI: Waveshare 8.8" with the following Device Tree Overlay
dtoverlay=vc4-kms-v3d dtoverlay=vc4-kms-dsi-waveshare-panel,8_0_inch

Problem observation:
When running, Qt6 QML UI demo, MESA-LOADER fails to load a library with the following error:
MESA-LOADER: failed to open drm-rp1-dsi: /usr/lib/dri/drm-rp1-dsi_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
Mesa uses software rendering softpipe as a fallback of V3D failure.
Qt6 UI performance is very sluggish and poor due to software rendering.

Hashes used:
meta-raspberrypi: 1aeda3f
poky: 8ce494b9cf84e769ac72b201838c76fd2ff894c9
meta-openembedded: 461d85a1831318747af5abe86da193bcde3fd9b4
meta-qt6: 5bf5b55c458c06ff8a037b2508ebe0cb4011dc76

I expected Broadcom Renderer V3D to be used as Qt backend renderer and not softpipe.

Additional info:
HDMI works well and use the correct V3D renderer since it doesn't require mesa to load rp1-dsi_dri.
The library drm-rp1-dsi_dri.so on Raspbian OS bookworm but doesn't exist anywhere else, I couldn't find any sources to build it.


Solution attempt #1:
I tried porting drm-rp1-dsi_dri.so as binary blob from Raspbian, but it had older llvm, libsensors.. etc dependencies that's harder to satisfy.
Solution attempt #1 : Fail.

Solution attempt #2:
I updated mesa to latest and greatest: 24.3.0-rc2 with the following dependencies added:
Build deps: wayland-protocols llvm python3-pyyaml python3-pyyaml-native
Runtime deps: llvm wayland-protocols
Packageconfig -= dri3
packageconfig += gallium-llvm

Solution attempt #2 was a success.
Now mesa-loader doesn't complain about missing library anymore and drm doesn't reference that library.
Qt6 Demo works with full performance, very responsive and RP1 DSI works flawlessly.

Action point:
If you deem my solution useful to upstream, I'm happy to create Pull Request.

BassemMohsen added a commit to BassemMohsen/meta-raspberrypi that referenced this issue Nov 17, 2024
Fixes DRAM DSI linking to missing library drm-rp1-dsi_dri.so

agherzan#1389

Signed-off-by: Bassem Nomany <[email protected]>
@BassemMohsen
Copy link
Author

Added PR:
#1390

BassemMohsen added a commit to BassemMohsen/meta-raspberrypi that referenced this issue Nov 22, 2024
Upgrade to latest official mesa release.

Fixes DRM DSI linking to missing and non exisiting library
drm-rp1-dsi_dri.so on mesa 24.0.7 from poky scarthgap
and styhead.

    agherzan#1389

Signed-off-by: Bassem Nomany <[email protected]>
BassemMohsen added a commit to BassemMohsen/meta-raspberrypi that referenced this issue Nov 22, 2024
Upgrade to latest official mesa release.

Fixes DRM DSI linking to missing and non exisiting library
drm-rp1-dsi_dri.so on mesa 24.0.7 from poky scarthgap
and styhead.

    agherzan#1389

Signed-off-by: Bassem Nomany <[email protected]>
agherzan pushed a commit to BassemMohsen/meta-raspberrypi that referenced this issue Dec 12, 2024
Upgrade to latest official mesa release.

Fixes DRM DSI linking to missing and non exisiting library
drm-rp1-dsi_dri.so on mesa 24.0.7 from poky scarthgap
and styhead.

    agherzan#1389

Signed-off-by: Bassem Nomany <[email protected]>
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 a pull request may close this issue.

1 participant