diff options
author | Christoph Bumiller <[email protected]> | 2010-09-27 19:35:50 +0200 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2010-09-28 11:22:59 +0200 |
commit | e0b93c5bebab8ebd2e387d6031f97c6bc4328dbf (patch) | |
tree | 8eb08a4b5eaf914cc23fb958e2cf1c0afce5c855 | |
parent | 175261a1f1bfb1317d787c05f1ccde7f10629636 (diff) |
nv50: fix GP state bind and validate
-rw-r--r-- | src/gallium/drivers/nv50/nv50_shader_state.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/nv50/nv50_state.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/nv50/nv50_shader_state.c b/src/gallium/drivers/nv50/nv50_shader_state.c index 1a2fe758a85..6c41e8f4561 100644 --- a/src/gallium/drivers/nv50/nv50_shader_state.c +++ b/src/gallium/drivers/nv50/nv50_shader_state.c @@ -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); diff --git a/src/gallium/drivers/nv50/nv50_state.c b/src/gallium/drivers/nv50/nv50_state.c index 3afce06557a..f42fa2d4d2b 100644 --- a/src/gallium/drivers/nv50/nv50_state.c +++ b/src/gallium/drivers/nv50/nv50_state.c @@ -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; } |