GL_CHROMIUM_color_buffer_float_rgba extension support

GL_CHROMIUM_color_buffer_float_rgba (OpenGL ES 2.0) is a subset of
GL_EXT_color_buffer_float (OpenGL ES 3.0), which SwiftShader already
supports.

Fixes 1 webgl conformance tests:
conformance/extensions/oes-texture-float.html

Change-Id: Ic1451187db219af74ba41fa7634bd5bcb6fb0b44
Reviewed-on: https://swiftshader-review.googlesource.com/16470
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index cc2dbc6..f495e8a 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -4400,6 +4400,7 @@
 		"GL_ANGLE_texture_compression_dxt3",
 		"GL_ANGLE_texture_compression_dxt5",
 		"GL_APPLE_texture_format_BGRA8888",
+		"GL_CHROMIUM_color_buffer_float_rgba", // A subset of EXT_color_buffer_float on top of OpenGL ES 2.0
 		"GL_CHROMIUM_texture_filtering_hint",
 		"GL_NV_fence",
 		"GL_NV_framebuffer_blit",
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index 94107ab..4be0273 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -4964,7 +4964,8 @@
 		GLint clientVersion = context->getClientVersion();
 		if(clientVersion < 3)
 		{
-			if(internalformat != (GLint)format)
+			if((internalformat != (GLint)format) &&
+			   !((type == GL_FLOAT) && (format == GL_RGBA) && (internalformat == GL_RGBA32F))) // CHROMIUM_color_buffer_float_rgba
 			{
 				return error(GL_INVALID_OPERATION);
 			}