Bug 896 - Use EGL_KHR_create_context allowing EGLContext to create OpenGL Destop Contex and using Debug profiles (for desktop and mobile)
: Use EGL_KHR_create_context allowing EGLContext to create OpenGL Destop Contex...
Status: RESOLVED FIXED
: None
: Jogl
: JogAmp
: core (show other bugs)
: 2.3.2
: All all
: --- enhancement
: Sven Gothel
:
:
: 1203
  Show dependency treegraph
 
Reported: 2013-11-06 16:52 CET by Sven Gothel
Modified: 2015-09-27 01:31 CEST (History)
1 user (show)

:
Type: ---
SCM Refs:
35622a7cef4a28ce7e32bf008ef331d9a0d9e3e2 38baef0371fc55405779590d503f6e0de10fa9cc
Workaround: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2013-11-06 16:52:41 CET

    
Comment 1 Sven Gothel 2014-12-07 04:04:40 CET
35622a7cef4a28ce7e32bf008ef331d9a0d9e3e2

    - Detect EGL_KHR_create_context capability and utilize if available.
    
    - Implement EGLContext.createContextARBImpl(..),
      allowing native DEBUG context usage, where available.
    
    - EGL implements SharedResourceRunner, i.e. probing profiles
      on dedicated thread using common interface.
    
    - Probe desktop profile/context ability
      in EGLDrawableFactory SharedResourceRunner,
      Where EGLGLnDynamicLibraryBundleInfo covers EGL + desktop GL.
    
    - TODO: Tests w/ capable implementation
Comment 2 Sven Gothel 2015-01-23 15:13:39 CET
38baef0371fc55405779590d503f6e0de10fa9cc
    Refine criteria to allow OpenGL API usage for EGL
    
    It has been experienced w/ Mesa 10.3.2 (EGL 1.4/Gallium)
    that even though initial OpenGL context can be created w/o 'EGL_KHR_create_context',
    switching the API via 'eglBindAPI(EGL_OpenGL_API)' the latter 'eglCreateContext(..)' fails w/ EGL_BAD_ACCESS.
    
    Hence we require both: OpenGL API support _and_  'EGL_KHR_create_context'.
    
    FIXME: Evaluate this issue in more detail!
    
    FIXME: Utilization of eglBindAPI(..) must be re-evaluated in case we mix ES w/ OpenGL, see EGL 1.4 spec.
           This is due to new semantics, i.e. API is bound on a per thread base,
           hence it must be switched before makeCurrent w/ different APIs, see:
              eglWaitClient();
Comment 3 Sven Gothel 2015-08-28 00:57:37 CEST
Further work to achieve this feature is being 
continued in Bug 1203.