So I’ve come across few bugs (Catalyst 11.2) that aren’t present on NVIDIA gfx cards.
- The code below
GLint params[16];
glGetProgramiv(name, GL_GEOMETRY_INPUT_TYPE, params);
glGetProgramiv(name, GL_GEOMETRY_OUTPUT_TYPE, params);
glGetProgramiv(name, GL_GEOMETRY_VERTICES_OUT, params);
gives:
glGetProgramiv parameter <pname> has an invalid enum '0x8917' (GL_INVALID_ENUM);
glGetProgramiv parameter <pname> has an invalid enum '0x8918' (GL_INVALID_ENUM)
glGetProgramiv parameter <pname> has an invalid enum '0x8916' (GL_INVALID_ENUM)
It doesn’t matter if program in fact containsgeometry shader or not.
Also, it’s a bit shame that your (?) extension GL_ARB_sampler_object is still completely unusable. The sampler parameters are still read always from texture unit 0. You also need to specify filtering methods for images created with glTexImage* as opposed to glCompressedTexImage*. Otherwise all you got is incomplete texture object.
Last but not the least, As long as you call glGetProgramiv(name, GL_PROGRAM_BINARY_LENGTH, &length); only once it’s ok. But every next, consecutive call will get you 2x bigger value than previous one.