+ if (ctx->Version >= 30 ||
+ (ctx->Extensions.ARB_texture_rg &&
+ ctx->Extensions.EXT_texture_integer)) {
+ switch (internalFormat) {
+ case GL_R8UI:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_R_UINT8);
+ break;
+ case GL_RG8UI:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RG_UINT8);
+ break;
+ case GL_R16UI:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_R_UINT16);
+ break;
+ case GL_RG16UI:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RG_UINT16);
+ break;
+ case GL_R32UI:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_R_UINT32);
+ break;
+ case GL_RG32UI:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RG_UINT32);
+ break;
+ case GL_R8I:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_R_INT8);
+ break;
+ case GL_RG8I:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RG_INT8);
+ break;
+ case GL_R16I:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_R_INT16);
+ break;
+ case GL_RG16I:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RG_INT16);
+ break;
+ case GL_R32I:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_R_INT32);
+ break;
+ case GL_RG32I:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RG_INT32);
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (ctx->Extensions.ARB_texture_rgb10_a2ui) {
+ switch (internalFormat) {
+ case GL_RGB10_A2UI:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB2101010_UINT);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_ABGR2101010_UINT);
+ break;
+ default:
+ break;
+ }
+ }
+ /* GL_BGRA can be an internal format *only* in OpenGL ES (1.x or 2.0).
+ */
+ if (_mesa_is_gles(ctx)) {