| Index: src/gpu/gl/GrGLProgramDesc.cpp
|
| diff --git a/src/gpu/gl/GrGLProgramDesc.cpp b/src/gpu/gl/GrGLProgramDesc.cpp
|
| index 068386c3aa94a5e761da2620714967de81b6d842..2476c5532cc3cd89cc14af1c7ccdf4e53ccc6112 100644
|
| --- a/src/gpu/gl/GrGLProgramDesc.cpp
|
| +++ b/src/gpu/gl/GrGLProgramDesc.cpp
|
| @@ -189,13 +189,21 @@ bool GrGLProgramDescBuilder::Build(const GrOptDrawState& optState,
|
| const GrFragmentProcessor& fp = *fps.getProcessor();
|
| GrProcessorKeyBuilder b(&desc->fKey);
|
| fp.getGLProcessorKey(gpu->glCaps(), &b);
|
| - if (!get_meta_key(*fps.getProcessor(), gpu->glCaps(),
|
| - gen_transform_key(fps, requiresLocalCoordAttrib), 0, &b)) {
|
| + if (!get_meta_key(fp, gpu->glCaps(),
|
| + gen_transform_key(fps, requiresLocalCoordAttrib), 0, &b)) {
|
| desc->fKey.reset();
|
| return false;
|
| }
|
| }
|
|
|
| + const GrXferProcessor& xp = *optState.getXferProcessor();
|
| + GrProcessorKeyBuilder b(&desc->fKey);
|
| + xp.getGLProcessorKey(gpu->glCaps(), &b);
|
| + if (!get_meta_key(xp, gpu->glCaps(), 0, 0, &b)) {
|
| + desc->fKey.reset();
|
| + return false;
|
| + }
|
| +
|
| // --------DO NOT MOVE HEADER ABOVE THIS LINE--------------------------------------------------
|
| // Because header is a pointer into the dynamic array, we can't push any new data into the key
|
| // below here.
|
| @@ -260,9 +268,6 @@ bool GrGLProgramDescBuilder::Build(const GrOptDrawState& optState,
|
| header->fFragPosKey = 0;
|
| }
|
|
|
| - header->fPrimaryOutputType = descInfo.fPrimaryOutputType;
|
| - header->fSecondaryOutputType = descInfo.fSecondaryOutputType;
|
| -
|
| header->fColorEffectCnt = optState.numColorStages();
|
| header->fCoverageEffectCnt = optState.numCoverageStages();
|
| desc->finalize();
|
|
|