Looks like there is a cut and paste error which means the meta save/restore code won't save the active program if it doesn't have a fragment shader. Please see the patch.
Created attachment 52487 [details] [review]
meta: Fix saving the active program
When saving the active program in _mesa_meta_begin, it was actually
saving the fragment program instead. This means that if the
application binds a program that only has a vertex shader then when
the meta saved state is restored it will forget the bound program.
Thanks Neil. I've pushed the patch and am marking the bug as RESOLVED/FIXED.