Login  Register

Re: jogl crashes video card driver

Posted by Sven Gothel on Dec 21, 2012; 3:56am
URL: https://forum.jogamp.org/jogl-crashes-video-card-driver-tp4026980p4027597.html

On 12/20/2012 10:15 PM, runiter [via jogamp] wrote:
> But I must point out again, the hardware or drivers shouldn't be the problem
> because the standalone application works fine and only webstart fails. So it
> could be a java security problem, or some jogl code that does not run when it
> is inside webstart.

1st of all, you are _not_ using our jogamp packages:

> Package: javax.media.opengl
> Extension Name: null
> Specification Title: null
> Specification Vendor: null
> Specification Version: null
> Implementation Title: null
> Implementation Vendor: null
> Implementation Vendor ID: null
> Implementation URL: null
> Implementation Version: null
> Implementation Branch: null
> Implementation Commit: null
hence I can't associate the debug dumps and stack traces to
it's proper source code!

please re-run your test w/ debug logs w/ either RC11 or better the very latest source code.

+++

.. and a GL context was being picked up:

[1] Shared-Ctx !ARB, GL 2.1:
> avawsApplicationMain-SharedResourceRunner: setRealized: WindowsOnscreenWGLDrawable false -> true
> WindowsWGLDrawable.setRealized(true): WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, NullToolkitLock[]], idx 0], pfdID 6, ARB-Choosen false,
...
> javawsApplicationMain-SharedResourceRunner: Initializing WGL extension address table: WGL-.windows_decon_0
> javawsApplicationMain-SharedResourceRunner: GLContext WGL ProcAddressTable mapping key(WGL-.windows_decon_0) -> 0x5935c72f
> javawsApplicationMain-SharedResourceRunner: GLContext.setGLFuncAvail: Given WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, NullToolkitLock[]] - 0.0 (Compatibility profile, hardware) - 2.1.0 - Build 8.15.10.2622
> javawsApplicationMain-SharedResourceRunner: GLContext.setGLFuncAvail.0 validated FQN: .windows_decon_0-0x2010002 - 2.1 (Compatibility profile, hardware) - 2.1.0 - Build 8.15.10.2622, 2.1.0
...

[2] Querying all available ctx: ARB 3.1, but result is 2.1 (funny!):
> javawsApplicationMain-SharedResourceRunner: createContextARBVersions: share 0, direct true, version 3.1
> javawsApplicationMain-SharedResourceRunner - WindowWGLContext.createContextARBImpl: 3.1 (Compatibility profile, arb, hardware) - @creation, handle 0xd010ea1, share 0x0, direct true, wglCreateContextAttribsARB: 0x180741c00
> javawsApplicationMain-SharedResourceRunner: createContextARBImpl: OK 3.1 (Compatibility profile, arb, hardware) - @creation, share 0, direct true
> javawsApplicationMain-SharedResourceRunner: Initializing WGL extension address table: WGL-.windows_decon_0
> javawsApplicationMain-SharedResourceRunner: GLContext WGL ProcAddressTable reusing key(WGL-.windows_decon_0) -> 0x5935c72f
> javawsApplicationMain-SharedResourceRunner: GLContext.setGLFuncAvail: Given WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, NullToolkitLock[]] - 3.1 (Compatibility profile, arb, hardware) - 2.1.0 - Build 8.15.10.2622
> javawsApplicationMain-SharedResourceRunner: GLContext.setGLFuncAvail.0 validated FQN: .windows_decon_0-0x2010003 - 2.1 (Compatibility profile, arb, hardware) - 2.1.0 - Build 8.15.10.2622, 2.1.0
> javawsApplicationMain-SharedResourceRunner: GLContext GL ProcAddressTable mapping key(.windows_decon_0-0x2010003) -> 0x1d7e08a8
> javawsApplicationMain-SharedResourceRunner:ExtensionAvailabilityCache: Pre-caching init jogamp.opengl.gl4.GL4bcImpl@302d4d0a, OpenGL 2.1 (Compatibility profile, FBO, hardware) - 2.1.0 - Build 8.15.10.2622

[3] .. and then a NPE:
> javax.media.opengl.GLException: WindowsWGLDrawableFactory - Could not initialize shared resources for decon
>         at jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory$SharedResourceImplementation.createSharedResource(WindowsWGLDrawableFactory.java:359)
>         at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:261)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.NullPointerException
>         at jogamp.opengl.GLContextImpl.removeCachedVersion(GLContextImpl.java:1352)
>         at jogamp.opengl.GLContextImpl.createContextARBVersions(GLContextImpl.java:937)
>         at jogamp.opengl.GLContextImpl.createContextARBMapVersionsAvailable(GLContextImpl.java:863)

the funny part is - and hinting to some sort of a GL impl. bug of the driver,
that the queried context [2] was created using the ARB methods
requesting a GL 3.1 compatibility profile, but the ctx string says GL 2.1.0.

The NPE [3] is somewhat caused by this, since it tries
to (DEBUG) print the 3.1 ctx removed ProcAddressTable hash code, but null was removed.
Ofc, the 3.1 ctx ProcAddressTable was never been added, just the 2.1 ProcAddressTable.

+++

Interesting that this does not confuse the non webstart launching method,
as you claim.

What would be very helpful now is:
 - Use a known JOGL version (see above), or
   mention the RC version, or the git commit.

 - Also add the debug logs for the standalone version,
   simply running etc\test_dbg.bat
   and attaching test_dbg.log should suffice.

 - Full name of your Intel HD GPU

I currently add a few lines of code for a more strict
GL version validation when querying and fixed the NPE.

Well, I only have the Intel HD SandyBridge here to test.

~Sven




signature.asc (909 bytes) Download Attachment