Bug 1485441 - Add diagnostics to GL compositor shader failures and avoid crashing release builds. r=jnicol

Differential Revision: https://phabricator.services.mozilla.com/D4079

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Nicolas Silva 2018-08-23 14:46:50 +00:00
parent 9a8991af69
commit e260c539f2

View File

@ -1061,6 +1061,10 @@ CompositorOGL::GetShaderProgramFor(const ShaderConfigOGL &aConfig)
ProgramProfileOGL profile = ProgramProfileOGL::GetProfileFor(aConfig);
ShaderProgramOGL *shader = new ShaderProgramOGL(gl(), profile);
if (!shader->Initialize()) {
gfxCriticalError() << "Shader compilation failure, cfg:"
<< " features: " << gfx::hexa(aConfig.mFeatures)
<< " multiplier: " << aConfig.mMultiplier
<< " op: " << aConfig.mCompositionOp;
delete shader;
return nullptr;
}
@ -1314,6 +1318,10 @@ CompositorOGL::DrawGeometry(const Geometry& aGeometry,
ApplyPrimitiveConfig(config, aGeometry);
ShaderProgramOGL *program = GetShaderProgramFor(config);
MOZ_DIAGNOSTIC_ASSERT(program);
if (!program) {
return;
}
ActivateProgram(program);
program->SetProjectionMatrix(mProjMatrix);
program->SetLayerTransform(aTransform);