◐ Shell
clean mode source ↗

Add Collapsible Code Blocks #5622 by Bigsby11 · Pull Request #6247 · processing/processing

and others added 30 commits

July 1, 2018 10:07
Testing on the latest Raspbian release shows that the open-source Mesa driver can handle 4 lights on all P3D examples without tripping up during register allocation. Still an issue with 8 lights, so leave it at 4 for now, and re-test with 6 next time around.
Fixes:
java.lang.RuntimeException: GL function glRenderbufferStorageMultisample() is not available on this hardware (or driver) Read <a href="http://wiki.processing.org/w/OpenGL_Issues" target="_blank" rel="nofollow">http://wiki.processing.org/w/OpenGL_Issues</a> for help.
    at processing.opengl.PJOGL.renderbufferStorageMultisample(PJOGL.java:1941)
    at processing.opengl.PGL.createFBOLayer(PGL.java:955)
    at processing.opengl.PGL.beginRender(PGL.java:727)
    at processing.opengl.PGraphicsOpenGL.beginOnscreenDraw(PGraphicsOpenGL.java:6577)
    at processing.opengl.PGraphicsOpenGL.beginDraw(PGraphicsOpenGL.java:1459)
    at processing.core.PApplet.handleDraw(PApplet.java:2388)
    at processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:866)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
    at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
    at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
    at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)
Fixes:
java.lang.RuntimeException: GL function glReadBuffer() is not available on this hardware (or driver) Read <a href="http://wiki.processing.org/w/OpenGL_Issues" target="_blank" rel="nofollow">http://wiki.processing.org/w/OpenGL_Issues</a> for help.
    at processing.opengl.PJOGL.readBuffer(PJOGL.java:1954)
    at processing.opengl.PJOGL.initFBOLayerES(PJOGL.java:310)
    at processing.opengl.PJOGL.initFBOLayer(PJOGL.java:301)
    at processing.opengl.PGL.createFBOLayer(PGL.java:988)
    at processing.opengl.PGL.beginRender(PGL.java:727)
    at processing.opengl.PGraphicsOpenGL.beginOnscreenDraw(PGraphicsOpenGL.java:6576)
    at processing.opengl.PGraphicsOpenGL.beginDraw(PGraphicsOpenGL.java:1459)
    at processing.core.PApplet.handleDraw(PApplet.java:2388)
    at processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:866)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
    at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
    at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
    at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)
Fixes:
P0007: Language version '300' unknown, this compiler only supports up to version '320 es'
Fixes:
S0032: no default precision defined for variable '_fragColor'
Fixes:
java.lang.RuntimeException: GL function glBlitFramebuffer() is not available on this hardware (or driver) Read <a href="http://wiki.processing.org/w/OpenGL_Issues" target="_blank" rel="nofollow">http://wiki.processing.org/w/OpenGL_Issues</a> for help.
    at processing.opengl.PJOGL.blitFramebuffer(PJOGL.java:1939)
    at processing.opengl.PGL.syncBackTexture(PGL.java:595)
    at processing.opengl.PGL.endRender(PGL.java:769)
    at processing.opengl.PGraphicsOpenGL.endOnscreenDraw(PGraphicsOpenGL.java:6598)
    at processing.opengl.PGraphicsOpenGL.endDraw(PGraphicsOpenGL.java:1483)
    at processing.core.PApplet.handleDraw(PApplet.java:2444)
    at processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:866)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
    at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
    at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
    at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)
I don't know IntBuffer and OpenGL well enought to say if this will leak memory or similar.
Fixes:
GLDebugEvent[ id 0xb
    type Error
    severity High: dangerous undefined behavior
    source GL API
    msg Error:glGetFloatv::<pname> is not an accepted value
    when 1524036153380
    source 3.1 (ES profile, arb, debug, compat[ES2, ES3, ES31], FBO, hardware) - OpenGL ES 3.1 v1.r17p0-01rel0.a881d28363cdb20f0017ed13c980967e - hash 0xc39cf5]
    [2]: jogamp.opengl.GLDebugMessageHandler$StdErrGLDebugListener.messageSent(GLDebugMessageHandler.java:347)
    [3]: jogamp.opengl.GLDebugMessageHandler.sendMessage(GLDebugMessageHandler.java:332)
    [4]: jogamp.opengl.GLDebugMessageHandler.glDebugMessageARB(GLDebugMessageHandler.java:358)
    [5]: jogamp.opengl.es3.GLES3Impl.dispatch_glGetFloatv1(Native Method)
    [6]: jogamp.opengl.es3.GLES3Impl.glGetFloatv(GLES3Impl.java:1157)
    [7]: com.jogamp.opengl.DebugGLES3.glGetFloatv(DebugGLES3.java:3260)
    [8]: processing.opengl.PJOGL.getFloatv(PJOGL.java:1106)
    [9]: processing.opengl.PGraphicsOpenGL.getGLParameters(PGraphicsOpenGL.java:6892)
    [10]: processing.opengl.PGraphicsOpenGL.beginDraw(PGraphicsOpenGL.java:1454)
    [11]: processing.core.PApplet.handleDraw(PApplet.java:2388)
    [12]: processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:866)
    [13]: jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
    [14]: jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
    [15]: jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
    [16]: jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
    [17]: jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    [18]: com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
    [19]: com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
    [20]: com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
    [21]: com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
    [22]: java.util.TimerThread.mainLoop(Timer.java:555)
    [23]: java.util.TimerThread.run(Timer.java:505)
Aarch64 version compiled courtesy of @xranby
Fixes:
GLDebugEvent[ id 0x32
    type Error
    severity High: dangerous undefined behavior
    source GL API
    msg Error:glEnable::<cap> is not one of the accepted values
    when 1524184964512
    source 3.1 (ES profile, arb, debug, compat[ES2, ES3, ES31], FBO, hardware) - OpenGL ES 3.1 v1.r17p0-01rel0.a881d28363cdb20f0017ed13c980967e - hash 0x1f928e9]
    [2]: jogamp.opengl.GLDebugMessageHandler$StdErrGLDebugListener.messageSent(GLDebugMessageHandler.java:347)
    [3]: jogamp.opengl.GLDebugMessageHandler.sendMessage(GLDebugMessageHandler.java:332)
    [4]: jogamp.opengl.GLDebugMessageHandler.glDebugMessageARB(GLDebugMessageHandler.java:358)
    [5]: jogamp.opengl.es3.GLES3Impl.dispatch_glEnable1(Native Method)
    [6]: jogamp.opengl.es3.GLES3Impl.glEnable(GLES3Impl.java:734)
    [7]: com.jogamp.opengl.DebugGLES3.glEnable(DebugGLES3.java:2121)
    [8]: processing.opengl.PJOGL.enable(PJOGL.java:1068)
    [9]: processing.opengl.PGraphicsOpenGL.setGLSettings(PGraphicsOpenGL.java:6784)
    [10]: processing.opengl.PGraphicsOpenGL.checkSettings(PGraphicsOpenGL.java:6740)
    [11]: processing.opengl.PGraphicsOpenGL.beginDraw(PGraphicsOpenGL.java:1463)
    [12]: processing.core.PApplet.handleDraw(PApplet.java:2388)
    [13]: processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:866)
    [14]: jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
    [15]: jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
    [16]: jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
    [17]: jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
    [18]: jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    [19]: com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
    [20]: com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
    [21]: com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
    [22]: com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
    [23]: java.util.TimerThread.mainLoop(Timer.java:555)
    [24]: java.util.TimerThread.run(Timer.java:505)
This now matches the logic in setGLSettings(), as suggested by @JakubValtar.
Note this currently does not include the compiled binary for linux-arm64
The error code returned from C seems to have changed from -EIO to -EREMOTEIO during some recent kernel version.
If the file node is not accessible yet, NativeInterface.writeFile() will return -EACCES instead of -EPERM. Thanks @msurguy for reporting this and testing.
Wikipedia had it wrong: the spec for the OpenGL ES Shading Language Version 1.00 defines the version preprocessor directive as "#version 100", and _not_ "#version 100 es", like version 3.00+ of the language wants it.

This made the Raspberry Pi with the legacy driver unhappy. Thanks @DangusTaargus for reporting.

see https://www.khronos.org/files/opengles_shading_language.pdf

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators

Mar 28, 2023