OpenGL ES debugging

Hi,

I have NVIDIA QUADRO 2000 GPU. I am trying to debug shaders in an OpenGL ES 2.0 application.

Is it possible to do so ? because i am facing errors in the graphics debugger UI , it says gltexenv not compatible.

can someone get me through this ?

Thanks

Hi udayshukla,

‘glTexEnv’ is not compatible is because Nsight only support OGL 4.2 core profile and the ‘glTexEnv’ is not part of core profile any more.

The OpenGL ES 2.0 application make me confuse, if you are trying to debug a Android OpenGL ES App, you need to use Tegra Graphics Debugger and a Tegra device.

If you use OGL desktop context with ES profile, Nsight don’t support such context unfortunately. If you use ES2_compatibility in a normal desktop OGL context, that depends your OGL call is in OGL 4.2 core profile.

Thanks
An

Thanks for the reply Ayan.

  1. glTexEnv API was not found in my code , so no idea from where it is popping out

  2. It is on Windows, if required i can share the sample project.

PLMK on this.

Hi,

PFA sample source code with solution for OpenGL ES 2.0 and 3.0.

Can you please let me know if either of these is supported by Nvidia Nsight for frame / shader debugging.

Thanks in advance.

Hi,

It’s better to have the sample project for detail investigation. You can send me the link by message.

Thanks
An

https://github.com/powervr-graphics/Native_SDK/tree/3.5/Examples/Beginner/01_HelloAPI

Hi udayshukla,

I am afraid these samples on Windows just use the lib which provided by PowerVR named ‘libEGL.lib’, ‘libGLESv2.lib’, etc. That means it might using some way to simulate the EGL/GLES on Window’s WGL/OGL platform.

Unfortunately, Nsight don’t official support these ways. and the glTexEnv might be used in some external libraries we don’t have the source codes at hand.

Thanks
An

I have found that glTexEnvi api is invoked under glDrawarray API call. So this option is ruled out.

I guess OpenGL ES 3.1 is based on OpenGL 4.4, So does NVIDIA support this OpenGL ES extension ?

Thanks for your replies

Hi udayshukla,

That really depends how you mean the ‘OpenGL ES 3.1 is based on OpenGL 4.4’:

  • if you mean using ‘GL_ARB_ES3_1_compatibility’ to achieve some part of job of OGL ES 3.1 on desktop OGL context, then Nsight can support these
  • if you mean using ‘WGL_EXT_create_context_es_profile’ to have a OGL ES context on desktop environment, Nsight can’t support these unfortunately

You can say OpenGL ES 3.1 is based on OpenGL 4.4, but these are totally two different things.

I am not very understand ‘I have found that glTexEnvi’ api is invoked under glDrawArray API call’, you mean the glDrawArray will call glTexEnvi internally? I just WinDbg the OGLES3HelloAPI.exe, and it never load the symbol named glTexEnv*, are we use the different binary?

Thanks
An

Well i am new to OpenGL and still grabbing concepts, so not sure if i can figure out the compatibility stuff. We will keep this aside.

Regarding glTexEnvi,

I used a tool gDebugger and set breakpoint to gltexEnvi.

Just a question,

glTexEnv and gltexEnvi are one and the same. Hope i am correct

Hi,

Not exactly, glTexEnv means glTexEnvi, glTexEnvf, glTexEnvx these 3 function calls for OGL ES 1.1.

I just launch OGLES3HelloAPI.exe with Nsight, seem it just show me not only glTexEnvi, but also some wglCreatePbufferARB, wglGetPbufferDCARB, etc. these are also not supported by Nsight since it’s using Pbuffer.

Thanks
An

So basically, i will not be able to debug the shaders in the application.

Thanks for your support.