So I have set up a buffer which I use for instanced data. It is filled with vector's data and 1 vector item contains 1 GLuint and 1 GLushort making its size 6 bytes. I then apply correctly vertex attribute which is 3 numbers big, type of GL_UNSIGNED_SHORT, stride is 0, offset is 0 and divisor is 1. The location is hard coded so it is definitely not a problem. The used array pointer function is glVertexAttribIPointer.
So in shader I use uvec3 to receive the values. I have come to understanding that OpenGL will take/read the 2 bytes and and casts them into unsigned integers and places them into the vector uvec3 in their place. First 2 bytes being put to uvec3.x second set to uvec3.y and third to uvec3.z.
The data in the buffer seems to be intact since I have pulled the information out to see that its in right order and right values are in it.
What makes this even weirder is that the first instance uvec3.x value should be 0 but its not.
Shader version is 430.
So help would be appreciated.
EDIT:
The uvec3.x value is 16383 which is 2^14 - 1 and that is the GLuint's value when its uploaded to the buffer so instead of the uvec3.x being 0 which the first 2 bytes are when combined it reads from the beginning.