JOGL issue on Linux Asahi

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

JOGL issue on Linux Asahi

Nicolas Roduit
I'm testing OpenGL 4.6 drivers on Apple Silicon hardware, see this post.

The advantage of using Asahi in dual boot (perfectly legal) is OpenGL 4.6 vs 4.1 support on macOS. This enables the use of compute shaders.

Unfortunately, I can't get jogl linux-aarch64 to work with this profile:

28.03.2024 11:09:22.620 *INFO* [JOGL-GLWorkerThread-] org.weasis.dicom.viewer3d.View3DFactory: Video card for OpenGL: Mesa, Apple M1 (G13G B1) 4.6 (Core profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware) - 4.6 (Core Profile) Mesa 24.1.0-asahi20240228

The JVM crash:

# JRE version: OpenJDK Runtime Environment Temurin-21.0.1+12 (21.0.1+12) (build 21.0.1+12-LTS)
# Java VM: OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (21.0.1+12-LTS, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# C  [asahi_dri.so+0xbeb41c]

Current thread (0x0000ffff14621300):  JavaThread "AWT-EventQueue-0"        [_thread_in_native, id=6937, stack(0x0000fffea7a00000,0x0000fffea7c00000) (2048K)]

Stack: [0x0000fffea7a00000,0x0000fffea7c00000],  sp=0x0000fffea7bf95f0,  free space=2021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [asahi_dri.so+0xbeb41c]
C  [asahi_dri.so+0xbea800]
C  [asahi_dri.so+0x1b2eb0]
C  [asahi_dri.so+0x1b385c]
C  [asahi_dri.so+0x187c60]
C  [asahi_dri.so+0x189d54]
C  [libjogl_desktop.so+0x5dc8c]  Java_jogamp_opengl_gl4_GL4bcImpl_dispatch_1glTexImage2D1__IIIIIIIILjava_lang_Object_2IZJ+0xd0
j  jogamp.opengl.gl4.GL4bcImpl.dispatch_glTexImage2D1(IIIIIIIILjava/lang/Object;IZJ)V+0
j  jogamp.opengl.gl4.GL4bcImpl.glTexImage2D(IIIIIIIILjava/nio/Buffer;)V+122
j  org.weasis.dicom.viewer3d.vr.Preset.init(Lcom/jogamp/opengl/GL4;Z)V+183
j  org.weasis.dicom.viewer3d.vr.View3d.initShaders(Lcom/jogamp/opengl/GL4;)V+633
Here is the debug test with jogamp:
~/Downloads/jogl$ sh etc/test_dbg.sh 
/usr/bin/java
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment (Red_Hat-17.0.9.0.9-4) (build 17.0.9+9)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.9.0.9-4) (build 17.0.9+9, mixed mode)
LIBXCB_ALLOW_SLOPPY_LOCK:
LIBGL_DRIVERS_PATH:
LIBGL_DEBUG:
java
CLASSPATH: jar/gluegen-rt.jar:jar/jogl-all.jar

ELF-1: Using /proc/self/exe
ELF-1: cpuName aarch64 -> ARM64, EABI_AARCH64, machDesc LP64_UNIX(7)
ELF-1: Got ELF-1[vers 1, machine[183, ARM64, EABI_AARCH64, machDesc LP64_UNIX(7)], bits 64, enc LSB, abi[os 0, vers 0], type shared]
ELF-2: cpuName aarch64 -> ARM64, EABI_AARCH64
ELF-2: Got ELF-2[ARM64, EABI_AARCH64, flags[0x0], sh-num 33]
Platform.Elf: valid true, elfCpuName aarch64, cpuType ARM64, abiType EABI_AARCH64, elfLittleEndian 1
Platform.Endian: test-little true, elf[valid true, val 1] -> LITTLE_ENDIAN true
Platform.Property: ARCH aarch64, CpuType ARM64, ABIType EABI_AARCH64
Platform.Hard: ARCH aarch64, CPU_ARCH ARM64, ABI_TYPE EABI_AARCH64 - strategy 210(isAndroid false, elfValid true), useDynLibs true
forceES2    false
forceES3    false
forceGL3    false
forceGL4ES3 false
getJarUri Default jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/com/jogamp/common/os/Platform.class
	-> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/com/jogamp/common/os/Platform.class
getJarUri res: com.jogamp.common.os.Platform -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/com/jogamp/common/os/Platform.class -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/com/jogamp/common/os/Platform.class
IOUtil.getTempRoot(): tempX1 </tmp>, used true
IOUtil.getTempRoot(): tempX3 <null>, used false
IOUtil.getTempRoot(): tempX4 </home/nicolas>, used true
IOUtil.getTempRoot(): tempX2 </home/nicolas/.cache>, used true
IOUtil.testDirExec(): test-exe </tmp/jogamp_exe_tst7926828519526091316.sh>, existingFile false, isNioExec true, returned 0
IOUtil.testDirExec(): abs-path </tmp>: res 1 -> true
IOUtil.testDirExec(): total 18ms, create 12ms, fill 0ms, execute 6ms
IOUtil.testDirImpl(tempX1): </tmp>, create true, exec true: true
IOUtil.testDirExec(): test-exe </tmp/jogamp_0000/jogamp_exe_tst1910454561651791772.sh>, existingFile false, isNioExec true, returned 0
IOUtil.testDirExec(): abs-path </tmp/jogamp_0000>: res 1 -> true
IOUtil.testDirExec(): total 1ms, create 0ms, fill 0ms, execute 1ms
IOUtil.testDirImpl(tempX1): </tmp/jogamp_0000>, create true, exec true: true
IOUtil.getTempRoot(): temp dirs: exec: /tmp/jogamp_0000, noexec: /tmp/jogamp_0000
IOUtil.testDirImpl(testDir): </tmp/jogamp_0000/file_cache>, create true, exec false: true
TempFileCache: Static Initialization ---------------------------------------------- OK: true
TempFileCache: Thread: main, CL 0x42110406, tempBaseDir /tmp/jogamp_0000/file_cache, executable true
TempFileCache: tmpFile = /tmp/jogamp_0000/file_cache/jln14305947333059389788.tmp
TempFileCache: lckFile = /tmp/jogamp_0000/file_cache/jln14305947333059389788.lck
TempFileCache: tmpRootDir = /tmp/jogamp_0000/file_cache/jln14305947333059389788
TempFileCache: Setting jnlp.jogamp.tmp.cache.root=jln14305947333059389788
------------------------------------------------------------------ OK: true
TempFileCache: new TempFileCache() --------------------- (static ok: true)
TempFileCache: *** Reaper: deleteOldTempDirs in /tmp/jogamp_0000/file_cache
TempFileCache: Thread: main, CL 0x42110406, this 0x631330c
TempFileCache: tempDir /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230 (ok: true)
----------------------------------------------------------
TempJarCache.initSingleton(): ok true, /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230, executable true
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101.tmp)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64/libgluegen_rt.so)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64/libjogl_desktop.so)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64/libjogl_mobile.so)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64/libnativewindow_awt.so)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64/libnativewindow_drm.so)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64/libnativewindow_x11.so)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64/libnewt_drm.so)
TempFileCache: removeAll(/tmp/jogamp_0000/file_cache/jln17132585225716752772/jln11441683556972563101/natives/linux-aarch64/libnewt_head.so)
JNILibLoaderBase: addNativeJarLibs(
  classesFromJavaJars   = [class jogamp.common.Debug]
  singleJarMarker       = null
)
getJarUri Default jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/jogamp/common/Debug.class
	-> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/jogamp/common/Debug.class
getJarUri res: jogamp.common.Debug -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/jogamp/common/Debug.class -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/jogamp/common/Debug.class
getJarName res: gluegen-rt.jar
JNILibLoaderBase: jarBasename: gluegen-rt
JNILibLoaderBase: addNativeJarLibsImpl(
  classFromJavaJar  = class jogamp.common.Debug
  classJarURI       = jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar!/jogamp/common/Debug.class
  jarBasename       = gluegen-rt.jar
  os.and.arch       = linux-aarch64
  nativeJarBasename = gluegen-rt-natives-linux-aarch64.jar
)
JNILibLoaderBase: addNativeJarLibsImpl: initial: file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt.jar -> file:/home/nicolas/Downloads/jogamp-all-platforms/jar/
JNILibLoaderBase: addNativeJarLibsImpl: nativeLibraryPath: natives/linux-aarch64/
JNILibLoaderBase: addNativeJarLibsImpl: module: gluegen-rt-natives-linux-aarch64.jar -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt-natives-linux-aarch64.jar!/
getJarFile.0: jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt-natives-linux-aarch64.jar!/
getJarFile.1: jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt-natives-linux-aarch64.jar!/
getJarFile res: /home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt-natives-linux-aarch64.jar
TempJarCache: addNativeLibs: jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt-natives-linux-aarch64.jar!/: nativeJar /home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt-natives-linux-aarch64.jar (NEW)
TempJarCache: validateCertificates: OK - No rootCerts in given class jogamp.common.Debug, nativeJar /home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt-natives-linux-aarch64.jar
JarUtil: extract: /home/nicolas/Downloads/jogamp-all-platforms/jar/gluegen-rt-natives-linux-aarch64.jar -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230, extractNativeLibraries true (natives/linux-aarch64/), extractClassFiles false, extractOtherFiles false
JarUtil: JarEntry : META-INF/MANIFEST.MF other-file skipped
JarUtil: JarEntry : jogamp/nativetag/common/linux/aarch64/TAG.class class-file skipped
JarUtil: JarEntry : isNativeLib true, isClassFile false, isDir false, isRootEntry false
JarUtil: MKDIR (parent): natives/linux-aarch64/libgluegen_rt.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64
JarUtil: EXTRACT[1]: [gluegen_rt -> ] natives/linux-aarch64/libgluegen_rt.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libgluegen_rt.so: 13688 bytes, addedAsNativeLib: true
JNILibLoaderBase: addNativeJarLibsImpl.X: gluegen-rt.jar / gluegen-rt-natives-linux-aarch64.jar -> ok: true; duration: now 1 ms, total 1 ms (count 1, avrg 1.000 ms)
JNILibLoaderBase: addNativeJarLibsWhenInitialized: count 1, ok true
NativeLibrary.findLibrary(<gluegen_rt>) (TempJarCache): /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libgluegen_rt.so
JNILibLoaderBase: loadLibraryInternal(gluegen_rt), TempJarCache: /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libgluegen_rt.so
JNILibLoaderBase: System.load(/tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libgluegen_rt.so) - mode 2
JNILibLoaderBase: loadLibraryInternal(gluegen_rt): OK - mode 2
JNILibLoaderBase: Loaded Native Library: gluegen_rt
JNILibLoaderBase: loaded gluegen_rt
java.lang.Exception: JVMUtil.initSingleton() .. initialized main
	at jogamp.common.jvm.JVMUtil.<clinit>(JVMUtil.java:62)
	at com.jogamp.common.os.Platform$1.run(Platform.java:324)
	at com.jogamp.common.util.SecurityUtil.doPrivileged(SecurityUtil.java:80)
	at com.jogamp.common.os.Platform.<clinit>(Platform.java:290)
	at com.jogamp.common.util.VersionUtil.getPlatformInfo(VersionUtil.java:57)
	at com.jogamp.common.util.VersionUtil.getPlatformInfo(VersionUtil.java:99)
	at com.jogamp.newt.opengl.GLWindow.main(GLWindow.java:1102)
MachineDataInfoRuntime.initialize():
 Static MachineDataInfoStatic: LP64_UNIX(7): MachineDataInfo: runtimeValidated false, 32Bit false, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    8 / 8
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 16 / 16
  pointer 8 / 8, page    4096
 Runtime MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    8 / 8
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 16 / 16
  pointer 8 / 8, page    16384
-----------------------------------------------------------------------------------------------------
Platform: LINUX / Linux 6.6.3-414.asahi.fc39.aarch64+16k (6.6.3), aarch64 (ARM64, EABI_AARCH64), 8 cores, littleEndian true
MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    8 / 8
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 16 / 16
  pointer 8 / 8, page    16384
Platform: Java Version: 17.0.9 (17.0.9u0), VM: OpenJDK 64-Bit Server VM, Runtime: OpenJDK Runtime Environment
Platform: Java Vendor: Red Hat, Inc., https://www.redhat.com/, Java17, dynamicLib: true, AWT enabled: true
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.common
Extension Name: com.jogamp.common
Specification Title: GlueGen Java Bindings Generator
Specification Vendor: JogAmp Community
Specification Version: 2.5
Implementation Title: GlueGen Run-Time
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.5.0
Implementation Build: 2.5-b967-20230818
Implementation Branch: origin/master
Implementation Commit: a235ae5dae463afa16f62f48bf62f896efa80b68
Implementation SHA Sources: 784913ee2d456eede9cfaf94e1182ff484f24107548dee8655d7207b858936ea
Implementation SHA Classes: 2ccd03d934cccce4f0bcc44aa3dc5c1999382abe812245c6bfbc5c1f8467d56f
Implementation SHA Classes-this: eceeebdce7de6d72726a1dd2b74d9716c6048db47a3ac197bf9ab88f09e9186c
Implementation SHA Natives: eb1fad0f383f4b918219d2c856f5ca10474433692e7d6f79920989a74d3cc64b
Implementation SHA Natives-this: 0
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.opengl
Extension Name: com.jogamp.opengl
Specification Title: Java Bindings for OpenGL API Specification
Specification Vendor: JogAmp Community
Specification Version: 2.5
Implementation Title: Java Bindings for OpenGL Runtime Environment
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.5.0
Implementation Build: 2.5-b1533-20230818
Implementation Branch: origin/master
Implementation Commit: 70f62ca5d121e5e71548246d468b5e7baa5faf25
Implementation SHA Sources: null
Implementation SHA Classes: null
Implementation SHA Classes-this: null
Implementation SHA Natives: null
Implementation SHA Natives-this: null
-----------------------------------------------------------------------------------------------------
GLProfile.initSingleton() - thread main
    [2]: com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:213)
    [3]: com.jogamp.opengl.GLProfile.getDefaultDevice(GLProfile.java:2113)
    [4]: com.jogamp.opengl.JoglVersion.getDefaultOpenGLInfo(JoglVersion.java:122)
    [5]: com.jogamp.newt.opengl.GLWindow.main(GLWindow.java:1106)
JNILibLoaderBase: addNativeJarLibs(
  classesFromJavaJars   = [class jogamp.nativewindow.Debug, class jogamp.opengl.Debug, class jogamp.newt.Debug]
  singleJarMarker       = -all
)
getJarUri Default jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/nativewindow/Debug.class
	-> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/nativewindow/Debug.class
getJarUri res: jogamp.nativewindow.Debug -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/nativewindow/Debug.class -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/nativewindow/Debug.class
getJarName res: jogl-all.jar
JNILibLoaderBase: jarBasename: jogl-all
JNILibLoaderBase: addNativeJarLibsImpl(
  classFromJavaJar  = class jogamp.nativewindow.Debug
  classJarURI       = jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/nativewindow/Debug.class
  jarBasename       = jogl-all.jar
  os.and.arch       = linux-aarch64
  nativeJarBasename = jogl-all-natives-linux-aarch64.jar
)
JNILibLoaderBase: addNativeJarLibsImpl: initial: file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar -> file:/home/nicolas/Downloads/jogamp-all-platforms/jar/
JNILibLoaderBase: addNativeJarLibsImpl: nativeLibraryPath: natives/linux-aarch64/
JNILibLoaderBase: addNativeJarLibsImpl: module: jogl-all-natives-linux-aarch64.jar -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/
getJarFile.0: jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/
getJarFile.1: jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/
getJarFile res: /home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar
TempJarCache: addNativeLibs: jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/: nativeJar /home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar (NEW)
TempJarCache: validateCertificates: OK - No rootCerts in given class jogamp.nativewindow.Debug, nativeJar /home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar
JarUtil: extract: /home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230, extractNativeLibraries true (natives/linux-aarch64/), extractClassFiles false, extractOtherFiles false
JarUtil: JarEntry : META-INF/MANIFEST.MF other-file skipped
JarUtil: JarEntry : jogamp/nativetag/opengl/linux/aarch64/TAG.class class-file skipped
JarUtil: JarEntry : isNativeLib true, isClassFile false, isDir false, isRootEntry false
JarUtil: EXTRACT[1]: [jogl_desktop -> ] natives/linux-aarch64/libjogl_desktop.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libjogl_desktop.so: 796552 bytes, addedAsNativeLib: true
JarUtil: JarEntry : isNativeLib true, isClassFile false, isDir false, isRootEntry false
JarUtil: EXTRACT[2]: [jogl_mobile -> ] natives/linux-aarch64/libjogl_mobile.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libjogl_mobile.so: 382824 bytes, addedAsNativeLib: true
JarUtil: JarEntry : isNativeLib true, isClassFile false, isDir false, isRootEntry false
JarUtil: EXTRACT[3]: [nativewindow_awt -> ] natives/linux-aarch64/libnativewindow_awt.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libnativewindow_awt.so: 9376 bytes, addedAsNativeLib: true
JarUtil: JarEntry : isNativeLib true, isClassFile false, isDir false, isRootEntry false
JarUtil: EXTRACT[4]: [nativewindow_drm -> ] natives/linux-aarch64/libnativewindow_drm.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libnativewindow_drm.so: 38872 bytes, addedAsNativeLib: true
JarUtil: JarEntry : isNativeLib true, isClassFile false, isDir false, isRootEntry false
JarUtil: EXTRACT[5]: [nativewindow_x11 -> ] natives/linux-aarch64/libnativewindow_x11.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libnativewindow_x11.so: 30664 bytes, addedAsNativeLib: true
JarUtil: JarEntry : isNativeLib true, isClassFile false, isDir false, isRootEntry false
JarUtil: EXTRACT[6]: [newt_drm -> ] natives/linux-aarch64/libnewt_drm.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libnewt_drm.so: 22368 bytes, addedAsNativeLib: true
JarUtil: JarEntry : isNativeLib true, isClassFile false, isDir false, isRootEntry false
JarUtil: EXTRACT[7]: [newt_head -> ] natives/linux-aarch64/libnewt_head.so -> /tmp/jogamp_0000/file_cache/jln14305947333059389788/jln4881654207644424230/natives/linux-aarch64/libnewt_head.so: 84576 bytes, addedAsNativeLib: true
JNILibLoaderBase: addNativeJarLibsImpl.X: jogl-all.jar / jogl-all-natives-linux-aarch64.jar -> ok: true; duration: now 4 ms, total 5 ms (count 2, avrg 2.500 ms)
JNILibLoaderBase: addNativeJarLibs0: done: jogl-all
getJarUri Default jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/opengl/Debug.class
	-> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/opengl/Debug.class
getJarUri res: jogamp.opengl.Debug -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/opengl/Debug.class -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/opengl/Debug.class
getJarName res: jogl-all.jar
JNILibLoaderBase: jarBasename: jogl-all
JNILibLoaderBase: addNativeJarLibsImpl(
  classFromJavaJar  = class jogamp.opengl.Debug
  classJarURI       = jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/opengl/Debug.class
  jarBasename       = jogl-all.jar
  os.and.arch       = linux-aarch64
  nativeJarBasename = jogl-all-natives-linux-aarch64.jar
)
JNILibLoaderBase: addNativeJarLibsImpl: initial: file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar -> file:/home/nicolas/Downloads/jogamp-all-platforms/jar/
JNILibLoaderBase: addNativeJarLibsImpl: nativeLibraryPath: natives/linux-aarch64/
JNILibLoaderBase: addNativeJarLibsImpl: module: jogl-all-natives-linux-aarch64.jar -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/
TempJarCache: addNativeLibs: jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/: nativeJar jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/ (REUSE)
JNILibLoaderBase: addNativeJarLibsImpl.X: jogl-all.jar / jogl-all-natives-linux-aarch64.jar -> ok: true; duration: now 0 ms, total 5 ms (count 3, avrg 1.667 ms)
JNILibLoaderBase: addNativeJarLibs0: done: jogl-all
getJarUri Default jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/newt/Debug.class
	-> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/newt/Debug.class
getJarUri res: jogamp.newt.Debug -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/newt/Debug.class -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/newt/Debug.class
getJarName res: jogl-all.jar
JNILibLoaderBase: jarBasename: jogl-all
JNILibLoaderBase: addNativeJarLibsImpl(
  classFromJavaJar  = class jogamp.newt.Debug
  classJarURI       = jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar!/jogamp/newt/Debug.class
  jarBasename       = jogl-all.jar
  os.and.arch       = linux-aarch64
  nativeJarBasename = jogl-all-natives-linux-aarch64.jar
)
JNILibLoaderBase: addNativeJarLibsImpl: initial: file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all.jar -> file:/home/nicolas/Downloads/jogamp-all-platforms/jar/
JNILibLoaderBase: addNativeJarLibsImpl: nativeLibraryPath: natives/linux-aarch64/
JNILibLoaderBase: addNativeJarLibsImpl: module: jogl-all-natives-linux-aarch64.jar -> jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/
TempJarCache: addNativeLibs: jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/: nativeJar jar:file:/home/nicolas/Downloads/jogamp-all-platforms/jar/jogl-all-natives-linux-aarch64.jar!/ (REUSE)
JNILibLoaderBase: addNativeJarLibsImpl.X: jogl-all.jar / jogl-all-natives-linux-aarch64.jar -> ok: true; duration: now 0 ms, total 5 ms (count 4, avrg 1.250 ms)
JNILibLoaderBase: addNativeJarLibs0: done: jogl-all
JNILibLoaderBase: addNativeJarLibsWhenInitialized: count 3, ok true
guessX: <:0> isSet true
guessWayland: <wayland-0> isSet true
guessGBM: </dev/dri/card0> exists true
guessVCIVUsed: hasVCLib = false && !hasVC4ModLocation = !false && !hasDriCard0File = !true
main - Info: NativeWindowFactory.<init>: Type .x11 custom / .x11 native
main - NativeWindowFactory.initSingleton()
JAWTUtil initialization (JAWT/JNI/...); SKIP_AWT_HIDPI false
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-17-openjdk-17.0.9.0.9-3.fc39.aarch64/lib/libawt_xawt.so
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2398)
	at java.base/java.lang.Runtime.load0(Runtime.java:755)
	at java.base/java.lang.System.load(System.java:1953)
	at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
	at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
	at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:315)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:285)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2403)
	at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)
	at java.base/java.lang.System.loadLibrary(System.java:1989)
	at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1392)
	at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1390)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1389)
	at java.desktop/java.awt.Toolkit.initStatic(Toolkit.java:1427)
	at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1401)
	at jogamp.nativewindow.jawt.JAWTJNILibLoader$1.run(JAWTJNILibLoader.java:58)
	at com.jogamp.common.util.SecurityUtil.doPrivileged(SecurityUtil.java:80)
	at jogamp.nativewindow.jawt.JAWTJNILibLoader.<clinit>(JAWTJNILibLoader.java:52)
	at jogamp.nativewindow.jawt.JAWTUtil.<clinit>(JAWTUtil.java:350)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:467)
	at com.jogamp.nativewindow.NativeWindowFactory$2.run(NativeWindowFactory.java:392)
	at com.jogamp.nativewindow.NativeWindowFactory$2.run(NativeWindowFactory.java:388)
	at com.jogamp.common.util.SecurityUtil.doPrivileged(SecurityUtil.java:80)
	at com.jogamp.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:388)
	at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1787)
	at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:77)
	at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:236)
	at com.jogamp.common.util.SecurityUtil.doPrivileged(SecurityUtil.java:80)
	at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:222)
	at com.jogamp.opengl.GLProfile.getDefaultDevice(GLProfile.java:2113)
	at com.jogamp.opengl.JoglVersion.getDefaultOpenGLInfo(JoglVersion.java:122)
	at com.jogamp.newt.opengl.GLWindow.main(GLWindow.java:1106)
NativeWindowFactory.shutdown() START: JVM Shutdown true, on thread NativeWindowFactory_ShutdownHook
NativeWindowFactory.shutdown(): Post customShutdownHook
NativeWindowFactory_ShutdownHook - Info: GraphicsConfigurationFactory.<init>
NativeWindowFactory_ShutdownHook - NativeWindowFactory.shutdown() END JVM Shutdown true

Reply | Threaded
Open this post in threaded view
|

Re: JOGL issue on Linux Asahi

Sven Gothel
Administrator
Thank you for the heads up, i.e. installing GNU/Linux on the aarch64 Apple hardware.
If you have a link to follow such endeavor, best a Debian distri .. thx a lot!
Then I will test installing GNU/Linux on this 'box', so my son can use it
plus me looking into this issue.
Reply | Threaded
Open this post in threaded view
|

Re: JOGL issue on Linux Asahi

Nicolas Roduit
I installed Fedora + Gnome. However, there are other possible distributions.
Reply | Threaded
Open this post in threaded view
|

Re: JOGL issue on Linux Asahi

Sven Gothel
Administrator
thank you, will try later ..