Hello ARM buddies!
First, thanks for Mali OpenGL ES Emulator 2.0. It's very light!
This four lines:
const unsigned char* renderStr = glGetString(GL_RENDERER);
const unsigned char* versionStr = glGetString(GL_VERSION);
const unsigned char* vendorStr = glGetString(GL_VENDOR);
return this four lines:
FATAL - Exception thrown in GLES31Api::glGetString -> FATAL: No api instance available for type GLES31Api in glGetString
The Use Manual is good but I have no idea what this mean.
Notice running mali-cube give this:
$ mali-cube
FATAL - EGL: (initialize 104) GLX returned Error base : a9, Event Base : 68
FATAL - EGL: GLX supports the following extensions: GLX_EXT_visual_info GLX_EXT_visual_rating GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_swap_control GLX_EXT_swap_control_tear GLX_EXT_texture_from_pixmap GLX_EXT_buffer_age GLX_ARB_create_context GLX_ARB_create_context_profile GLX_EXT_create_context_es_profile GLX_EXT_create_context_es2_profile GLX_ARB_create_context_robustness GLX_ARB_multisample GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_framebuffer_sRGB GLX_NV_multisample_coverage GLX_ARB_get_proc_address
GL renderer: [GeForce GT 730/PCIe/SSE2]
GL vendor:[NVIDIA Corporation]
GL version: [4.4.0 NVIDIA 331.113]
GL shading language version: [4.40 NVIDIA via Cg compiler]
GL API Version: [0.0]
Running: Mali OpenGL ES Emulator 2.0
Any hint on what is wrong is welcome!
Keep the good work!
EDIT1: I'm using SDL2 which seems to handle the EGL stuff on its side. Do you know any special thing to set?
Thanks Adam!
I humbly suggest to add this to the faq of the (very good) user manual:
Q: I have a "No api instance available..." error message
A: That is a symptom of that at the point of a call there is no EGL context being successfully created and made current. It is important that EGL context is set through emulator's EGL implementation (libEGL.so bundled with the product).
I'm sure I'm not alone to have hard time setting a proper EGL context.
Doing a ldd of the video library I see there is libSDL2 shared lib and libGLESv2 but no libEGL.
Digging into the SDL2 code I see this:
https://hg.libsdl.org/SDL/file/704a0bfecf75/src/video/SDL_egl.c#l54
Following DEFAULT_EGL I fall on this:
https://hg.libsdl.org/SDL/file/704a0bfecf75/src/video/SDL_egl.c#l189
So, from what I read, I could potentially force libEGL using SDL_VIDEO_EGL_DRIVER to specify emulator's libEGL.
But all of this is on the SDL side, I will look into this and came back to close this ticket.
Thanks a alot!