meta: Fix saving the program pipeline state
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 26 Mar 2014 01:34:31 +0000 (18:34 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Fri, 2 May 2014 14:17:34 +0000 (07:17 -0700)
commitca21cffebd063354291d561eadc2ded8795a5333
tree2ae9ac0639929bacf9bdd502682d572e68bd0a93
parent4a868a984d6ae73eb38a69b045b004663cdac20c
meta: Fix saving the program pipeline state

This code was broken in some odd ways before.  Too much state was being
saved, it was being restored in the wrong order, and in the wrong way.
The biggest problem was that the pipeline object was restored before
restoring the programs attached to the default pipeline.

Fixes a regression in the glean texgen test.

v3: Fairly significant re-write.  I think it's much cleaner now, and it
avoids a bug with some meta ops that use shaders (reported by Chia-I).

v4: Check Pipeline.Current against NULL instead of Pipeline.Default.
Suggested by Chia-I.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chia-I Wu <olv@lunarg.com>
src/mesa/drivers/common/meta.c
src/mesa/drivers/common/meta.h