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

Changes

Summary

  1. _getNativeWindowingType() TYPE_BCM_VC_IV autodetection. (details)
  2. ".bcm.vc.iv" is enough now -> NEWT agnostic relative package path. (details)
  3. Add braces and fix indentation to conform with jogl coding standards. (details)
  4. Workaround for Bug 623: Sporadic XCB assertion failures w/ ATI (details)
  5. Bug 623: X11Util adds property (details)
  6. X11Util: Detailed closing information only in DEBUG mode, just print (details)
  7. NullToolkitLock.validateLocker(): Throw exception if locking is required (details)
  8. test script: remove deleted unit test (details)
  9. JAWTUtil ToolkitLock: Add lock counter to make lock validation recursive (details)
  10. Relax Bug 613 workaround of commit (details)
  11. Fix commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b (Bug 616 - Remove (details)
  12. FBObject/GLFBODrawable: Debug / glError detection (details)
  13. GLRendererQuirks.NoDoubleBufferedPBuffer: Set if ( mesa || gallium ) && (details)
  14. Misc: Add commented-out NEWT X11/XCB-Event and X11ScreenRandR1[13] (details)
  15. NativeWindowFactory: Remove 'remedy' of Bug 613 Commit (details)
  16. Misc: tests.sh (details)
  17. Fix regression of fbe331f013608eb31ff0d8675f4e4c9881c9c48b [Remove (details)
  18. Update PMVMatrix/GLMatrixFunc API doc and refine PMVMatrix update / (details)
  19. ShaderState: Adding Class API doc and removing attached object w/ 'int' (details)
  20. FixedFuncPipeline: Cleanup warnings .. (details)
  21. Fix regression of commit a644d779ab19cb1d200ae4ba567b9c042c34b337, (details)
  22. Footprint Stats ; Fix Bug 624 - Compile and generate android JAR files (details)
Commit 8a1e50dc33e14e9423e2f4bc066b32a835bb33fb by xerxes
_getNativeWindowingType() TYPE_BCM_VC_IV autodetection.

Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java (diff)
Commit fa55b54822a256eb73147763829b946433c3d3f7 by xerxes
".bcm.vc.iv" is enough now -> NEWT agnostic relative package path.
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java (diff)
Commit 8351d513730009316b81149414ea87f3c631f9a2 by xerxes
Add braces and fix indentation to conform with jogl coding standards.
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java (diff)
Commit 92398025abdabb2fdef0d78edd41e730991a6f94 by Sven Gothel
Workaround for Bug 623: Sporadic XCB assertion failures w/ ATI proprietary driver and w/o native X11 locking

The proprietary ATI X11 driver does not handle multi-threaded [GL] clients well,
i.e. triggers an XCB assertion 'from time to time'.

It almost seems like that the driver either:
  - aliases all display connections to it's connection name, i.e. server; or
  - utilizes a build-in display connection w/o locking, used for some reason

+++

- X11Lib: Add QueryExtension(dpy, name) allowing early driver determination w/o GL

- X11Util detects 'requiresGlobalToolkitLock' and 'markAllDisplaysUnclosable' via
  X11 extensions. In case certain ATI extensions are available, both are set to true.

- X11GLXDrawableFactory: Dropped setting 'markAllDisplaysUnclosable', using X11Util's detection (see above).

- New GlobalToolkitLock to satisfy certain driver restrictions (ATI's XCB multithreading bug)

- NativeWindowFactory handles new property requiresGlobalToolkitLock,
  in which case the new GlobalToolkitLock is being used instead of ResourceToolkitLock.

- JAWTUtil ToolkitLock locks GlobalToolkitLock 1st to match new 'requiresGlobalToolkitLock' property.

- Document static method requirement of X11Util, GDIUtil and OSXUtil via marker interface ToolkitProperties

- ToolkitLock: New method 'validateLocked()', allowing use to validate whether the device/toolkit
  is properly locked and hence to detect implementation bugs. See unit test class: ValidateLockListener
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/DefaultGraphicsDevice.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/NullToolkitLock.java (diff)
The file was addedsrc/nativewindow/classes/jogamp/nativewindow/ToolkitProperties.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/SharedResourceToolkitLock.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/NativeWindowFactoryImpl.java (diff)
The file was modifiedmake/config/nativewindow/x11-CustomJavaCode.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/ResourceToolkitLock.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsDevice.java (diff)
The file was addedsrc/nativewindow/classes/jogamp/nativewindow/GlobalToolkitLock.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
The file was modifiedsrc/nativewindow/native/x11/Xmisc.c (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/ToolkitLock.java (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/InitConcurrentBaseNEWT.java (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/AbstractGraphicsDevice.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/util/ValidateLockListener.java (diff)
Commit 2d35fc546097818aba5db51885f796cb0b442734 by Sven Gothel
Bug 623: X11Util adds property 'nativewindow.debug.X11Util.ATI_HAS_NO_MULTITHREADING_BUG' to disable GlobalToolkitLock workaround for testing.
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java (diff)
Commit e5c1e607d582d002256a07916aba71841744fb4d by Sven Gothel
X11Util: Detailed closing information only in DEBUG mode, just print summary
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java (diff)
Commit 7302b1014a33c373650ed20e6dd363bb6c2a984e by Sven Gothel
NullToolkitLock.validateLocker(): Throw exception if locking is required (detecting impl. bugs)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/NullToolkitLock.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
Commit c69d62a7869ba8e42ba4f4a6d4467bc1c49080e4 by Sven Gothel
test script: remove deleted unit test
The file was modifiedmake/scripts/tests.sh (diff)
Commit 0790108ca9c2a6a6d494e5017589fe083c518e23 by Sven Gothel
JAWTUtil ToolkitLock: Add lock counter to make lock validation recursive (Fix regression of commit 92398025abdabb2fdef0d78edd41e730991a6f94)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
Commit 7c333e3e2574879465719ed968112b27255368d4 by Sven Gothel
Relax Bug 613 workaround of commit 92398025abdabb2fdef0d78edd41e730991a6f94

Utilizing a GlobalToolkitLock in general to lock the display connection results in deadlock
situations where locked surfaces signal other [offscreen] surfaces to render.

We have to see whether we find a better solution, for now sporadic XCB assertion still happen.
But it is preferrable to point to the root cause, then to jumping through hoops to complicate locking
or even to deadlock.

Locking:
  - X11GLXGraphicsConfigurationFactory add missing device locking in:
    - getAvailableCapabilities
    - chooseGraphicsConfigurationStatic

  - Newt/X11Window: Discard display events after window close.

Relax ATI XCB/threading bug workaround:
  - ToolkitProperties: requiresGlobalToolkitLock() -> hasThreadingIssues()
  - NativeWindowFactory: Don't use GlobalToolkitLock in case of 'threadingIssues' the impact is too severe (see above)
  - NativeWindowFactory: Add getGlobalToolkitLockIfRequired(): To be used for small code blocks.
                         If having 'threadingIssues' a GlobalToolkitLock is returned, otherwise NullToolkitLock.
  - X11GLXContext: [create/destroy]ContextARBImpl: Use 'NativeWindowFactory.getGlobalToolkitLockIfRequired()' for extra locking

Misc Cleanup:
  - *DrawableFactory createMutableSurface: Also create new device if type is not suitable
  - *DrawableFactory createDummySurfaceImpl: Pass chosenCaps and use it (preserves orig. requested user caps)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/ToolkitProperties.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/NativeWindowFactoryImpl.java (diff)
The file was modifiedsrc/newt/native/X11Display.c (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLDrawableFactory.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/x11/X11Util.java (diff)
The file was modifiedsrc/newt/native/X11Window.c (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/GlobalToolkitLock.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff)
Commit 21b85e647f1e661c8e5e49caa91c564a3d041df2 by Sven Gothel
Fix commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b (Bug 616 - Remove XInitThreads())

X11Util/Native: Fix X11Util_initialize0() arguments were wrong and code still invoked XInitThreads() .. woops;
                Added missing included "jogamp_nativewindow_x11_X11Util.h" incl. it's generation via javah,
                which was the culprit of not detecting it at compile time.
                This is a fix for commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b
The file was modifiedsrc/nativewindow/native/x11/Xmisc.c (diff)
The file was modifiedmake/build-nativewindow.xml (diff)
Commit 98d5ae6b31802235426f0f540f7d0df74884a3d3 by Sven Gothel
FBObject/GLFBODrawable: Debug / glError detection

- Enh. Debug output a bit
- FBObject: Detect glError @ syncFramebuffer MSAA blit, throw GLException if glError to fail-fast

- TODO: May add Mesa NoFBOMSAA Quirk to disable even trying it ..
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/FBObject.java (diff)
Commit eb7ca05a602bfd3decf545e2807b7bfaf5a09a1e by Sven Gothel
GLRendererQuirks.NoDoubleBufferedPBuffer: Set if ( mesa || gallium ) && hwAccel
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff)
Commit 541dc2cdeaff64d4a241446752900bd6381d546a by Sven Gothel
Misc: Add commented-out NEWT X11/XCB-Event and X11ScreenRandR1[13] compilation ; ...

Adding [dead] native source files for NEWT/X11:
  - X11Event and XCBEvent
  - X11ScreenRandR11 X11ScreenRandR13

They are currently excluded from compilation, however I like do version them for later use.
The file was addedsrc/newt/native/X11ScreenRandR11.c (diff)
The file was addedsrc/newt/native/X11Event.c (diff)
The file was addedsrc/newt/native/X11ScreenRandR13.c (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java (diff)
The file was addedsrc/newt/native/XCBEvent.c (diff)
The file was addedsrc/newt/native/XCBEvent.h (diff)
The file was addedsrc/newt/native/X11Event.h (diff)
Commit 9c96be7c0a1a19365ae983908260c6ff44f045c4 by Sven Gothel
NativeWindowFactory: Remove 'remedy' of Bug 613 Commit 92398025abdabb2fdef0d78edd41e730991a6f94 GlobalToolkitLock for create/destroy

Turns out on it has no effect and ATI prop. driver still has XCB failures at this point.
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
Commit f7ca4df7b4e6b2acbdb941f67f6d7058db134d91 by Sven Gothel
Fix regression of fbe331f013608eb31ff0d8675f4e4c9881c9c48b [Remove XInitThreads()]

NativeWindowFactory.getDefaultToolkitLock() is no more a global singleton,
but an instance which has to track/lock a single resource.
Hence the decoration w/ it in GLDrawableFactory is useless and applying lock/unlock
on a new instance also a bug/regression.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsScreen.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
Commit a644d779ab19cb1d200ae4ba567b9c042c34b337 by Sven Gothel
Update PMVMatrix/GLMatrixFunc API doc and refine PMVMatrix update / get-Mvi/Mvit-Matrix operation. (Minor API change)

Using bitmask for requested Mvi and Mvit matrices,
same as dirty-bits to ease matching and update operation.

Update of Mvi and Mvit will be performed only if it's dirty-bit and request-bit set within update().
The individual dirty bit is cleared only if it's matrix update is performed.

Update is also issued at get-Mvi/Mvit-Matrix operations
to ensure proper values w/o update call w/o clearing the modified-bits.

update() returns true if the Mvi or Mvit matrix got updated
_or_ one of the modified bits is set. update() clears the modified-bits.

Adding explicit getModifiedBits() to get and clear it's state.

Adding unit test.

Lots of API docs ..
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/MiscUtils.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestPMVMatrix01NEWT.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/PMVMatrix.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/ProjectFloat.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsObjectES2.java (diff)
Commit 3ae26ed8a9f0d4394c5b1e22d8246c2cdf391b2e by Sven Gothel
ShaderState: Adding Class API doc and removing attached object w/ 'int' key, similar to GLContext change 6d241fc2a46413ee478985d676d2481c5a7ed119
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/glsl/ShaderState.java (diff)
Commit 65a94fb5d05c6997126bcaabd21c7f1814f6f203 by Sven Gothel
FixedFuncPipeline: Cleanup warnings ..
The file was modifiedsrc/jogl/classes/jogamp/opengl/util/glsl/fixedfunc/FixedFuncPipeline.java (diff)
Commit 4c9083b0766ef94643d91102fb91a5f9e598a914 by Sven Gothel
Fix regression of commit a644d779ab19cb1d200ae4ba567b9c042c34b337, cannot compile FixedFuncHook due to removed 'isDirty()'

- getModifiedBits() -> getModifiedBits(boolean clear)
The file was modifiedsrc/jogl/classes/jogamp/opengl/util/glsl/fixedfunc/FixedFuncHook.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestPMVMatrix01NEWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/PMVMatrix.java (diff)
Commit 7278244e321dd1d533223e9b6d668a6acd82bc76 by Sven Gothel
Footprint Stats ; Fix Bug 624 - Compile and generate android JAR files (jogl-all-android.jar, jogl-test-android.jar) if android SDK JAR files are available. ; Split up atomic jogl-util.jar

Compile and generate android JAR files (jogl-all-android.jar, jogl-test-android.jar) if android SDK JAR files are available.
  - See gluegen commit 55b4552aef7882c358d545d020d6f12c958ed8ed

Also split up atomic jogl-util.jar
  - jogl-util.jar -> jogl-util.jar + jogl-util-graph.jar

Footprint Stats:

  This demonstrates small footprint of a minimum configuration,
  all numbers in kilobytes (du -ksc).
  NOTE the min size of ~ 1MB!

JOGL ALL
  220 kB  gluegen-rt.jar
5180 kB  jogl-all.jar
    4 kB  libgluegen-rt.so.gz
    4 kB  libnativewindow_awt.so.gz
   12 kB  libnativewindow_x11.so.gz
  100 kB  libjogl_desktop.so.gz
   20 kB  libnewt.so.gz
5540 kB  total

JOGL Min X11 Min egl es1 es2
  220 kB  gluegen-rt.jar
  296 kB  atomic/jogl-core.jar
  156 kB  atomic/jogl-glmobile.jar
  284 kB  atomic/jogl-util.jar
   76 kB  atomic/nativewindow-core.jar
  120 kB  atomic/newt-core.jar
   28 kB  atomic/nativewindow-os-x11.jar
   28 kB  atomic/newt-driver-x11.jar
    4 kB  libgluegen-rt.so.gz
   48 kB  libjogl_mobile.so.gz
   12 kB  libnativewindow_x11.so.gz
   20 kB  libnewt.so.gz
1292 kB  total

JOGL Android - mobile egl es1 es2
  224 kB  gluegen-rt-android.jar
3020 kB  jogl-all-android.jar
    4 kB  libgluegen-rt.so.gz
   48 kB  libjogl_mobile.so.gz
3296 kB  total

JOGL Min Android/Mobile Min egl es1 es2
  224 kB  gluegen-rt-android.jar
  296 kB  atomic/jogl-core.jar
  156 kB  atomic/jogl-glmobile.jar
    8 kB  atomic/jogl-os-android.jar
  284 kB  atomic/jogl-util.jar
   76 kB  atomic/nativewindow-core.jar
  120 kB  atomic/newt-core.jar
   28 kB  atomic/newt-driver-android.jar
    4 kB  libgluegen-rt.so.gz
   48 kB  libjogl_mobile.so.gz
1244 kB  total
The file was modifiedmake/build-test.xml (diff)
The file was modifiedmake/scripts/lstjars.sh (diff)
The file was modifiedmake/build.xml (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedmake/build-jogl.xml (diff)
The file was modifiedmake/build-common.xml (diff)
The file was modifiedmake/scripts/tests.sh (diff)