Bug 658

Summary: 3.1 context on Mesa 9.0.1 is buggy
Product: [JogAmp] Jogl Reporter: Mark Raynsford <org.jogamp>
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: normal CC: sgothel
Priority: ---    
Version: 2   
Hardware: pc_all   
OS: linux   
Type: --- SCM Refs:
jogl 3ce0aa6e36d9474ac3105cab491a60327860757d
Workaround: TRUE
Attachments: Two unit tests
The second test as native code with GLFW
The first test as native code with GLFW

Description Mark Raynsford 2012-12-28 20:56:04 CET
Created attachment 402 [details]
Two unit tests

The 3.1 context exposed by the recent 9.0.1 update is defective. At least two function calls give nonsensical errors (the second of which actually prevents the use of VBOs at all). I've only confirmed this on Intel.

See the attached test cases (both of which should *pass* on the buggy setup).

Note that forcing a 3.0 context with -Djogl.debug.GLContext.NoProfileAliasing results in a working 3.0 context that won't give the errors detected in the unit tests.
Comment 1 Mark Raynsford 2012-12-28 21:03:40 CET
Created attachment 403 [details]
The second test as native code with GLFW
Comment 2 Mark Raynsford 2012-12-28 21:04:20 CET
Created attachment 404 [details]
The first test as native code with GLFW
Comment 3 Mark Raynsford 2012-12-28 21:06:20 CET
The native tests give the following output on buggy contexts:

renderer : Mesa DRI Intel(R) Sandybridge Mobile 
version  : 3.1 Mesa 9.0.1
vendor   : Intel Open Source Technology Center
glVertexAttribPointer: 502

renderer : Mesa DRI Intel(R) Sandybridge Mobile 
version  : 3.1 Mesa 9.0.1
vendor   : Intel Open Source Technology Center
test-poly: glPolygonMode: 1280
Comment 4 Mark Raynsford 2012-12-29 13:52:22 CET
I've just discovered that glPolygonMode(GL_FRONT, ...); and glPolygonMode(GL_BACK, ...); are invalid under 3.1 - only GL_FRONT_AND_BACK is allowed.

I'm still investigating the second case, in case it's not a bug either.
Comment 5 Sven Gothel 2012-12-29 23:46:40 CET
    Fix Bug 658 (Mesa 9.0 3.1 Intel compat quirk, 3.1 core only) ; No PROFILE_ALIASING compat -> core ; Fix setGLFunctionAvailability(..) failure path @ profile query
    
    - Add GLRendererQuirks.GLNonCompliant, marking a GL context/profile non compliant.
      Currently: 'Mesa DRI Intel(R) Sandybridge Desktop' && 3.1 compat profile
    
    - Fix Bug 658 (Mesa 9.0 3.1 Intel compat quirk, 3.1 core only)
      Detect case using new GLRendererQuirks.GLNonCompliant in setGLFunctionAvailability() and return 'false'.

...

http://jogamp.org/git/?p=jogl.git;a=commit;h=3ce0aa6e36d9474ac3105cab491a60327860757d