jogamp using Generic GDI driver in Windows 10

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

jogamp using Generic GDI driver in Windows 10

Stephen Mayes
I have Intel HD Graphics (see below).
jogamp works perfectly in Ubuntu X11 nouveau on the same hardware.

forceES2    false
forceES3    false
forceGL3    false
forceGL4ES3 false
-----------------------------------------------------------------------------------------------------
Platform: WINDOWS / Windows 10 10.0 (10.0.0), amd64 (X86_64, GENERIC_ABI), 2 cores, littleEndian true
MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    4 / 4
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 16 / 16
  pointer 8 / 8, page    4096
Platform: Java Version: 1.8.0_91 (1.8.0u91), VM: Java HotSpot(TM) 64-Bit Server VM, Runtime: Java(TM) SE Runtime Environment
Platform: Java Vendor: Oracle Corporation, http://java.oracle.com/, JavaSE: true, Java6: true, AWT enabled: true
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.common
Extension Name: com.jogamp.common
Specification Title: GlueGen Java Bindings Generator
Specification Vendor: JogAmp Community
Specification Version: 2.3
Implementation Title: GlueGen Run-Time
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.3.2
Implementation Build: 2.3-b900-20151009
Implementation Branch: origin/master
Implementation Commit: cc1e9bc698b7f11097c1e114027e53121552f280
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.opengl
Extension Name: com.jogamp.opengl
Specification Title: Java Bindings for OpenGL API Specification
Specification Vendor: JogAmp Community
Specification Version: 2.3
Implementation Title: Java Bindings for OpenGL Runtime Environment
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.3.2
Implementation Build: 2.3-b1469-20151010
Implementation Branch: origin/master
Implementation Commit: e794fc40ba723f2fca4ac892e873975fb393e007
-----------------------------------------------------------------------------------------------------
GLProfiles on device WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x3b6eb2ec]]
        Natives
                GL4bc false
                GL4 false
                GLES3 false
                GL3bc false
                GL3 false
                GL2 true [1.1 (Compat profile, compat[], software)]
                GLES2 false
                GLES1 false
                Count 1 / 8
        Common
                GL4ES3 false
                GL2GL3 true
                GL2ES2 true
                GL2ES1 true
        Mappings
                GL2ES1 GLProfile[GL2ES1/GL2.sw]
                GL2ES2 GLProfile[GL2ES2/GL2.sw]
                GL2 GLProfile[GL2/GL2.sw]
                GL2GL3 GLProfile[GL2GL3/GL2.sw]
                default GLProfile[GL2/GL2.sw]
                Count 4 / 12


Desktop Capabilities:
        GLCaps[wgl vid 1 gdi: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/0, dp/st/ms 32/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo, bitmap]]
        GLCaps[wgl vid 2 gdi: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/0, dp/st/ms 16/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo, bitmap]]
        GLCaps[wgl vid 3 gdi: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/0, dp/st/ms 32/8/0, dbl, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo]]
        GLCaps[wgl vid 4 gdi: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/0, dp/st/ms 16/8/0, dbl, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo]]
        GLCaps[wgl vid 5 gdi: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 32/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo, bitmap]]
        GLCaps[wgl vid 6 gdi: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 16/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo, bitmap]]
        GLCaps[wgl vid 7 gdi: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 32/8/0, dbl, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo]]
        GLCaps[wgl vid 8 gdi: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 16/8/0, dbl, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo]]
        GLCaps[wgl vid 9 gdi: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 32/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo, bitmap]]
        GLCaps[wgl vid 10 gdi: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo, bitmap]]
        GLCaps[wgl vid 11 gdi: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 32/8/0, dbl, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo]]
        GLCaps[wgl vid 12 gdi: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/8/0, dbl, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[fbo]]
        GLCaps[wgl vid 13 gdi: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/0, dp/st/ms 32/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], offscr[bitmap]]
        GLCaps[wgl vid 14 gdi: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/0, dp/st/ms 16/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], offscr[bitmap]]
        GLCaps[wgl vid 17 gdi: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 32/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], offscr[bitmap]]
        GLCaps[wgl vid 18 gdi: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/8/0, one, mono  , sw, GLProfile[GL2/GL2.sw], offscr[bitmap]]

EGL Capabilities:
        none


Requesting: GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2.sw], on-scr[.]]
Main Monitor: Monitor[Id 0x0 [primary], 344 x 193 mm, pixelScale [1.0, 1.0], viewport [ 0 / 0  1366 x 768 ] [pixels], [ 0 / 0  1366 x 768 ] [window], orig [Id 0x0, [ 1366 x 768 pixels x 32 bpp ] @ 60.0 Hz, flags [], 0 degr], curr [Id 0x0, [ 1366 x 768 pixels x 32 bpp ] @ 60.0 Hz, flags [], 0 degr], modeChanged false, modeCount 52]
    pixel/mm [3.9709303, 3.9792745]
    pixel/in [100.861626, 101.07357]
-----------------------------------------------------------------------------------------------------
WindowsGraphicsDevice[type .windows, connection decon]:
        Natives
                GL4bc false
                GL4 false
                GLES3 false
                GL3bc false
                GL3 false
                GL2 true [1.1 (Compat profile, compat[], software)]
                GLES2 false
                GLES1 false
                Count 1 / 8
        Common
                GL4ES3 false
                GL2GL3 true
                GL2ES2 true
                GL2ES1 true
        Mappings
                GL2ES1 GLProfile[GL2ES1/GL2.sw]
                GL2ES2 GLProfile[GL2ES2/GL2.sw]
                GL2 GLProfile[GL2/GL2.sw]
                GL2GL3 GLProfile[GL2GL3/GL2.sw]
                default GLProfile[GL2/GL2.sw]
                Count 4 / 12

Swap Interval  0
GL Profile     GLProfile[GL2/GL2.sw]
GL Version     1.1 (Compat profile, compat[], software) - 1.1.0 [GL 1.1.0, vendor 0.0.0 (n/a)]
Quirks         [NoDoubleBufferedBitmap, NoSurfacelessCtx]
Impl. class    jogamp.opengl.gl4.GL4bcImpl
GL_VENDOR      Microsoft Corporation
GL_RENDERER    GDI Generic
GL_VERSION     1.1.0
GLSL           false, has-compiler-func: false
GL FBO: basic false, full false
GL_EXTENSIONS  3
GLX_EXTENSIONS 0
-----------------------------------------------------------------------------------------------------
Requested: GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL2/GL2.sw], on-scr[.]]
Chosen   : GLCaps[wgl vid 4 gdi: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/0, dp/st/ms 16/8/0, dbl, mono  , sw, GLProfile[GL2/GL2.sw], on-scr[.]]
GL impl. class jogamp.opengl.gl4.GL4bcImpl



I see a selection here. Is there a way to tell jogamp ?
Reply | Threaded
Open this post in threaded view
|

Re: jogamp using Generic GDI driver in Windows 10

gouessej
Administrator
Hi

You talk about the Nouveau driver for Nvidia GPUs and you talk about Intel HD Graphics, does your laptop have them both? According to your screen capture, Microsoft Windows only sees the former, not the latter. Does your laptop use Optimus?

There is a bug report about your problem as far as I remember. Intel provides a kind of "fake" driver that wrongly claims to work correctly only to allow numerous users to switch to Windows 10 without providing real OpenGL support. In this case, JOGL uses the GDI renderer as a fallback. If you're really in this situation, there is nothing that can be done at JOGL level to work around this issue.
https://jogamp.org/bugzilla/show_bug.cgi?id=1278#c15
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: jogamp using Generic GDI driver in Windows 10

Stephen Mayes
Sorry about the confusion. nouveau is on the BigBox. this laptop uses i915 and it works. There is only the one GPU here.

The point is that the Windows driver works too, (glew loads it corectly, glViewer sees it.) I have seen "Use Software Rendering" selectable in many applications and my guess is that the GDI renderer is for that.

jogamp seems to be selecting it by default.
Reply | Threaded
Open this post in threaded view
|

Re: jogamp using Generic GDI driver in Windows 10

Xerxes Rånby
The issue is: The windows intel driver fail to load if it is initialized by a windows 10 compliant application.

Microsofts guidelines how to make an application windows 10 compatible is here:
Oracle have implemented the manifest change according to the Microsoft specification to become windows 10 compliant:

Intel is aware that their "windows 10" driver only work for applications that are *not* windows 10 compliant, however intel do not plan to release a new driver.
https://software.intel.com/en-us/forums/graphics-driver-bug-reporting/topic/607695

Thus the only two ways to get around the situation is to:
A) Patch the Intel driver so that it still load when using window 10 compiant software.
B) Use an old java version that is not windows 10 compliant.
Minecraft is one example of a software that downloads and uses and old version of java to workaround this issue.


2016-11-29 11:45 GMT+01:00 Stephen Mayes [via jogamp] <[hidden email]>:
Sorry about the confusion. nouveau is on the BigBox. this laptop uses i915 and it works. There is only the one GPU here.

The point is that the Windows driver works too, (glew loads it corectly, glViewer sees it.) I have seen "Use Software Rendering" selectable in many applications and my guess is that the GDI renderer is for that.

jogamp seems to be selecting it by default.



If you reply to this email, your message will be added to the discussion below:
http://forum.jogamp.org/jogamp-using-Generic-GDI-driver-in-Windows-10-tp4037477p4037482.html
To start a new topic under jogl, email [hidden email]
To unsubscribe from jogamp, click here.
NAML

Reply | Threaded
Open this post in threaded view
|

Re: jogamp using Generic GDI driver in Windows 10

gouessej
Administrator
In reply to this post by Stephen Mayes
I agree with Xerxes.

Your version of glViewer is probably not Windows 10 compliant, that's why the Intel OpenGL driver works.

It's not a JOGL bug, Intel is to blame. The both solutions Xerxes mentions have security concerns as an "old" Java version doesn't have all security fixes and patching the Intel driver might cause some troubles with a few virus scanners (including Virus Total). My suggestion (using Mesa or ANGLE) doesn't have those security concerns but it's not trivial.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: jogamp using Generic GDI driver in Windows 10

Stephen Mayes
and apparently my glew is not 'Windows 10 Compliant' either.
Thank you both. This is exactly the info I needed.

I can use an older java. I will try it and get back.
Reply | Threaded
Open this post in threaded view
|

Re: jogamp using Generic GDI driver in Windows 10

Stephen Mayes
This output from jogamp test with jre1.8.0_51

...
GL Profile     GLProfile[GL3bc/GL3bc.hw]
GL Version     3.1 (Compat profile, arb, compat[ES2, ES3], FBO, hardware) - 3.1.0 - Build 9.17.10.4229 [GL 3.1.0, vendor 9.17.10 (- Build 9.17.10.4229)]
Quirks         [NoDoubleBufferedBitmap, NoSurfacelessCtx]
Impl. class    jogamp.opengl.gl4.GL4bcImpl
GL_VENDOR      Intel
GL_RENDERER    Intel(R) HD Graphics
GL_VERSION     3.1.0 - Build 9.17.10.4229
GLSL           true, has-compiler-func: true, version: 1.40 - Intel Build 9.17.10.4229 / 1.40.0
GL FBO: basic true, full true
GL_EXTENSIONS  129
GLX_EXTENSIONS 0
-----------------------------------------------------------------------------------------------------
Requested: GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3bc/GL3bc.hw], on-scr[.]]
Chosen   : GLCaps[wgl vid 6 arb: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3bc/GL3bc.hw], on-scr[.]]
GL impl. class jogamp.opengl.gl4.GL4bcImpl
GL4ES3 retrieved, impl. class jogamp.opengl.gl4.GL4bcImpl
GL3 retrieved, impl. class jogamp.opengl.gl4.GL4bcImpl

It will work for me.
Thanks Again
Reply | Threaded
Open this post in threaded view
|

Re: jogamp using Generic GDI driver in Windows 10

gouessej
Administrator
Thank you for your feedback, it confirms that this workaround works.

When you have to use a more recent version of Java, let us know.
Julien Gouesse | Personal blog | Website