Sorry, I can only test with a catalyst driver on my notebook at the moment:
I created a texture with:
A shader writes in it with:
out uvec3 FragColor;FragColor = uvec3(...);
out uvec3 FragColor;
FragColor = uvec3(...);
in this case it writes the values (100,0,0) into the color channels.
Than I use a FBO and read the pixels with:
The output is unexpected and looks like this:
printf("%u %d\n", Pixel, Pixel);
The same source works flawless with geforce and osx driver.