diff --git a/src/OpenGL/libGLESv2/Framebuffer.cpp b/src/OpenGL/libGLESv2/Framebuffer.cpp
index 810771b..9b9c78b 100644
--- a/src/OpenGL/libGLESv2/Framebuffer.cpp
+++ b/src/OpenGL/libGLESv2/Framebuffer.cpp
@@ -499,6 +499,9 @@
 	{
 		switch(colorbuffer->getFormat())
 		{
+		case GL_BGRA8_EXT:      return GL_BGRA_EXT;
+		case GL_BGRA4_ANGLE:    return GL_BGRA_EXT;
+		case GL_BGR5_A1_ANGLE:  return GL_BGRA_EXT;
 		case GL_RGBA4:          return GL_RGBA;
 		case GL_RGB5_A1:        return GL_RGBA;
 		case GL_RGBA8:          return GL_RGBA;
@@ -559,8 +562,11 @@
 	{
 		switch(colorbuffer->getFormat())
 		{
-		case GL_RGBA4:          return GL_UNSIGNED_BYTE;
-		case GL_RGB5_A1:        return GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT;
+		case GL_BGRA8_EXT:      return GL_UNSIGNED_BYTE;
+		case GL_BGRA4_ANGLE:    return GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT;
+		case GL_BGR5_A1_ANGLE:  return GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT;
+		case GL_RGBA4:          return GL_UNSIGNED_SHORT_4_4_4_4;
+		case GL_RGB5_A1:        return GL_UNSIGNED_SHORT_5_5_5_1;
 		case GL_RGBA8:          return GL_UNSIGNED_BYTE;
 		case GL_RGB565:         return GL_UNSIGNED_SHORT_5_6_5;
 		case GL_RGB8:           return GL_UNSIGNED_BYTE;
diff --git a/src/OpenGL/libGLESv2/Renderbuffer.h b/src/OpenGL/libGLESv2/Renderbuffer.h
index feb8f9e..c7719b5 100644
--- a/src/OpenGL/libGLESv2/Renderbuffer.h
+++ b/src/OpenGL/libGLESv2/Renderbuffer.h
@@ -27,6 +27,11 @@
 
 namespace es2
 {
+// Sized internal formats corresponding to GL_BGRA_EXT/GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT and
+// GL_BGRA_EXT/GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT format/type combinations, respectively.
+const GLint GL_BGRA4_ANGLE = 0x6ABC;
+const GLint GL_BGR5_A1_ANGLE = 0x6ABD;
+
 class Texture2D;
 class Texture3D;
 class TextureCubeMap;
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index f612a63..f2f6410 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -2280,11 +2280,6 @@
 			return error(GL_INVALID_ENUM);
 		}
 
-		if(texture->isCompressed(target, 0) || texture->isDepth(target, 0))
-		{
-			return error(GL_INVALID_OPERATION);
-		}
-
 		if(!IsMipmappable(texture->getFormat(target, 0), clientVersion))
 		{
 			return error(GL_INVALID_OPERATION);
@@ -4690,7 +4685,7 @@
 	}
 
 	if(samples > es2::IMPLEMENTATION_MAX_SAMPLES ||
-	   (sw::Surface::isNonNormalizedInteger(es2sw::ConvertRenderbufferFormat(internalformat)) && samples > 0))
+	   (IsNonNormalizedInteger(internalformat) && samples > 0))
 	{
 		return error(GL_INVALID_OPERATION);
 	}
diff --git a/src/OpenGL/libGLESv2/utilities.cpp b/src/OpenGL/libGLESv2/utilities.cpp
index a26edce..1903e3d 100644
--- a/src/OpenGL/libGLESv2/utilities.cpp
+++ b/src/OpenGL/libGLESv2/utilities.cpp
@@ -44,9 +44,6 @@
 
 	FormatMap BuildFormatMap()
 	{
-		static const GLint GL_BGRA4_ANGLEX = 0x6ABC;
-		static const GLint GL_BGR5_A1_ANGLEX = 0x6ABD;
-
 		FormatMap map;
 
 		//                       | Format | Type | Internal format |
@@ -123,8 +120,8 @@
 		InsertFormatMapping(&map, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA16F_EXT);
 
 		InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA8_EXT);
-		InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, GL_BGRA4_ANGLEX);
-		InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, GL_BGR5_A1_ANGLEX);
+		InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, GL_BGRA4_ANGLE);
+		InsertFormatMapping(&map, GL_BGRA_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, GL_BGR5_A1_ANGLE);
 
 		InsertFormatMapping(&map, GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB8);
 		InsertFormatMapping(&map, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB8_ALPHA8);
