From 18e487fdfe6f27564d976aa3a568d0ddc272d8ba Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sun, 30 Aug 2015 04:59:11 +0200 Subject: Bug 1203: OpenGL ES 3.1 NVIDIA 355.06's EGL impl. is unstable requires GLRendererQuirk.SingletonEGLDisplayOnly Test cases with multiple EGLDisplay init/terminate result to crashes due to NVidia's 355.06 driver. Hence enable GLRendererQuirk.SingletonEGLDisplayOnly if EGL vendor is NVIDIA until a good driver version is known. --- src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java | 7 ++++--- src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java index 55c02d92a..7898566f3 100644 --- a/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java +++ b/src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java @@ -287,6 +287,7 @@ public class GLRendererQuirks { *
  • EGL_VERSION 1.4
  • *
  • GL_VENDOR NVIDIA Corporation
  • *
  • GL_VERSION OpenGL ES 3.0 331.38 (probably w/ 1st NV EGL lib on x86)
  • + *
  • GL_VERSION OpenGL ES 3.1 NVIDIA 355.06 (unstable)
  • *
  • Platform X11
  • *
  • CPU Family {@link Platform.CPUFamily#X86}
  • * @@ -393,7 +394,7 @@ public class GLRendererQuirks { *

    */ public static final int NeedSharedObjectSync = 20; - + /** * No reliable ARB_create_context implementation, * even if driver claims otherwise. @@ -401,8 +402,8 @@ public class GLRendererQuirks { * Some drivers wrongly claim to support ARB_create_context. * However, the creation of such context fails: *
    -     *   com.jogamp.opengl.GLException: AWT-EventQueue-0: WindowsWGLContex.createContextImpl ctx !ARB, profile > GL2 
    -     *   requested (OpenGL >= 3.0.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 2.1 (Compat profile, FBO, hardware) 
    +     *   com.jogamp.opengl.GLException: AWT-EventQueue-0: WindowsWGLContex.createContextImpl ctx !ARB, profile > GL2
    +     *   requested (OpenGL >= 3.0.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 2.1 (Compat profile, FBO, hardware)
          *   - 2.1.8787
          * 
    *

    diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java b/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java index 2e5ee0854..fed02f34e 100644 --- a/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java +++ b/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java @@ -537,10 +537,10 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl { } // Probe for GLRendererQuirks.SingletonEGLDisplayOnly final boolean singletonEGLDisplayOnlyVendor, singletonEGLDisplayOnlyProbe; - /* if( defaultDeviceEGLFeatures.vendor.contains("NVIDIA") ) { // May use for later .. + if( defaultDeviceEGLFeatures.vendor.contains("NVIDIA") ) { // OpenGL ES 3.1 NVIDIA 355.06 unstable singletonEGLDisplayOnlyVendor=true; singletonEGLDisplayOnlyProbe=false; - } else */ { + } else { singletonEGLDisplayOnlyVendor=false; final long secondEGLDisplay = EGL.eglGetDisplay(EGL.EGL_DEFAULT_DISPLAY); singletonEGLDisplayOnlyProbe = EGL.EGL_NO_DISPLAY == secondEGLDisplay; -- cgit v1.2.3