Error mapping GL4bc

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

Error mapping GL4bc

gst0098
Hello, an appa that works correctly con nvidia grpahics card (under archlinux) does not with an Amd RX580, it dies with the following error dump (the final part of it):

AWT-EventQueue-0-SharedResourceRunner: EGLSurface         : EGLSurface[ displayHandle 0x7fc644db81b0
, surfaceHandle 0x0
, size 64x64
, UOB[ OWNS_SURFACE | WINDOW_INVISIBLE | SURFACELESS ]
, EGLGraphicsConfiguration[DefaultGraphicsScreen[EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7fc644db81b0, owner true, ResourceToolkitLock[obj 0x5a005e17, isOwner true, <28a3c8e9, 7b0b8ea7>[count 2, qsz 0, owner <AWT-EventQueue-0-SharedResourceRunner>]]], idx 0],
        eglConfigHandle 0x7fc6280a8900, eglConfigID 0x12,
        requested GLCaps[rgba 5/5/5/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, one, mono  , hw, GLProfile[GLES2/GLES2.sw], on-scr[.]],
        chosen    GLCaps[egl cfg 0x12, vid 0x21: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GLES2/GLES2.sw], on-scr[.], [0x4d: GL, GLES1, GLES2, GLES3, VG]]]
, surfaceLock <3ce2d8ee, 6fd17473>[count 0, qsz 0, owner <NULL>]
, GenericUpstreamSurfacelessHook[pixel 64x64]
, upstreamSurface false ]
    [2]: jogamp.opengl.egl.EGLDrawable.destroyHandle(EGLDrawable.java:89)
    [3]: jogamp.opengl.GLDrawableImpl.setRealized(GLDrawableImpl.java:196)
    [4]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.mapAvailableEGLESConfig(EGLDrawableFactory.java:752)
    [5]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createEGLSharedResourceImpl(EGLDrawableFactory.java:613)
    [6]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:516)
    [7]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
    [8]: java.lang.Thread.run(Thread.java:748)
AWT-EventQueue-0-SharedResourceRunner: EGLDrawable.setRealized(false): NOP - EGLSurface[ displayHandle 0x7fc644db81b0
, surfaceHandle 0x0
, size 64x64
, UOB[ OWNS_SURFACE | WINDOW_INVISIBLE | SURFACELESS ]
, EGLGraphicsConfiguration[DefaultGraphicsScreen[EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7fc644db81b0, owner true, ResourceToolkitLock[obj 0x5a005e17, isOwner true, <28a3c8e9, 7b0b8ea7>[count 2, qsz 0, owner <AWT-EventQueue-0-SharedResourceRunner>]]], idx 0],
        eglConfigHandle 0x7fc6280a8900, eglConfigID 0x12,
        requested GLCaps[rgba 5/5/5/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, one, mono  , hw, GLProfile[GLES2/GLES2.sw], on-scr[.]],
        chosen    GLCaps[egl cfg 0x12, vid 0x21: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GLES2/GLES2.sw], on-scr[.], [0x4d: GL, GLES1, GLES2, GLES3, VG]]]
, surfaceLock <3ce2d8ee, 6fd17473>[count 0, qsz 0, owner <NULL>]
, GenericUpstreamSurfacelessHook[pixel 64x64]
, upstreamSurface false ]
EGLDrawableFactory.MapGLVersions: mapSuccess true, mappedToDefaultDevice false
EGLDrawableFactory.MapGLVersions: defDevice  : EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7fc644db81b0, owner true, ResourceToolkitLock[obj 0x5a005e17, isOwner true, <28a3c8e9, 7b0b8ea7>[count 1, qsz 0, owner <AWT-EventQueue-0-SharedResourceRunner>]]]
EGLDrawableFactory.MapGLVersions: adevice    : EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7fc644db81b0, owner true, ResourceToolkitLock[obj 0x5a005e17, isOwner true, <28a3c8e9, 7b0b8ea7>[count 1, qsz 0, owner <AWT-EventQueue-0-SharedResourceRunner>]]]
EGLDrawableFactory.MapGLVersions: eglDevice  : EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7fc644db81b0, owner true, ResourceToolkitLock[obj 0x5a005e17, isOwner true, <28a3c8e9, 7b0b8ea7>[count 1, qsz 0, owner <AWT-EventQueue-0-SharedResourceRunner>]]]
EGLDrawableFactory.MapGLVersions: context ES1: true, quirks []
EGLDrawableFactory.MapGLVersions: context ES2: true, quirks []
EGLDrawableFactory.MapGLVersions: context ES3: true, quirks []
EGLDrawableFactory.MapGLVersions: context GLn: true, quirks []
EGLDrawableFactory.MapGLVersion.map 0
SharedResourceRunner.run(): READY - AWT-EventQueue-0-SharedResourceRunner
SharedResourceRunner.doAndWait() END init: EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7fc644db81b0, owner true, ResourceToolkitLock[obj 0x5a005e17, isOwner false, <28a3c8e9, 7b0b8ea7>[count 0, qsz 0, owner <NULL>]]], release: null - AWT-EventQueue-0
SharedResourceRunner.getOrCreateShared() EGLGraphicsDevice[type .egl, v1.5.0, connection :0, unitID 0, handle 0x7fc644db81b0, owner true, ResourceToolkitLock[obj 0x5a005e17, isOwner false, <28a3c8e9, 7b0b8ea7>[count 0, qsz 0, owner <NULL>]]]: success - AWT-EventQueue-0
GLProfile.init map .egl_:0_0, desktopCtxUndef false, esCtxUndef false
GLProfile.init map *** no mapping for GL4bc on device .egl_:0_0
Exception in thread "AWT-EventQueue-0" java.lang.InternalError: XXX0 profile[1]: GL3bc -> profileImpl GL4bc !!! not mapped
        at com.jogamp.opengl.GLProfile.computeProfileMap(GLProfile.java:2071)
        at com.jogamp.opengl.GLProfile.initProfilesForDeviceCritical(GLProfile.java:1954)
        at com.jogamp.opengl.GLProfile.initProfilesForDevice(GLProfile.java:1875)
        at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1842)
        at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:80)
        at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:230)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:216)
        at com.jogamp.opengl.GLProfile.getDefaultDevice(GLProfile.java:2027)
        at com.jogamp.opengl.awt.GLJPanel.<init>(GLJPanel.java:363)
        at com.jogamp.opengl.awt.GLJPanel.<init>(GLJPanel.java:337)
        at com.jogamp.opengl.awt.GLJPanel.<init>(GLJPanel.java:325)
        at muvisetup.SceneOGLMag.<init>(SceneOGLMag.java:50)
        at muvisetup.MUVISetup.initOGLComponents(MUVISetup.java:250)
        at muvisetup.MUVISetup.<init>(MUVISetup.java:215)
        at muvisetup.MUVISetup$33.run(MUVISetup.java:2575)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


Any clue on how to fix this ?
All others app that use opengl are working correctly using the accelerated driver.

Thanks in advance,
Giuseppe

Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gouessej
Administrator
Hi

You have to use a profile supported by your graphics card and your driver. All drivers don't support all profiles. The graphics card AMD Radeon RX580 should support OpenGL 4.5, the forward compatible profile should work but I've never tested it with the backward compatible profile. Which driver do you use? Please be a lot more accurate. Do you use Mesa?

Telling that other OpenGL softwares work doesn't mean that JOGL is to blame.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gst0098
This post was updated on .
gouessej wrote
Hi

You have to use a profile supported by your graphics card and your driver. All drivers don't support all profiles. The graphics card AMD Radeon RX580 should support OpenGL 4.5, the forward compatible profile should work but I've never tested it with the backward compatible profile. Which driver do you use? Please be a lot more accurate. Do you use Mesa?

Telling that other OpenGL softwares work doesn't mean that JOGL is to blame.
Sorry if a made that impression, I'm not here to blame JOGL at the contrary, I appreciate it much, I'm only giving informations to describe my environment and that puntualization was due solely to prove that the driver is working.
 
BTW I'm using the open source driver (amdgpu) that comes with my distro (arch linux). It uses mesa, querying with glxinfo I get:

Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD Radeon (TM) RX 480 Graphics (AMD POLARIS10 / DRM 3.18.0 / 4.13.3-1-ARCH, LLVM 5.0.0) (0x67df)
    Version: 17.2.1
    Accelerated: yes
    Video memory: 8143MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon (TM) RX 480 Graphics (AMD POLARIS10 / DRM 3.18.0 / 4.13.3-1-ARCH, LLVM 5.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.1
OpenGL core profile shading language version string: 4.50

As you stated in your reply the card I have is 4.5 compliant.
I can change the profile if this could help, how can I accomplish this ? Is there a tutorial on how to do it ?

Thanks,
Giuseppe
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gst0098
I tryied to add:

    super(new GLCapabilities(GLProfile.get(GLProfile.GLXX)));

into the constructor of the class that inehrits GLJpanel. The problem is always there, I tried with all available profiles., am I missing something ?

Giuseppe
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gst0098
After further investigation I saw that the problem was related with Mesa switching the naming convention for Amd cards from Gallium to AMD and found the solution in the post previous to mine.
I patched the jogl as suggested there and now is working.

Thanks to all.
Giuseppe
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gouessej
Administrator
Actually, it's me who should thank you. We really have to fix it in the next maintenance release. Please can you assist us in order to get a clean fix with no regression?
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gst0098
gouessej wrote
Actually, it's me who should thank you. We really have to fix it in the next maintenance release. Please can you assist us in order to get a clean fix with no regression?
Of course, let me know how can I assist you to fix this and I will try to do it.

Giuseppe
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gouessej
Administrator
Thank you Giuseppe. We have to find a non ambiguous mean of detecting your case to apply the right renderer quirk without risking to break AMD/ATI hardware using completely different drivers. Please can you get the detailed debug logs and put them into a brand new bug report?
http://jogamp.org/wiki/index.php/Jogl_FAQ#Detailed_Debug_Log
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gst0098
gouessej wrote
Thank you Giuseppe. We have to find a non ambiguous mean of detecting your case to apply the right renderer quirk without risking to break AMD/ATI hardware using completely different drivers. Please can you get the detailed debug logs and put them into a brand new bug report?
http://jogamp.org/wiki/index.php/Jogl_FAQ#Detailed_Debug_Log
Hello, I did what requested but apparently my login at this site is not active at the bugzilla page, do I need to register somewhere else to submit a BUG to this forum via the bugzilla page at https://jogamp.org/bugzilla/enter_bug.cgi ?

Giuseppe
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gouessej
Administrator
Please send me an email so that I can create a bugzilla account for you. We had a lot of problems with spam bots in the past :s

http://jogamp.org/wiki/index.php/Maintainer_and_Contacts#Julien_Gouesse
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gst0098
Hello,
bug submitted, hopes this can help.
In case you need further assistance let me know.
If nedded I can open an account on my machine for you.

And BTW I send a BIG thanks to all the developers involved for the great jogamp package.

Bye,
Giuseppe
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gouessej
Administrator
Hi

The second suggestion you did in the other thread seems to be viable to me, please can you test it and confirm that it works?
https://jogamp.org/bugzilla/show_bug.cgi?id=1357#c5
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

sranger
I just started seeing the same issue after upgrading Ubuntu 17.04 to 17.10 and also using the apdgpu drivers. Any idea when the fix on bugzilla will make it into a released version? Any other workarounds for the time being? If you guys need any other help or testing I'd be happy to be of assistance as well.


 - Stephen
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

sranger
FYI, I built 2.3.2 with the patch above and it looks like things are working again. Though, an official build on maven central would be super helpful.

Thanks, for the fix!


 - Stephen
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gouessej
Administrator
You should ask it to rmk0 on our IRC channel. Yes of course it would be helpful.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

petr
This post was updated on .
In reply to this post by gst0098
Thank you for GLContextImpl.class at https://jogamp.org/bugzilla/show_bug.cgi?id=1357#c5, Giuseppe and Julien.
----------------------
FAILURE FROM IDE:
Exception in thread "AWT-EventQueue-0" java.lang.InternalError: XXX0 profile[1]: GL3bc -> profileImpl GL4bc !!! not mapped
...
----------------------
SOLUTION:
(1.) I replaced GLContextImpl.class in:
Binary file /opt/java/jogamp-all-platforms/jar/jogl-all-mobile.jar
Binary file /opt/java/jogamp-all-platforms/jar/jogl-all-android.jar
Binary file /opt/java/jogamp-all-platforms/jar/jogl-all.jar
Binary file /opt/java/jogamp-all-platforms/jar/atomic/jogl.jar
Binary file /opt/java/jogamp-all-platforms/jar/jogl-all-noawt.jar
+
(2.) per https://jogamp.org/bugzilla/show_bug.cgi?id=1357#c5 I added few characters into GLContextImpl.java in /opt/java/jogamp-all-platforms/jogl-java-src.zip

The file in question is located in .jar(s) always here /jogamp/opengl/GLContextImpl.class, in .zip here /jogamp/opengl/GLContextImpl.java resp. And it works then. Thank you!
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gouessej
Administrator
There is already a fat JAR with this fix as I said here:
http://forum.jogamp.org/how-can-I-build-jogl-2-3-3-and-when-is-it-due-for-release-tp4038662p4038675.html

You're welcome.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

Andy Skinner
Until Bugzilla comes back, could the source of this patch be made available, please?

thanks
andy
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc

gouessej
Administrator
Reply | Threaded
Open this post in threaded view
|

Re: Error mapping GL4bc - and Ubuntu 18.04 and AMD RX Vega ?

andemark
Has anyone had any success using the latest Ubuntu and AMD drivers and RX Vega and a GL4bc or GL4 profile?   I tried the fat jar on a whim to no avail, and suspect I need a rather different fix...

Ubuntu 18.04.1 LTS
dpkg -l amdgpu:
amdgpu                            18.20-606296          amd64

OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: Radeon RX Vega
OpenGL core profile version string: 4.6.13529 Core Profile Context
OpenGL core profile shading language version string: 4.50
...
OpenGL version string: 4.5.13529 Compatibility Profile Context
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
...

Thanks in advance for any advice on what to do in GLProfile/GLContext/GLContextImpl (or elsewhere)!

 - Mark
12