Imagination PowerVR SDK Blog

ERROR: VertexAttribPointer data is inaccessible

pvrtrace

#1

I have an OpenGL ES 3.0 application running on windows. I’m developing with Visual Studio. The render output is corrupted and although eglGetError does not show any problem I get the following error in stdout when I’m using PVRTrace:

I already checked the trace and could not find anything wrong. Can you please tell me what this error message exactly means? e.g. is the indexbuffer pointer not valid or is the VertexAttribPointer index incorrect??
the pvrtrace.can be downloaded here: http://www.roulio.com/NativeWeb.exe.pvrtrace.zip

What I do is I create a VAO fill it with VBO and IBO. The VBO is an interleaved vertex array. You can see the details in the trace.
The vertex looks like this:
[scode lang=“C++”] class DLL API3DVertex
{
public:
API3DVECTOR4 Position;
API3DVECTOR4 Normal;
API3DVECTOR4 TexCoords;
}[/scode]

where an API3DVECTOR4 consists of 4 floats.

Any help is appreciated!
Ulrich


#2

Hi Ulrich,

It is difficult to know what is going wrong. PVRTrace was unable to get valid index data. When I opened the trace in PVRTraceGUI it shows some application errors. It seems that two of the shaders are failing compilation. Maybe the IBO problem is just a side effect.
The error is on this line
vec4 color = texture (color_map, st).rgbadot(normal.xyz, lightDir);
which needs to be like this
vec4 color = texture(color_map, st.xy).rgba
dot(normal.xyz, lightDir);

Regards.

Carlos.


#3

Hi Carlos.

Thanks for the quick reply. I could fix this ES version by binding also the ibo before drawing(besides the VAO). But actually this should not be necessary in my eyes, as the VAO should also keep the ibo? e.g. I have a plain OpenGL Test application where this is working as expected. Sadly, I can only use GLES3.0 maybe it will work in 3.1?

Thanks a lot for your help anyway!