Index: src/gpu/gl/GrGLCaps.cpp |
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp |
index 8f2d4c129742fb9cbcb0be099b7538fbbec386d4..178550bd5c61d27e05aec082b92f2bcf94132bbf 100644 |
--- a/src/gpu/gl/GrGLCaps.cpp |
+++ b/src/gpu/gl/GrGLCaps.cpp |
@@ -444,6 +444,10 @@ void GrGLCaps::initConfigRenderableTable(const GrGLContextInfo& ctxInfo) { |
} |
} |
+ if (this->isConfigTexturable(kRGBA_float_GrPixelConfig)) { |
+ fConfigRenderSupport[kRGBA_float_GrPixelConfig][kNo_MSAA] = true; |
+ } |
+ |
// If we don't support MSAA then undo any places above where we set a config as renderable with |
// msaa. |
if (kNone_MSFBOType == fMSFBOType) { |
@@ -504,7 +508,7 @@ void GrGLCaps::initConfigTexturableTable(const GrGLContextInfo& ctxInfo, const G |
// First check version for support |
if (kGL_GrGLStandard == standard) { |
hasETC1 = hasCompressTex2D && |
- (version >= GR_GL_VER(4, 3) || |
+ (version >= GR_GL_VER(4, 3) || |
ctxInfo.hasExtension("GL_ARB_ES3_compatibility")); |
} else { |
hasETC1 = hasCompressTex2D && |
@@ -558,6 +562,19 @@ void GrGLCaps::initConfigTexturableTable(const GrGLContextInfo& ctxInfo, const G |
} else { |
fConfigTextureSupport[kR11_EAC_GrPixelConfig] = version >= GR_GL_VER(3, 0); |
} |
+ |
+ // Check for floating point texture support |
+ // NOTE: We disallow floating point textures on ES devices if linear |
+ // filtering modes are not supported. This is for simplicity, but a more |
+ // granular approach is possible. Coincidentally, floating point textures became part of |
+ // the standard in ES3.1 / OGL 3.1, hence the shorthand |
+ bool hasFPTextures = version >= GR_GL_VER(3, 1); |
+ if (!hasFPTextures) { |
+ hasFPTextures = ctxInfo.hasExtension("GL_ARB_texture_float") || |
+ (ctxInfo.hasExtension("OES_texture_float_linear") && |
+ ctxInfo.hasExtension("GL_OES_texture_float")); |
+ } |
+ fConfigTextureSupport[kRGBA_float_GrPixelConfig] = hasFPTextures; |
} |
bool GrGLCaps::readPixelsSupported(const GrGLInterface* intf, |