求问:OpenGL 4.3 通过纹理传递整形数据失败?

GLSL4.3 通过Texture向Shader传递整数数据,但不成功,Shader不能正确读取整数数据,
如果传递的是浮点型的纹理数据,则可以正确读取数据的:

例如:C代码中:glTexStorage2D( GL_TEXTURE_2D, 1, GL_RGBA32F, tw, th );
Shader中:layout (binding = 0) uniform sampler2D tex_float;
vec4 data = texelFetch( tex_object, ivec2(0, 0), 0);
可以正确得到 {-100, -100, 0, 1}

-------还请大侠出手相助呀

C code:

GLuint texFlaot;
glGenTextures(1, &texFlaot);
glActiveTexture( GL_TEXTURE0 );

glBindTexture(GL_TEXTURE_2D, texFlaot);

//const int arrLen = 3*3*4;
GLint myFloatBuf[36] = 
{
    -100, -100, 0, 1,    0,   -100,  0, 1,       100, -100, 0, 1 ,
    -100,    0, 0, 1,    0,      0,  0, 1,       100,    0, 0, 1 ,
    -100,  100, 0, 1,    0,    100,  0, 1,       100,  100, 0, 1 ,
};

int tw = 3, th = 3;
glTexStorage2D( GL_TEXTURE_2D, 1, GL_RGBA32I, tw, th );
glTexSubImage2D( GL_TEXTURE_2D, 
    0,
    0, 0,
    tw, th,
    GL_RGBA,
    GL_INT,
    myFloatBuf);

Shader 代码:
//layout (binding = 0) uniform sampler2D tex_float;
layout (binding = 0) uniform isampler2D tex_object;

void main( void)
{
// 将输入的Texture数据作为坐标打印
// 将纹理的st(0,0)的值(也就是 myFloatBuf[0][0]={-100, -100, 0, 1,} )最为坐标,
// 在该坐标上显示一个点显示在画面上,
ivec4 data = texelFetch( tex_object, ivec2(0, 0), 0);
vec4 fpos = vec4( data.r, data.g, data.b, data.a );
gl_Position = proj_matrix * mv_matrix * fpos;

// 颜色
vs_out.clr = vec4(1.0, 0.0, 0.0, 1.0);

}

很久之前的问题,现在回来看下。
后面找到的原因是,glTexStorage2D( GL_TEXTURE_2D, 1, GL_RGBA32I, tw, th ); 传递 GL_RGBA32I格式数据时,
glGetError返回错误码,应该属于显卡不支持的原因。