nv50: fix GP state bind and validate
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Mon, 27 Sep 2010 17:35:50 +0000 (19:35 +0200)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Tue, 28 Sep 2010 09:22:59 +0000 (11:22 +0200)
src/gallium/drivers/nv50/nv50_shader_state.c
src/gallium/drivers/nv50/nv50_state.c

index 1a2fe758a859b240106d167cd2fb846b2754ae24..6c41e8f4561fec99d371d771ee09495b9d3f1be4 100644 (file)
@@ -362,6 +362,10 @@ nv50_geomprog_validate(struct nv50_context *nv50)
    struct nv50_program *p = nv50->geomprog;
    struct nouveau_stateobj *so = NULL;
 
+   /* GP may be NULL, but VP and FP may not */
+   if (!p)
+      return NULL; /* GP is deactivated in linkage validation */
+
    if (!p->translated) {
       if (nv50_program_validate(p))
          nv50_gp_update_stateobj(nv50, p);
index 3afce06557a0282c79235e46ab0d050138924da7..f42fa2d4d2bd225694f8bd346c6163f82373c27d 100644 (file)
@@ -663,7 +663,7 @@ nv50_gp_state_bind(struct pipe_context *pipe, void *hwcso)
 {
        struct nv50_context *nv50 = nv50_context(pipe);
 
-       nv50->fragprog = hwcso;
+       nv50->geomprog = hwcso;
        nv50->dirty |= NV50_NEW_GEOMPROG;
 }