<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>948</bug_id>
          
          <creation_ts>2014-01-23 05:51:30 +0100</creation_ts>
          <short_desc>NVIDIA 331.38 (Linux X11) EGL impl. only supports _one_ EGL Display via eglGetDisplay(..)</short_desc>
          <delta_ts>2014-01-24 19:34:25 +0100</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>opengl</component>
          <version>2</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sven Gothel">sgothel</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          
          
          <cf_type>DEFECT</cf_type>
          <cf_scm_refs>fbe00e6f5dca8043b40dd96f096fecc9424e0cc3
f1af72e1d93e8b928409c7bd8da0acb2b41cd345</cf_scm_refs>
          <cf_workaround>TRUE</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>3624</commentid>
    <comment_count>0</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-01-23 05:51:30 +0100</bug_when>
    <thetext></thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3625</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-01-23 05:55:39 +0100</bug_when>
    <thetext>NV proprietary driver 331.38 for GNU/Linux contains 
a 32bit libEGL and libGLES* libs.

They seem not to operate w/ an X11 graphics device, only w/ the default EGL device.

Currently we assume a functional driver w/ teh desktop-device,
if the EGL device test was successful.

Hence we shall test whether ES[1-3] is operational on desktop-device.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3626</commentid>
    <comment_count>2</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-01-23 18:42:13 +0100</bug_when>
    <thetext>NVIDIA 331.38 (Linux X11) EGL impl. only supports _one_ EGL Device via eglGetDevice.

- Subsequent eglGetDevice(..) calls fail.

- Using the same &apos;global&apos; egl-device does work though

Remedy: Add &apos;GLRendererQuirks.SingletonEGLDeviceOnly&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3628</commentid>
    <comment_count>3</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-01-23 18:45:07 +0100</bug_when>
    <thetext>(In reply to comment #2)
&gt; NVIDIA 331.38 (Linux X11) EGL impl. only supports _one_ EGL Device via
&gt; eglGetDevice.
&gt; 
&gt; - Subsequent eglGetDevice(..) calls fail.
&gt; 
&gt; - Using the same &apos;global&apos; egl-device does work though
&gt; 
&gt; Remedy: Add &apos;GLRendererQuirks.SingletonEGLDeviceOnly&apos;

NVIDIA 331.38 (Linux X11) EGL impl. only supports _one_ EGL Device 
via eglGetDisplay.

  - Subsequent eglGetDisplay(..) calls fail.

  - Using the same &apos;global&apos; egl-display does work though

Remedy: Add &apos;GLRendererQuirks.SingletonEGLDisplayOnly&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3634</commentid>
    <comment_count>4</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-01-24 05:16:35 +0100</bug_when>
    <thetext>fbe00e6f5dca8043b40dd96f096fecc9424e0cc3

    Detection of quirk is done as usual in GLContextImpl.setRendererQuirks(..),
    and EGLDrawableFactory passes the quirk, if detected, down to EGLDisplayUtil.
    The latter implements the singleton eglDisplay handle.
    
    EGLDisplayUtil: Cleaned up ..
      - EGLDisplayRef employs the reference handling incl. eglInitialize(..) and eglTerminate(),
        as well as the new singleton quirk.
    
      - Mark all internal methods &apos;private&apos;,
        to remove possible [untested] sideffects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3643</commentid>
    <comment_count>5</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2014-01-24 19:34:25 +0100</bug_when>
    <thetext>f1af72e1d93e8b928409c7bd8da0acb2b41cd345
    Refines commit fbe00e6f5dca8043b40dd96f096fecc9424e0cc3
    
    Instead of querying driver artifacts (vendor, platform, version ..)
    we simply can autodetect this quirk by trying to get a second egl-display handle
    when initializing the EGLDrawablFactory&apos;s default device:
      EGL.eglGetDisplay(EGL.EGL_DEFAULT_DISPLAY)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>