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

Changes

Summary

  1. Fix NPE regression of commit ba1ffe66697c3175b423cb7ab9b686d73959708d (details)
  2. Bug 1036: Renamed property to switch off NVidia Windows workaround (details)
  3. Bug 1028 - AMD Windows driver thread hinders JVM process to exit/end, (details)
  4. Bug 1039 - Specify behavior of GLEventListener Exceptions occurring (details)
  5. Bug 1039 - Specify behavior of GLEventListener Exceptions occurring (details)
  6. Bug 1039: Rename GLAnimatorControl.UncaughtGLAnimatorExceptionHandler -> (details)
Commit 60f397da5fd27e2140a0c1b3a102bba0e67c9f19 by Sven Gothel
Fix NPE regression of commit ba1ffe66697c3175b423cb7ab9b686d73959708d
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java (diff)
Commit 6cd0a28ff2cb3f1e249b524622abf411536be716 by Sven Gothel
Bug 1036: Renamed property to switch off NVidia Windows workaround 'jogl.windows.cpu_affinity_mode' (dropping '.debug')
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLDrawableFactory.java (diff)
Commit b66b068b5c1c238ea702ba7e8ea0c8a1c47cfcf1 by Sven Gothel
Bug 1028 - AMD Windows driver thread hinders JVM process to exit/end, caused by _not_ destroying the SharedResource context

SharedResourceRunner stop() method
is invoked by JMV shutdown hook and GLProfile/GLDrawableFactory.shutdown*().

It shall issue SharedResource.releaseSharedResource() for all implementations,
e.g. X11/GLX and Windows/WGL.

+++

Root cause is a GL driver thread keeping the process alive.

+++

On X11/GLX we destroy the shared context and the shared drawable.

On Windows/WGL we only destroy the shared drawable,
knowing that destroying the shared context caused a driver bug in the past.

Will enable the shared context destruction, which is the proper way.

+++

Commiting this patch to see whether our jenkins builds won't crash
due to previous experienced issues.
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLDrawableFactory.java (diff)
Commit 07a4801f3b5bfd4fba9a1a4a542ce2f2eae4396a by Sven Gothel
Bug 1039 - Specify behavior of GLEventListener Exceptions occurring while GLAutoDrawable processing [part-2]

In case of an exception thrown within an GLEventListener
called off-thread by Animator:
  - Animator shall stop
  - Animator shall forward the exception

GLDrawableHelper shall also flush all queued GLRunnable tasks
in case of an exception, so that another thread waiting until it's completion
is notified and continues processing.
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/Animator.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLException.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableHelper.java (diff)
Commit 88eef9e4eae8e63762252f1d11bca2bd0fde809b by Sven Gothel
Bug 1039 - Specify behavior of GLEventListener Exceptions occurring while GLAutoDrawable processing [part-3]

Add GLAnimatorControl.UncaughtGLAnimatorExceptionHandler interface to optionally handle
uncaught exception within an animator thread by the user.

Implementation also requires to flush all enqueued GLRunnable instances
via GLAutoDrawable.invoked(..) in case such exception occurs.
Hence 'GLAutoDrawable.flushGLRunnables()' has been added.

Only subsequent exceptions, which cannot be thrown are dumped to System.stderr.

+++

Handling of exceptions during dispose()

Exception in NEWT's disposeGL*() are also caught and re-thrown after
the NEWT window has been destroyed in WindowImpl.destroyAction:

  - GLEventListener.dispose(..)
    - GLDrawableHelper.disposeAllGLEventListener(..)
      - GLDrawableHelper.disposeGL(..)
        - GLAutoDrawableBase.destroyImplInLock(..)
          - GLWindow.GLLifecycleHook.destroyActionInLock(..)
            - WindowImpl.destroyAction on NEWT-EDT
              - WindowImpl.destroy

Further more, exceptions occuring in native windowing toolkit triggered destroy()
are ignored:
  - GLAutoDrawableBase.defaultWindowDestroyNotifyOp(..)

It has to be seen whether such exception handling for
dispose() shall be added to AWT/SWT.

+++

TestGLException01NEWT covers all GLEventListener exception cases
on-thread and off-thread (via animator).

+++
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLAutoDrawable.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableHelper.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLAnimatorControl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLDrawable.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLRunnableTask.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLException01NEWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/AWTAnimatorImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/DefaultAnimatorImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/Animator.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/AnimatorBase.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLException.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit 5c1214b26ad6c877a9c0f8099a7fc2a230a8b245 by Sven Gothel
Bug 1039: Rename GLAnimatorControl.UncaughtGLAnimatorExceptionHandler -> GLAnimatorControl.UncaughtExceptionHandler
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLAnimatorControl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/AnimatorBase.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLException01NEWT.java (diff)