Writing to GL_SRGB8_ALPHA8 texture in a compute shader?

Hi,

I am trying to write into a GL_SRGB8_ALPHA8 texture in a compute shader but although it seems to work I am getting an invalid operation error on my AMD card.

The texture is defined thus:

glTexStorage2D(GL_TEXTURE_2D, 1, GL_SRGB8_ALPHA8, 128, 128);

I bind the image for the texture to the compute shader as so:

glBindImageTexture
(
0,//unit
texture,
0,//level
GL_FALSE,//layered
0, // layer
GL_WRITE_ONLY,
GL_RGBA8
);

Another thing is it appears to work apart from the error on AMD but I just get black on nvidia with no error?

I have tried multiple different formats for the glBindImageTexture including GL_SRGB8_ALPHA8 but I get invalid value errors.

Nobody knows?

Is this a hole in the OpenGL spec?