TNL module needs to implement ctx->Driver.ProgramStringNotify() function
so that calls to glProgramStringARB() to specify a new program causes the
TNL-attached data to get recomputed.
diff --git a/src/mesa/drivers/common/driverfuncs.c b/src/mesa/drivers/common/driverfuncs.c
index 8503135..9fe4ee3 100644
--- a/src/mesa/drivers/common/driverfuncs.c
+++ b/src/mesa/drivers/common/driverfuncs.c
@@ -45,6 +45,7 @@
 #endif
 
 #include "driverfuncs.h"
+#include "tnl/tnl.h"
 #include "swrast/swrast.h"
 
 
@@ -222,6 +223,7 @@
    driver->NeedFlush = 0;
    driver->SaveNeedFlush = 0;
 
+   driver->ProgramStringNotify = _tnl_program_string;
    driver->FlushVertices = NULL;
    driver->SaveFlushVertices = NULL;
    driver->NotifySaveBegin = NULL;