Loading 1D fpoint texture - some pixels blacken

Hello everyone,

I have a very nasty problem when trying to load floating point textures. Basically, some of the vertices turn black and remain such even if I change the shader. I provide below the (hopefully relevant) source code and some screenshots.

During initialization

   GLfloat tangents[TBL_SIZE*4];

    /* code filling this in omitted - I checked, it's non-zero */

    glGenTextures(1, &texTangents);
    glBindTexture(GL_TEXTURE_1D, texTangents);


                 0, /* level = 0, no mipmap */
                 TBL_SIZE, /* width */
                 0, /* no border */
                 GL_RGBA, /* format of pixel data */
                 GL_FLOAT, /* format */


After the program is set

    GLint tangentMap = glGetUniformLocation(program, "tangentMap");
    if(tangentMap != -1) {
        glBindTexture(GL_TEXTURE_1D, texTangents);
        glUniform1i(tangentMap, 1);
    } else {
        std::cerr << "can not set tangentMap

And finally, in the shader

uniform sampler1D tangentMap;


/* I read it as follows */
texelFetch(tangentMap, 151, 0).rgb

The problem is that whenever I the texture is loaded (I am not using the values from the texture to set pixel colors, I am just conditioning on them so that the compiler won’t take the uniform out) part of the pixels blacken out. I have uploaded several shots on http://imgur.com/a/lO47U [ the shader is the third image from above, the fourth one is when I switch back to the shader used for the second image] . I have multiple different shaders, and even when I switch to another shader the effects remain (those parts remain black). Even if I rotate the teapot, only those vertices are visible. Anyone with an idea? I already lost almost two days with this.