disable floating point textures if GLSL version is < 330

BUG=skia:

Review URL: https://codereview.chromium.org/1178723007
This commit is contained in:
joshualitt 2015-06-18 13:47:10 -07:00 committed by Commit bot
parent 932d413e69
commit 5599996b72
2 changed files with 12 additions and 5 deletions

View File

@ -542,12 +542,17 @@ void GrGLCaps::initConfigRenderableTable(const GrGLContextInfo& ctxInfo) {
fConfigRenderSupport[kRGBA_float_GrPixelConfig][kNo_MSAA] = true;
fConfigRenderSupport[kRGBA_float_GrPixelConfig][kYes_MSAA] = true;
} else {
// for now we only enable this on desktop, because on ES we'd have to solve many
// precision issues and no clients actually want this yet
/*
if (ctxInfo.hasExtension("GL_EXT_color_buffer_float")) {
fConfigRenderSupport[kRGBA_float_GrPixelConfig][kNo_MSAA] = true;
} else {
fConfigRenderSupport[kRGBA_float_GrPixelConfig][kNo_MSAA] = false;
}
// for now we don't support floating point MSAA on ES
fConfigRenderSupport[kRGBA_float_GrPixelConfig][kYes_MSAA] = false;*/
fConfigRenderSupport[kRGBA_float_GrPixelConfig][kNo_MSAA] = false;
fConfigRenderSupport[kRGBA_float_GrPixelConfig][kYes_MSAA] = false;
}
}

View File

@ -40,18 +40,20 @@ GrGLContext* GrGLContext::Create(const GrGLInterface* interface, const GrContext
args.fVendor = GrGLGetVendor(interface);
args.fRenderer = GrGLGetRendererFromString(renderer);
/*
* Qualcomm drivers have a horrendous bug with some drivers. Though they claim to
* support GLES 3.00, some perfectly valid GLSL300 shaders will only compile with
* Qualcomm drivers for the 3xx series have a horrendous bug with some drivers. Though they
* claim to support GLES 3.00, some perfectly valid GLSL300 shaders will only compile with
* #version 100, and will fail to compile with #version 300 es. In the long term, we
* need to lock this down to a specific driver version.
* ?????/2015 - This bug is still present in Lollipop pre-mr1
* 06/18/2015 - This bug does not affect the nexus 6 (which has an Adreno 4xx).
*/
if (kQualcomm_GrGLVendor == args.fVendor) {
if (kAdreno3xx_GrGLRenderer == args.fRenderer) {
args.fGLSLGeneration = k110_GrGLSLGeneration;
}
args.fRenderer = GrGLGetRendererFromString(renderer);
GrGLGetDriverInfo(interface->fStandard, args.fVendor, renderer, ver,
&args.fDriver, &args.fDriverVersion);