01-16-2019 04:07 PM
I'm trying to run a GL app on a ZCU102 (board rev 1.1) and PetaLinux/SDK 2018.3.
As soon as the app makes a GL call, I get the following error:
libGL error: unable to load driver: xlnx_dri.so libGL error: driver pointer missing libGL error: failed to load driver: xlnx
It looks like at that time /usr/lib/dri/swrast_dri.so is loaded too. Which leads me to believe that this previous error during X initialization is the real cause:
[ 138.692] (EE) AIGLX error: dlopen of /usr/lib/dri/armsoc_dri.so failed (/usr/lib/dri/armsoc_dri.so: cannot open shared object file: No such file or directory) [ 138.692] (EE) AIGLX: reverting to software rendering
In any case, I can't find anywhere either armsoc_dri.so or xlnx_dri.so.
For the record, I don't have one of the supported monitors. I had to initialize X like in this post so that I could get past the call to XOpenDisplay. In my monitor, with an active DP to HDMI adapter, I can see the console cursor blinking while the board boots up, but then it freezes. The monitor is active, and reports a correct 1920x1200 60Hz signal, and the X log shows the correct monitor model and all the resolutions and refresh rates it supports, but nothing shows up and startx fails with an assert
Assertion `key->initialized' failed
Hope this is enough information so you can help me.
Thank you in advance.
01-16-2019 05:58 PM
OK, so I figured that you can't use GLX, instead you have to use EGL on the device.
This got me further, and my app now loads libMali.so, which i don't think it was doing before.
Now eglCreateWindowSurface fails with error EGL_BAD_NATIVE_WINDOW, which I guess is related to the way I'm initializing the X system.
01-20-2019 08:26 PM
Yes you need use EGL, take a look on tricube application specified in UG1209. We have a recipe and X11 based OpenGL application which uses MALI-400 libraries.
01-21-2019 03:14 AM
Thank you, I couldn't find the source code for that demo, but with the debugger I was able to confirm it was using EGL as well.
The final EGL error was caused by a bug in our code, and the fact that I was linking against libEGL and libEGLv2, instead of libMali. Once I fixed those two things it worked.
01-21-2019 06:35 AM
If you refer UG1209 https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_3/ug1209-embedded-design-tutorial.pdf page 163 you can click on "reference design files" so you can donwload the application and recipe.
I have added the same link below.
01-24-2019 07:25 PM
Thank you @sandeepg,
Now I have a different problem. It's not related to this, but maybe you can help me.
I'm creating a system using ubuntu 16.04. It uses xorg-server 1.18.4, with video driver ABI version 20.0. I've tried using armsoc_drv.so from the image created by PetaLinux 2018.3, but that uses xorg-server 1.19.3, with an incompatible video driver ABI version 23.0. After a lot of trial and error, I've managed to build the driver with the correct version of xorg-server, but to do so I've modified the recipes in my PetaLinux install. I guess there's got to be a more elegant way to achieve this at the project level, am I right?
Thank you very much for your help.