disable ctx->Driver.NewProgram() call in _mesa_new_program()
authorBrian <brian.paul@tungstengraphics.com>
Mon, 29 Oct 2007 16:01:15 +0000 (10:01 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Mon, 29 Oct 2007 16:01:15 +0000 (10:01 -0600)
This was causing infinite recursive calls w/ software drivers.
All vertex/fragment shaders should be allocated by calling
ctx->Driver.NewProgram(), not by calling _mesa_new_program().

src/mesa/shader/program.c

index 11330e2..43e6fb0 100644 (file)
@@ -285,8 +285,13 @@ _mesa_init_vertex_program( GLcontext *ctx, struct gl_vertex_program *prog,
 struct gl_program *
 _mesa_new_program(GLcontext *ctx, GLenum target, GLuint id)
 {
+#if 0
+   /* This was added by Nan hai Zou but disabled by BrianP since it
+    * causes infinite recursive calls.
+    */
    if (ctx->Driver.NewProgram)
         return ctx->Driver.NewProgram(ctx, target, id);
+#endif
    switch (target) {
    case GL_VERTEX_PROGRAM_ARB: /* == GL_VERTEX_PROGRAM_NV */
       return _mesa_init_vertex_program(ctx, CALLOC_STRUCT(gl_vertex_program),