GL_BYTE vertex attribute giving wrong data
I have a debug text rendering setup which feeds char data to a vertex/geometry/fragment shader.
On my nvidia gtx460 feeding the char* data using this as the data description:
and having the shader input as
glVertexAttribIPointer(TEXT_LOCATION, 1, GL_BYTE, 1, 0);
works as expected, but on my ATI card the contents of inCharacter seem to be constantly 0;
layout(location = TEXT_LOCATION) in int inCharacter;
As a test i changed the vertex attribute to
glVertexAttribIPointer(TEXT_LOCATION, 1, GL_INT, 4, 0);
and manually converted the const char* data to const int* data each time i update the VBO and it works as expected.
Is it OK to feed a vertex shader data in the way I originally intended?
Is there likely to be some small detail i have missed that would make it not give the correct data on an ATI card?
This is with GL+GLSL 4.2 on both machines and an AMD A10 APU for the machine with the problem.
Thank you for any help, James