glGenerateMipmap validation

Can't generate mipmaps if the format is
not color renderable or not filterable.

Change-Id: I919a4c29c17a69c25e018dd4682940eecd4df30e
Reviewed-on: https://swiftshader-review.googlesource.com/14068
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index 2ad5717..f16afed 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -2306,6 +2306,12 @@
 			return error(GL_INVALID_OPERATION);
 		}
 
+		if(!IsColorRenderable(texture->getFormat(target, 0), clientVersion, true) ||
+		   sw::Surface::isNonNormalizedInteger(texture->getInternalFormat(target, 0)))
+		{
+			return error(GL_INVALID_OPERATION);
+		}
+
 		texture->generateMipmaps();
 	}
 }