Summary: | Support X11/EGL-blit on Rasp.Pi allowing use of AWT and Applets (was: NApplet fail using newt bcm.vc.iv driver) | ||
---|---|---|---|
Product: | [JogAmp] Jogl | Reporter: | Xerxes Rånby <xerxes> |
Component: | applet | Assignee: | Sven Gothel <sgothel> |
Status: | CONFIRMED --- | ||
Severity: | enhancement | CC: | gouessej |
Priority: | P2 | ||
Version: | 2 | ||
Hardware: | All | ||
OS: | all | ||
Type: | --- | SCM Refs: | |
Workaround: | --- |
Description
Xerxes Rånby
2012-10-06 01:38:26 CEST
By checking sha256sum i can confirm that it did try to load the armv6 libnativewindow_x11.so on a armv6hf system. sha256sum /home/pi/jogamp-all-platforms/lib/linux-armv6hf/libnativewindow_x11.so cc0dc2b7104aef41dd7047384cfb2859061a95a8ac4a2b103f695040dbf31b3e /home/pi/jogamp-all-platforms/lib/linux-armv6hf/libnativewindow_x11.so sha256sum /home/pi/jogamp-all-platforms/lib/linux-armv6/libnativewindow_x11.so 865a9438691f9ca027bdf51604ab831a452b9f9e71414c5eaefb47c75f3af4b9 /home/pi/jogamp-all-platforms/lib/linux-armv6/libnativewindow_x11.so cd /tmp/jnlp-applet/jln558084847869472732/jln7859347536866624904/ sha256sum libnativewindow_x11.so 865a9438691f9ca027bdf51604ab831a452b9f9e71414c5eaefb47c75f3af4b9 libnativewindow_x11.so Test result when running using a Debian armel Wheezy, On this system the correct library got loaded. still the .bcm.vc.iv newt driver do not play along with the browser applet setup: pi@raspberrypi ~ $ midori http://jogamp.org/deployment/archive/master/gluegen_598-joal_364-jogl_824-jocl_686-signed/jogl-applet-runner-newt-gears-normal-napplet2.html java version "1.6.0_24" OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-3) OpenJDK Zero VM (build 20.0-b12, mixed mode) Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. BCM.Display initIDs ok BCM.Screen initIDs ok BCM.Window initIDs ok class com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2 has no 'window' field class com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2 has no 'glWindow' field java.lang.RuntimeException: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Native windowing type .bcm.vc.iv (custom) not yet supported, platform reported native windowing type: .bcm.vc.iv at com.jogamp.newt.awt.applet.JOGLNewtApplet1Run.init(JOGLNewtApplet1Run.java:220) at sun.applet.AppletPanel.run(AppletPanel.java:436) at java.lang.Thread.run(Thread.java:679) Caused by: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Native windowing type .bcm.vc.iv (custom) not yet supported, platform reported native windowing type: .bcm.vc.iv at jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:99) at jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:65) at javax.media.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:477) at jogamp.newt.awt.NewtFactoryAWT.getNativeWindow(NewtFactoryAWT.java:70) at com.jogamp.newt.awt.NewtCanvasAWT.reparentWindow(NewtCanvasAWT.java:428) at com.jogamp.newt.awt.NewtCanvasAWT.addNotify(NewtCanvasAWT.java:391) at java.awt.Container.addImpl(Container.java:1064) at java.awt.Container.add(Container.java:923) at com.jogamp.newt.awt.applet.JOGLNewtApplet1Run.init(JOGLNewtApplet1Run.java:216) ... 2 more Caused by: java.lang.IllegalArgumentException: Native windowing type .bcm.vc.iv (custom) not yet supported, platform reported native windowing type: .bcm.vc.iv at jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:92) ... 10 more This is expected, since we use the BCM IV headless toolkit we worked on together. It cannot support AWT, since AWT from openjdk for Linux requires X11. If we would use std X11 w/ the EGL blit solution, we may could it make working w/ AWT. Hence we would need to already discussed mode-switch for Rasp-Pi, i.e. - Headless BCM IV core - X11 w/ EGL blit standard ~Sven JOGL would already support X11/EGL (afaik), but now we would need to disable the BCM IV auto detection. We may need a smart heuristic to do that automatic, i.e.: - if JVM is running w/ AWT enabled (!headless) _and_ native windowing TK is X11 _and_ a display connection to local could be established - then use X11/EGL-blit. - otherwise use BCM.IV if available Example code on how to do efficient DMA GPU to CPU memory copy on the Pi. https://github.com/shirro/pi-eglonx - "OpenGL ES rendering to X window" |