With the recent patch to allow 3.1 Core contexts on Mesa, it seems that compatibility profiles are returned. As an example, when running com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT, the following output occurs: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT position null size 640 x 480 resize null screen 0 translucent false forceAlpha -1 undecorated false atop false fullscreen false pmvDirect false mouseVisible true mouseConfined false loops 1 loop shutdown false forceES2 false forceGL3 false swapInterval 1 exclusiveContext false useAnimator true sysExitWithin none JUnit version 4.8.2 Thread-1 - SISock: localhost/127.0.0.1:59999 - started SLOCK [T main @ 1372885588922 ms +++ localhost/127.0.0.1:59999 - Locked within 6 ms, 1 attempts .++++ UITestCase.setUp: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test01_GL2ES2 Loop 1/1 requested: vsync 1, 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[.]] window moved: 2/17 640x480 window moved: 328/230 640x480 window resized: 328/230 640x480 NW chosen: GLCaps[glx vid 0x21c, fbc 0xb6: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/0/0, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw], on-scr[.]] GL chosen: GLCaps[glx vid 0x21c, fbc 0xb6: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/0/0, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw], on-scr[.]] window pos/siz: 328/230 640x480, [ l 2, r 2 - t 17, b 7 - 4x24] Thread[main-Animator,5,main] GearsES2.init ... GearsES2 init on Thread[main-Animator,5,main] Chosen GLCapabilities: GLCaps[glx vid 0x21c, fbc 0xb6: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/0/0, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw], on-scr[.]] INIT GL IS: jogamp.opengl.gl4.GL4bcImpl GL_VENDOR: X.Org GL_RENDERER: Gallium 0.4 on AMD RV730 GL_VERSION: 3.1 (Core Profile) Mesa 9.1.3 GL GLSL: true, has-compiler-func: true, version 1.40, 1.40.0 GL FBO: basic true, full true GL Profile: GLProfile[GL3bc/GL3bc.hw] GL Renderer Quirks:[NoDoubleBufferedPBuffer, NoSetSwapIntervalPostRetarget] GL:jogamp.opengl.gl4.GL4bcImpl@102689a7, 3.1 (hardware) - 3.1 (Core Profile) Mesa 9.1.3 gear1 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@15d80dfe gear2 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@1b7ea9e6 gear3 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@18c44924 Thread[main-Animator,5,main] GearsES2.init FIN Thread[main-Animator,5,main] GearsES2.reshape 0/0 640x480, swapInterval 1, drawable 0x8200002 main-Animator: ** screenshot: TestGearsES2NEWT.test01_GL2ES2-n0000-GL3bc_-hw-onscreen-Bdbl-Frgb__Irgba8880-D24-St00-Sa00_default-0640x0480.png Info: GLReadBufferUtil.readPixels: pre-exisiting GL error 0x502 QUIT Window Thread[main-Display-.x11_:0.0-1-EDT-1,5,main] Thread[main-Display-.x11_:0.0-1-EDT-1,5,main] GearsES2.dispose ... Thread[main-Display-.x11_:0.0-1-EDT-1,5,main] GearsES2.dispose FIN ++++ UITestCase.tearDown: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test01_GL2ES2 .++++ UITestCase.setUp: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test02_GLES2 ++++ UITestCase.tearDown: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test02_GLES2 .++++ UITestCase.setUp: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test03_GL3 ++++ UITestCase.tearDown: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test03_GL3 SLOCK [T main @ 1372885590128 ms --- localhost/127.0.0.1:59999 - Unlock ok within 0 ms Time: 1.222 OK (3 tests) Note: GL_VERSION: 3.1 (Core Profile) Mesa 9.1.3 And: GL Profile: GLProfile[GL3bc/GL3bc.hw]
It seems that this may've been down to some mysterious problem on my side (as in, I think it may've been Eclipse molesting my build environment somehow). Everything appears to work correctly now: .++++ UITestCase.setUp: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test01_GL2ES2 Loop 1/1 requested: vsync 1, GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono , hw, GLProfile[GL3/GL3.hw], on-scr[.]] window moved: 2/17 640x480 window moved: 196/79 640x480 window resized: 196/79 640x480 NW chosen: GLCaps[glx vid 0x21c, fbc 0xb6: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/0/0, dbl, mono , hw, GLProfile[GL3/GL3.hw], on-scr[.]] GL chosen: GLCaps[glx vid 0x21c, fbc 0xb6: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/0/0, dbl, mono , hw, GLProfile[GL3/GL3.hw], on-scr[.]] window pos/siz: 196/79 640x480, [ l 2, r 2 - t 17, b 7 - 4x24] Thread[main-Animator,5,main] GearsES2.init ... GearsES2 init on Thread[main-Animator,5,main] Chosen GLCapabilities: GLCaps[glx vid 0x21c, fbc 0xb6: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/0/0, dbl, mono , hw, GLProfile[GL3/GL3.hw], on-scr[.]] INIT GL IS: jogamp.opengl.gl4.GL4bcImpl GL_VENDOR: X.Org GL_RENDERER: Gallium 0.4 on AMD RV730 GL_VERSION: 3.1 (Core Profile) Mesa 9.1.3 GL GLSL: true, has-compiler-func: true, version 1.40, 1.40.0 GL FBO: basic true, full true GL Profile: GLProfile[GL3/GL3.hw] GL Renderer Quirks:[NoDoubleBufferedPBuffer, NoSetSwapIntervalPostRetarget] GL:jogamp.opengl.gl4.GL4bcImpl@28b6520b, 3.1 (hardware) - 3.1 (Core Profile) Mesa 9.1.3 gear1 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@3488976e gear2 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@738dd1b3 gear3 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@63c27a09 Thread[main-Animator,5,main] GearsES2.init FIN Thread[main-Animator,5,main] GearsES2.reshape 0/0 640x480, swapInterval 1, drawable 0x8200002 main-Animator: ** screenshot: TestGearsES2NEWT.test01_GL2ES2-n0000-GL3___-hw-onscreen-Bdbl-Frgb__Irgba8880-D24-St00-Sa00_default-0640x0480.png QUIT Window Thread[main-Display-.x11_:0.0-1-EDT-1,5,main] Thread[main-Display-.x11_:0.0-1-EDT-1,5,main] GearsES2.dispose ... Thread[main-Display-.x11_:0.0-1-EDT-1,5,main] GearsES2.dispose FIN ++++ UITestCase.tearDown: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test01_GL2ES2 .++++ UITestCase.setUp: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test02_GLES2 ++++ UITestCase.tearDown: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test02_GLES2 ++++ UITestCase.setUp: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test03_GL3 ++++ UITestCase.tearDown: com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - test03_GL3 .SLOCK [T main @ 1372892919982 ms --- localhost/127.0.0.1:59999 - Unlock ok within 1 ms
Confirmed on Mesa 9.1.3 Intel: GL_RENDERER: Mesa DRI Intel(R) Sandybridge Desktop GL_VERSION: 3.1 (Core Profile) Mesa 9.1.3 GL GLSL: true, has-compiler-func: true, version 1.40, 1.40.0 GL FBO: basic true, full true GL Profile: GLProfile[GL3/GL3.hw] Native GL4bc false GL4 false GL3bc false GL3 true [3.1 (Core profile, arb, ES2 compatible, FBO, hardware)] GL2 true [3.0 (Compatibility profile, arb, ES2 compatible, FBO, hardware)] GL2ES1 true GLES1 true [1.0 (ES profile, FBO, hardware)] GL2ES2 true GLES2 true [2.0 (ES profile, ES2 compatible, FBO, hardware)] Profiles GLProfile[GL2ES2/GL3.hw] GLProfile[GL2ES1/GL2.hw] GLProfile[GL2/GL2.hw] GLProfile[GL3/GL3.hw] GLProfile[GL2/GL2.hw] GLProfile[GLES2/GLES2.hw] GLProfile[GLES1/GLES1.hw] GLProfile[GL2GL3/GL3.hw] default GLProfile[GL2/GL2.hw]