texelFetch returns 0

I tried to read some data from a 1d texture:

    vec2 c1 = texelFetch(uTransfromTex, i + 0, 0).xy;
    vec2 c2 = texelFetch(uTransfromTex, i + 1, 0).xy;
    vec2 c3 = texelFetch(uTransfromTex, i + 2, 0).xy;

However c1, c2 and c3 are all 0 (I multiply them by a large number in the following code, and they behave like they are 0, so I am convinced).

I am sure the index i is within the size of the texture and the texture is correctly bound to a sampler1D, what can be wrong?

Plus, I use renderdoc to look into the values of the texture, and it is correct.