Fix regression in fbo.completeness after GL_EXT_color_buffer_float

Change-Id: Ie17da0442c80b972e5a66353b3998160fe04f032
diff --git a/system/GLESv2_enc/GL2Encoder.cpp b/system/GLESv2_enc/GL2Encoder.cpp
index 5c61d3f..14c5ac1 100755
--- a/system/GLESv2_enc/GL2Encoder.cpp
+++ b/system/GLESv2_enc/GL2Encoder.cpp
@@ -2304,10 +2304,10 @@
         case GL_RG32F:
         case GL_RGBA32F:
         case GL_R11F_G11F_B10F:
-            res = hasExtension("GL_EXT_color_buffer_float");
+            res = majorVersion() >= 3 && hasExtension("GL_EXT_color_buffer_float");
             break;
         case GL_RGB16F:
-            res = hasExtension("GL_EXT_color_buffer_half_float");
+            res = majorVersion() >= 3 && hasExtension("GL_EXT_color_buffer_half_float");
             break;
         case GL_STENCIL_INDEX8:
             if (attachment == GL_STENCIL_ATTACHMENT) {
@@ -2329,10 +2329,10 @@
         case GL_RG32F:
         case GL_RGBA32F:
         case GL_R11F_G11F_B10F:
-            res = hasExtension("GL_EXT_color_buffer_float");
+            res = majorVersion() >= 3 && hasExtension("GL_EXT_color_buffer_float");
             break;
         case GL_RGB16F:
-            res = hasExtension("GL_EXT_color_buffer_half_float");
+            res = majorVersion() >= 3 && hasExtension("GL_EXT_color_buffer_half_float");
             break;
         case GL_RED:
         case GL_RG:
diff --git a/system/GLESv2_enc/GLESv2Validation.cpp b/system/GLESv2_enc/GLESv2Validation.cpp
index 5b9724c..c703325 100644
--- a/system/GLESv2_enc/GLESv2Validation.cpp
+++ b/system/GLESv2_enc/GLESv2Validation.cpp
@@ -159,9 +159,9 @@
     case GL_RG32F:
     case GL_RGBA32F:
     case GL_R11F_G11F_B10F:
-        return glesMajorVersion < 3 || ctx->hasExtension("GL_EXT_color_buffer_float");
+        return glesMajorVersion >= 3 && ctx->hasExtension("GL_EXT_color_buffer_float");
     case GL_RGB16F:
-        return glesMajorVersion < 3 || ctx->hasExtension("GL_EXT_color_buffer_half_float");
+        return glesMajorVersion >= 3 && ctx->hasExtension("GL_EXT_color_buffer_half_float");
         // dEQP expects GL_FRAMEBUFFER_UNSUPPORTED or GL_FRAMEBUFFER_COMPLETE
         // for this format
         // These formats are OK
@@ -539,6 +539,7 @@
 
 
 bool colorRenderableFormat(GL2Encoder* ctx, GLenum internalformat) {
+    int glesMajorVersion = ctx->majorVersion();
     switch (internalformat) {
     case GL_R8:
     case GL_RG8:
@@ -576,10 +577,10 @@
     case GL_RG32F:
     case GL_RGBA32F:
     case GL_R11F_G11F_B10F:
-        return ctx->hasExtension("GL_EXT_color_buffer_float");
+        return glesMajorVersion >= 3 && ctx->hasExtension("GL_EXT_color_buffer_float");
         break;
     case GL_RGB16F:
-        return ctx->hasExtension("GL_EXT_color_buffer_half_float");
+        return glesMajorVersion >= 3 && ctx->hasExtension("GL_EXT_color_buffer_half_float");
         break;
     }
     return false;