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;