mesa/es: Validate glGenerateMipmap target in Mesa code rather than the ES wrapper
[mesa.git] / src / mesa / main / fbobject.c
index 5fba3a16387ae23c649155e7147997f52af66873..27bc39e6b3d7d12275b94c7f5594513d08443251 100644 (file)
@@ -2526,16 +2526,23 @@ _mesa_GenerateMipmapEXT(GLenum target)
 
    switch (target) {
    case GL_TEXTURE_1D:
+      error = _mesa_is_gles(ctx);
+      break;
    case GL_TEXTURE_2D:
-   case GL_TEXTURE_3D:
       error = GL_FALSE;
       break;
+   case GL_TEXTURE_3D:
+      error = ctx->API == API_OPENGLES;
+      break;
    case GL_TEXTURE_CUBE_MAP:
       error = !ctx->Extensions.ARB_texture_cube_map;
       break;
    case GL_TEXTURE_1D_ARRAY:
+      error = _mesa_is_gles(ctx) || !ctx->Extensions.EXT_texture_array;
+      break;
    case GL_TEXTURE_2D_ARRAY:
-      error = !ctx->Extensions.EXT_texture_array;
+      error = (_mesa_is_gles(ctx) && ctx->Version < 30)
+         || !ctx->Extensions.EXT_texture_array;
       break;
    default:
       error = GL_TRUE;