Summary: | Raspberry Pi Raspbian now ship with two incompatible implementations of OpenGL ES | ||
---|---|---|---|
Product: | [JogAmp] Jogl | Reporter: | Xerxes Rånby <xerxes> |
Component: | opengl | Assignee: | Sven Gothel <sgothel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gottfried.haider |
Priority: | P4 | ||
Version: | 2.4.0 | ||
Hardware: | embedded_arm | ||
OS: | linux | ||
Type: | DEFECT | SCM Refs: |
jogl 93094928489adb0b12889f7b35c75a28303e18e8
jogl 6665ecc942fff70667a2c3ca3d25eba54b909faa
jogl bd80d24b7b4322eacf806740df09801f18d05306
jogl 347271ffdd09153a2334fda593774d49050f84e0
|
Workaround: | --- | ||
Attachments: | raspbian_test_dbg_logs.tar.gz |
Description
Xerxes Rånby
2016-02-17 17:12:23 CET
gohai have posted a partial fix that makes JOGL skip use of the NEWT BCM VC IV driver if it detects that the users have enabled the VC4 kernel module that is required to when using the hardware accelerated X11 Mesa3D driver. https://github.com/sgothel/jogl/pull/96/files With this fix installed then X11 do work when the user have enabled the new vc4 kernel driver, to be used with the Mesa3D X11 driver in raspi-config. JogAmp will then not try to use the half-properitary Broadcom OpenGL ES driver using DispmanX when the vc4 kernel module is detected. I tried to learn from the Raspberry Pi foundation if/how they're going to change their current behavior, as it seems to break user-space applications like JOGL or GStreamer. I haven't heard anything definitive so far, but they are aware. Eric Anholt: "If they're leaving both libGLESv2s in the link path, we're in trouble. Back when I was working with them in October, we'd talked a boot script moving the libraries such that only one could be found." (https://github.com/anholt/mesa/issues/24#issuecomment-184451181) Unfortunately, there hasn't been any progress in fixing this issue on the side of Raspbian. The most recent distribution release still exhibits the same issue. I was wondering whether the following workaround in JOGL would be feasible or acceptable also: If the file /opt/vc/lib/libbcm_host.so exists, and the directory /sys/module/vc4 does not exist, then attempt to load libGLESv2.so before libGLESv2.so.2. commit 347271ffdd09153a2334fda593774d49050f84e0: Expand query whether BCM IV is being used, exclude '/dev/dri/card0' Also refactor query to jogamp.nativewindow.BcmVCArtifacts +++ I close this bug for now, since this seems to be all we can do for now. If you disagree and can provide a solution/idea how we can further this from our side, please reopen and add artifacts. Also: Please test, thx. Sven: can you explain me what the check for "/dev/dri/card0" is meant to fix? Have you tested this on any Raspberry Pi with Raspbian? Note that we also carry this additional change, which was necessary starting from the Raspbian August '17 release: https://github.com/gohai/jogl/commit/c46af91059c6f2883a3db20b309a877e120dd9a0 I am unsure if your commit attempts to fix the same in a different way, or is unrelated. BTW: see here for the full list of changes on top of 2.3.2 Processing is currently shipping with: https://github.com/gohai/jogl/commits/bcm-test |