Hi,
I have been trying to create opengl es 3.0 context using the latest 1.4.1 es 3 emulator. The example I am using is cube example of es 2 emulator. I have added the header "EGL/eglext.h" to use EGL_RENDERABLE_TYPE as EGL_OPENGL_ES3_BIT, and include GLES3/gl3.h as well. Also has set context attribute as EGL_CONTEXT_CLIENT_VERSION , 3.
EGL_NONE
};
The code is compiling correctly but giving error as :
No EGL configurations were returned.
Tried to set not RGB size and RGB size as 565. But same error.
I am using windows 7 with visual studio 2012. Same code is working fine for OPENGL ES 2.0 context using same OPENGLES 3.0 emulator. Do we need to set anything else?
Thanks.
Hi Jacek,
As I have stated in my query, I am too able to create opengl es 2.0 context and able to run the code as well. Problem only exist if I try to create opengl es 3.0 context. Using same emulator opengl es 3.0 (1.4.1).
I have:
Graphics card : Nvidia quadro 600
Graphics card driver version : 333.11.
OS: windows 7
Visual studio : VS2012
The ARM emulator is installed at: C:\Program Files (x86)\ARM\Mali Developer Tools\Mali OpenGL ES Emulator 1.4.1 (libraries are at this location)
Cube example is placed at : C:\Program Files (x86)\ARM\Mali Developer Tools\Mali OpenGL ES Emulator 1.4.1\example\cube
I have only modified cube.c file and Makefile. Thus attaching those files.
Compiling the code doing 'nmake' using 'Developers command prompt for VS2012 '.
My concern is that if I am able to create and run opengl es 2.0 code, why is it not working for opengl es 3.0 using same 1.4.1 es 3 emulator.
My concern is that if I am able to create and run opengl es 2.0 code, why is it not working for opengl es 3.
OpenGL ES 3.0 has substantially more features than OpenGL ES 2.0, so it requires a more cable host graphics card / drivers to successfully emulate. Being able to run OpenGL ES 2 does not mean that the underlying host GPU has all of the features for successful emulation of OpenGL ES 3.0.
That said the Quadro 600 should support OpenGL 4.4, so it should have most things we need.
Sorry being new to the use of emulators, I might have misunderstood
Yes, it is correct that support for OPENGL ES 2.0 does not mean, the GPU should also support OPENGL ES 3.0. But as you said and as per the es 3 emulator guide, quadro 600 should work for OPENGL ES 3.0.
I tried to updated the Nvidia driver, but after that I got error for shader compilation for OPENGL ES2.0 context as well:
Log START: 'malisc' is not recognized as an internal or external command, operable program or batch file.
So, I rolled back the driver and it again worked for OPENGL ES 2.0, but got same error 'No EGL configurations were returned.' for OPENGL ES 3.0.
So, the issue still persist.
harsha,
I used the files you have uploaded but unfortunately I still couldn't reproduce the problem.
To help us understand the issue could you please run mali-cube (included in Mali OpenGL ES 3.0 Emulator 1.4.1) and post the output from command line window?
It should look like this:
GL renderer: [AAA]
GL vendor: [BBB]
GL version: [C.C.C]
GL shading language version: [D.DD]
GL API Version: [E.E]
Running: Mali OpenGL ES Emulator 1.4.1
I'm also a bit intrigued with the error message containing 'malisc' as Mali OpenGL ES 3.0 Emulator 1.4.1 doesn't use it.
Could you please tell us if you have any other ARM software installed apart from Mali OpenGL ES 3.0 Emulator 1.4.1?
Is it Mali Offline Compiler 4.4.0 or Mali OpenGL ES 2.0 Emulator v1.3.2 or maybe something else?
Cheers,
Jacek
Yes, I had Mali offline compiler and es 2.0 emulator installed (which I installed to get the cube example).
So, now I uninstalled the offline compiler and all the emulators. Updated the Nvidia driver again to the latest version. And installed the latest OPENGL ES 3 (1.4.1) emulator.(Everything installed new).
Thus, I am able to create the OPENGL ES 3.0 context with some changes. I had to set the EGL_SURFACE_TYPE to EGL_WINDOW_BIT.
Below if the output of compilation and run:
Microsoft (R) Program Maintenance Utility Version 11.00.61030.0
Copyright (C) Microsoft Corporation. All rights reserved.
cl /I../../include /Iinclude/ /c src/cube.c src/shader.c src/window.c sr
c/matrix.c
Microsoft (R) C/C++ Optimizing Compiler Version 17.00.61030 for x86
cube.c
shader.c
window.c
matrix.c
Generating Code...
link /OUT:cube.exe cube.obj shader.obj matrix.obj window.obj /LIBPATH:..
/../ libGLESv2.lib libEGL.lib user32.lib
Microsoft (R) Incremental Linker Version 11.00.61030.0
C:\Program Files (x86)\ARM\Mali Developer Tools\Mali OpenGL ES Emulator 1.4.1\ex
ample\cube>cube.exe
FATAL - GLES: (GLNativeProxy::FunctionTable::GLFunction<void __cdecl(unsigned in
t,unsigned int,unsigned int,unsigned int,int,int)>::checkMissingExtensions 836)
Couldn't find symbol 'glFramebufferTexture2DMultisampleEXT' in 'opengl32.dll' (r
equired for extension of GL)!
GL renderer: [Quadro 600/PCIe/SSE2]
GL vendor:[NVIDIA Corporation]
GL version: [4.4.0]
GL shading language version: [4.40 NVIDIA via Cg compiler]
GL API Version: [4.4]
FATAL - GLES: (SystemFBOImpl::configureDepthStencilAttachments 248) Will use GL_
DEPTH_COMPONENT24 for system FBO's depth+stencil attachment
FATAL - GLES: (SystemFBOImpl::configureColorAttachment 300) Using GL_RGB8 for color attachment
Unable to open library directory .\openglessl
FATAL - Exception thrown in GLES31Api::glCompileShader -> No shader compiler found.
After copying 'openglessl' directory from C:\Program Files (x86)\ARM\Mali Developer Tools\Mali OpenGL ES Emulator 1.4.1 to example\cube, I was finally able to run the code
Thanks for making making me uninstall and install everything, it worked. Thanks again.
Happy to help!
One more thing - I'm a bit worried that you had to copy openglessl folder to example\cube.
I would expect Mali OpenGL ES 3.0 Emulator to set its environmental variables during installation time and then find needed libraries in the installation folder during execution time.
Could you please reopen the command prompt (so it can pick up new environmental variables) and let me know if the cube example can be successfully run without openglessl in example\cube?
Thanks,
I deleted openglessl folder from example/cube and reopened the developers command prompt, but even though it is giving the same error:
In Create Window
Creating ogles3 context
Tried executing cube.exe through system32 command prompt too but same error.
Copying back the openglessl directory executes the binary.
Hi harsha,
Mali OpenGL ES 3.0 Emulator tries to find openglessl directory in the installation folder using the registry key (seems to be failing in your environment), and if that fails then tries to find it in the current directory (works in your environment).
In your case I would expect that the registry contains following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ARM Ltd\Mali OpenGL ES Emulator 1.4.1
with the default value of (assuming that the product was installed in the default location):
C:\Program Files (x86)\ARM\Mali Developer Tools\Mali OpenGL ES Emulator 1.4.1
Could please confirm that?