Bug 862

Summary: NVidia GTX550 driver 331.13 - 64bit Linux - No compatibility GLProfile (GL2, >= GL3bc)
Product: [JogAmp] Jogl Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: normal CC: askinner, gouessej, sgothel
Priority: P5    
Version: 2   
Hardware: pc_all   
OS: linux   
Type: --- SCM Refs:
34b35c5a0a379a6b4c0b23b9d347a0b1338f0239
Workaround: ---

Description Sven Gothel 2013-10-17 23:09:15 CEST
The following has been reported ..
  NVidia GTX550 driver 331.13 - 64bit Linux - No GLProfile

Next step: validate
Comment 1 Sven Gothel 2013-10-18 03:29:50 CEST
Work here w/ NV 331.13

Platform: LINUX / Linux 3.7.1-x64-k10-nlb-jau01 (3.7.1), amd64 (arch), GENERIC_ABI, 8 cores
MachineDescription: runtimeValidated true, littleEndian true, 32Bit false, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    8 / 8
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 16 / 16
  pointer 8 / 8, page    4096
Platform: Java Version: 1.7.0_45 (1.7.0u45), VM: Java HotSpot(TM) 64-Bit Server VM, Runtime: Java(TM) SE Runtime Environment


GL Profile     GLProfile[GL4/GL4.hw]
GL Version     4.3 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware) - 4.3.0 NVIDIA 331.13 [GL 4.3.0, vendor 331.13.0 (NVIDIA 331.13)]
Quirks         []
Impl. class    jogamp.opengl.gl4.GL4bcImpl
GL_VENDOR      NVIDIA Corporation
GL_RENDERER    GeForce GTX 660/PCIe/SSE2
GL_VERSION     4.3.0 NVIDIA 331.13
GLSL           true, has-compiler-func: true, version: 4.30 NVIDIA via Cg compiler / 4.30.0
Comment 2 Sven Gothel 2013-10-18 05:02:02 CEST
reduced prio/impact .. since not reproduced here, will close if nobody is able to.
Comment 3 Julien Gouesse 2013-10-18 09:57:45 CEST
(In reply to comment #0)
> The following has been reported ..
>   NVidia GTX550 driver 331.13 - 64bit Linux - No GLProfile
> 
> Next step: validate

There was already a similar problem under OpenSUSE and it was caused by the presence of the JARs containing the native libraries for Android, I fixed this bug with your help several months ago by preventing the loading of those natives when we're not under Android. I assume that it's no longer reproducible.
Comment 4 Sven Gothel 2013-10-18 22:19:43 CEST
not reproducible
Comment 5 Sven Gothel 2013-10-18 22:20:19 CEST
(In reply to comment #3)
> (In reply to comment #0)
> > The following has been reported ..
> >   NVidia GTX550 driver 331.13 - 64bit Linux - No GLProfile
> > 
> > Next step: validate
> 
> There was already a similar problem under OpenSUSE and it was caused by the
> presence of the JARs containing the native libraries for Android, I fixed
> this bug with your help several months ago by preventing the loading of
> those natives when we're not under Android. I assume that it's no longer
> reproducible.

thank you for mentioning it!
Comment 6 Sven Gothel 2013-10-18 22:41:59 CEST
On said system, no compatibility profile could be created, i.e. GL2, GL3bc ..
Comment 7 Sven Gothel 2013-10-19 02:50:29 CEST
    Fix GL Version Validation:
      We shall not rely on our known good versions when validating a queried GL context version,
      but allow some 'room' for a higher version post JOGL release while still
      cutting off 'odd versions'.
    
      While GL version detection, we always iterate from the highest known version
      down to the lowest. Hence 'GLContext.isValidGLVersion(..)' is satisfied
      by validating the lowest version number but allowing a higher than known one.
    
      Now we would return 'invalid' for a version >= 6.
    
      It is enough to clip to the maximum known version when iterating,
      allowing the highest unknown version to be available.
    
      GLContext.isValidGLVersion(..):
        Returns true, if the major.minor is not inferior to the lowest
        valid version and does not exceed the highest known major number by more than one.
    
        The minor version number is ignored by the upper limit validation
        and the major version number may exceed by one.
    
        The upper limit check is relaxed since we don't want to cut-off
        unforseen new GL version since the release of JOGL.
    
        Hence it is important to iterate through GL version from the upper limit
        and 'decrementGLVersion(..)' until invalid.

    Add GL Version 4.4 to valid known versions.
    
    Remove ES3 desktop detection, which is impossible
      Regression of commit 3a0d7703da32e9a5ddf08a334f18588a78038d88 (ES3 support)