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

libprism_es2.so: undefined symbol: glXQueryExtension #138

Open
tinu73 opened this issue Jul 16, 2023 · 3 comments
Open

libprism_es2.so: undefined symbol: glXQueryExtension #138

tinu73 opened this issue Jul 16, 2023 · 3 comments

Comments

@tinu73
Copy link

tinu73 commented Jul 16, 2023

I'm using bellsoft-jre17.0.7+7-linux-aarch64-full and try to run the simple JavaFX sample ColorfulCircles:

java -jar ColorfulCircles.jar 
java: symbol lookup error: /usr/lib/jvm/jre-17.0.7-full/lib/libprism_es2.so: undefined symbol: glXQueryExtension

It runs on x86 64 Linux using bellsoft-jre17.0.7+7-linux-amd64-full. What is missing in aarch64 libraries?

Here a more detailes output:

java --add-modules javafx.controls,javafx.fxml \
-Dprism.verbose=true \
-Djavafx.verbose=true \
-Dprism.order=es2 \
-jar ColorfulCircles.jar

JavaFX launchApplication method: launchMode=LM_JAR
Prism pipeline init order: es2 
Using Double Precision Marlin Rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2
Loaded /usr/lib/jvm/jre-17.0.7-full/lib/libprism_es2.so from relative path
	succeeded.
GLFactory using com.sun.prism.es2.X11GLFactory
java: symbol lookup error: /usr/lib/jvm/jre-17.0.7-full/lib/libprism_es2.so: undefined symbol: glXQueryExtension
@voitylov
Copy link
Collaborator

which HW, OS, OS version, and video driver are you using?

Could you post output of ldd libprism_es2.so, find libGLX.so and do nm -D on it?

@tinu73
Copy link
Author

tinu73 commented Jul 19, 2023

I'm using NXP i.MX 8M Mini | Arm Cortex A53, based on Yocto Linux 5.15.32. What i found out ist that Liberica, JavaFX is using OpenGL (es2) pipeline and it only works with X11, GLX. However NXP does not support X11 anymore. NXP BSP supports DISTRO fslc-xwayland, Distro for Wayland with X11. But this distro does not provide full X11 compatiblity anymore, GLX is missing. There are many information around this topic on the internet, for example here: MX8 does not support X11, GLX won´t work.

So my question is if Liberica Full JRE/JDK offers other graphic pipeline than OpenGL (es2) that work with Wayland making it possible to use HW acceleration.

@tinu73
Copy link
Author

tinu73 commented Jul 19, 2023

Output of ldd libprism_es2.so

root@imx8mm-var-dart:/# ldd ./usr/lib/jvm/jre-17.0.7-full/lib/libprism_es2.so
ldd: warning: you do not have execution permission for `./usr/lib/jvm/jre-17.0.7-full/lib/libprism_es2.so'
        linux-vdso.so.1 (0x0000ffffb9dba000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x0000ffffb9bf0000)
        libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x0000ffffb9bd0000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0x0000ffffb9830000)
        libm.so.6 => /lib/libm.so.6 (0x0000ffffb9790000)
        libc.so.6 => /lib/libc.so.6 (0x0000ffffb95e0000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffffb9d81000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x0000ffffb95a0000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x0000ffffb9570000)
        libGAL.so => /usr/lib/libGAL.so (0x0000ffffb9390000)
        libVSC.so => /usr/lib/libVSC.so (0x0000ffffb83d0000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x0000ffffb83b0000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x0000ffffb8390000)

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

No branches or pull requests

2 participants