Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Unstable

Changes

Summary

  1. unit test, typo in doc (details)
  2. Fix non NIO direct GL semantics: Restrict certain GL function to (details)
  3. Fix Bug 612: glVertexAttribIPointer/glVertexAttribLPointer are (details)
  4. Make GLBufferStateTracker more robust: Catch GLError on Get(), causes (details)
  5. GLReadBufferUtil, ShaderUtil: Catch GLException (and dump if thrown), to (details)
  6. FBObject cleanup / review: strings, simplified re-attachment, removed (details)
  7. GLFBODrawableImpl: Fix garbage @ swap, add [disabled] reset-quirk for (details)
  8. OSX CALayer / MacOSXCGLContext: Remove pbuffer swap garbage; Split (details)
  9. FBO tests: Add singleBuffer cmd-line option for offscreen-layered tests; (details)
  10. Add GLRendererQuirks; Fix shared EGL/ES resources; (details)
  11. NativeWindowFactory/NEWT: Use relative sub-package names in (details)
Commit 2ea3f82baa32ff7f25856c7e3210fb70664b49e6 by Sven Gothel
unit test, typo in doc
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java (diff)
Commit 3f5aac3536956e245d0e151e4915e7dd67a08b7e by Sven Gothel
Fix non NIO direct GL semantics: Restrict certain GL function to NIODirectOnly (again)

Partially reverting commits
    375ab2da54ded1f3b3d90dc21b91fc6b87c64285
    45a42f7c7f7fce4e6c7eb495591c438bdf0170a2

Both commits had flaws regarding:
  - GL spec: Pointer functions required passed memory pointers to persist

  - JNI: Primitive arrays may change their native memory location (swap),
         even if they were not GC'ed.

Xerxes Ranby and I discussed whether we are able to track the
primitive non direct NIO backed arrays and pinpoint them.
JNI's Get*ArrayElements may be able to pinpoint, however it could result
in a copy of the data, which would render this feature non performant.
The tracking itself may be another no-go, since it would add up complexity
and failing to free resources would be another negative sideeffect.
The file was modified make/config/jogl/gl-common.cfg (diff)
Commit 3c09f42d372f89bdb41ab4cf2f96962971ad909a by Sven Gothel
Fix Bug 612: glVertexAttribIPointer/glVertexAttribLPointer are BufferObjectKind (VBO) and needs a RangeCheck as well

Fix glVertexAttribIPointer/glVertexAttribLPointer (Bug 612)

Similar to glVertexAttribPointer:
- Mark both BufferObjectKind
- Add RangeCheck to both
The file was modified make/config/jogl/gl-common.cfg (diff)
Commit 5684b94b1e7330b0008463bdee170358e9ecfa4c by Sven Gothel
Make GLBufferStateTracker more robust: Catch GLError on Get(), causes INVALID_ENUM w/ pname GL_PIXEL_UNPACK_BUFFER_BINDING on GL 3.0 Mesa 8.0.4
The file was modified src/jogl/classes/jogamp/opengl/GLBufferStateTracker.java (diff)
Commit 55e2ff7c04aa4dc1e8838bcf23690dc9e01c0130 by Sven Gothel
GLReadBufferUtil, ShaderUtil: Catch GLException (and dump if thrown), to increase robustness $ glReadPixels and Get NUM_SHADER_BINARY_FORMATS
The file was modified src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderUtil.java (diff)
The file was modified src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java (diff)
Commit 8be507ab52506f50804d0254aeacf45e171b919e by Sven Gothel
FBObject cleanup / review: strings, simplified re-attachment, removed redundancy, adding quirk.

Strings: Cleanup status strings; More verbose TextureAttachment toString()

Simplified re-attachment: Using simple switch/case block to recreate renderbuffer instead of task list (duh!)

Removed redundant calls to bind(gl)

Adding quirk for re-attachment: detach all 1st, then recreate. Disabled per default.
The file was modified src/jogl/classes/com/jogamp/opengl/FBObject.java (diff)
Commit 7da8654b49aa3ddd01fbc64a710b5efe04529381 by Sven Gothel
GLFBODrawableImpl: Fix garbage @ swap, add [disabled] reset-quirk for testing

Fix garbage @ swap:
  Reset the front buffer _after_ swap.

Add [disabled] reset-quirk for testing:
  On some OSX GPUs (old NV 7xxx only ?), reconfig/resize of FBO fails,
  recreate whole FBO w/ quirk enabled.
The file was modified src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
Commit 60c63acc298fd33ada43f37962d1d6c32a0359c3 by Sven Gothel
OSX CALayer / MacOSXCGLContext: Remove pbuffer swap garbage; Split pbuffer/FBO revalidation/redraw; Don't sync @ needsDisplay

Simplified pbuffer replacement:
  Simply keep holding the pbuffer reference in native code
  until receiving newPBuffer @ swap.
  The newPBuffer will be established @draw method.
  This allows removing interaction at destroy pbuffer,
  which caused garbage and crash.

Remove pbuffer swap garbage
  See above.

Split pbuffer/FBO revalidation/redraw

Don't sync @ needsDisplay
  - No need to sync @ repaint command setNSOpenGLLayerNeedsDisplay*
    since we use volatiles and all lifecycle action is
    done @draw -> faster
The file was modified src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was modified src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m (diff)
The file was modified make/stub_includes/opengl/macosx-window-system.h (diff)
Commit 0f531ec116245b10fcb41e7b0905f240b91aa93a by Sven Gothel
FBO tests: Add singleBuffer cmd-line option for offscreen-layered tests; FBOMRT: Allow test w/ only one attachment number (sure not MRT then)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestOffscreenLayer02NewtCanvasAWT.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestFBOMRTNEWT01.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestOffscreenLayer01GLCanvasAWT.java (diff)
Commit 923d9dd7f1d40db72d35ca76a761ca14babf147f by Sven Gothel
Add GLRendererQuirks; Fix shared EGL/ES resources;

Add GLRendererQuirks:
  - Contains centralized 'tagged' workarounds for GL renderer bugs (quirks)
  - Accessible via GLContext and GLDrawableFactory
  - Initialized in GLContext.setAvailability*
  -

Simplify GLGraphicsConfigurationUtil.fixOffscreenGLCapabilities(..) & use Quirks
  - use quirks
  - instead of passing booleans for each config, pass factory & device

Fix shared EGL/ES resources:
  - GLProfile needs to initialize EGLDrawableFactory's shared resources before desktop,
    so EGLDrawableFactory can use the fallback defaultDisplay & defaultSharedResource
    for host mapped sharedResources (hack).

  - If using defaultSharedResources for host mapped ones,
    do not go through initialization cycles - simply map (sharedResource + context).

  - EGLDrawableFactory: Use device's unique-key instead of connection only,
    since the latter causes a collision (EGL-connection == X11-connection).
The file was modified src/jogl/classes/javax/media/opengl/GLContext.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryOffscrnCapsNEWT.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLGraphicsConfigurationFactory.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/GLGraphicsConfigurationUtil.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modified src/jogl/classes/javax/media/opengl/GLDrawableFactory.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was addedsrc/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff)
The file was modified make/scripts/tests.sh (diff)
The file was modified src/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDrawableFactory.java (diff)
The file was modified src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff)
The file was modified src/jogl/classes/javax/media/opengl/GLProfile.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.java (diff)
Commit 48f033d61dcf6c6d6964457710f6ac273ef4fc58 by Sven Gothel
NativeWindowFactory/NEWT: Use relative sub-package names in NativeWindowFactory's TYPE_* strings, not NEWT's; NEWTFactory: Use default NEWT package name if rel. 'path'.

Use relative sub-package names in NativeWindowFactory's TYPE_* strings, not NEWT's
  Otherwise NEWT depends solely on NativeWindowFactory strings

  - Default subpackages denominate a relative path, i.e. start with a dot: '.egl', '.windows', '.x11'
  - Custom name may be absolute, eg: 'my.company.special.drivers.chip4'

NEWTFactory: Use default NEWT package name if relative 'path'.
  - If NativeWindowFactory type starts w/ dot (rel. path), simply prepend the default NEWT package prefix
    otherwise use complete package name as-is.
The file was modified src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java (diff)
The file was modified src/newt/classes/com/jogamp/newt/NewtFactory.java (diff)