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.
NVIDIA 331.38 (Linux X11) EGL impl. only supports _one_ EGL Device via eglGetDevice. - Subsequent eglGetDevice(..) calls fail. - Using the same 'global' egl-device does work though Remedy: Add 'GLRendererQuirks.SingletonEGLDeviceOnly'
(In reply to comment #2) > NVIDIA 331.38 (Linux X11) EGL impl. only supports _one_ EGL Device via > eglGetDevice. > > - Subsequent eglGetDevice(..) calls fail. > > - Using the same 'global' egl-device does work though > > Remedy: Add 'GLRendererQuirks.SingletonEGLDeviceOnly' NVIDIA 331.38 (Linux X11) EGL impl. only supports _one_ EGL Device via eglGetDisplay. - Subsequent eglGetDisplay(..) calls fail. - Using the same 'global' egl-display does work though Remedy: Add 'GLRendererQuirks.SingletonEGLDisplayOnly'
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 'private', to remove possible [untested] sideffects.
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's default device: EGL.eglGetDisplay(EGL.EGL_DEFAULT_DISPLAY)