This could be a bug, but I'm looking at
the `SRGBTextureTestES3.SRGBFormatCombinationValidation` test, and it looks like creating a texture with `GL_SRGB_ALPHA_EXT` and uploading to it with GL_RGBA+GL_UNSIGNED_BYTE is tested and apparently passing on Metal (test uploads sRGB, expects sampling to return linear). I don't see the sized GL_SRGB8_ALPHA8 format tested with GL_RGBA though; the test is using GL_SRGB_ALPHA_EXT+GL_UNSIGNED_BYTE instead. Perhaps GL_SRGB_ALPHA_EXT is what you need to use in GL_RGBA in glTexSubImage2D?