summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv30/nv30_state.c
diff options
context:
space:
mode:
authorPatrice Mandin <pmandin@caramail.com>2008-07-12 00:48:26 +0200
committerPatrice Mandin <pmandin@caramail.com>2008-07-12 00:48:26 +0200
commit58737dc87575625438d288fe2f816b6a9d2086f1 (patch)
treee4b89db836a2712be232dac764e9e4a0b1f50b0f /src/gallium/drivers/nv30/nv30_state.c
parent2419a5fe3601851989506a11b0bd4e3cfb071035 (diff)
nv30: Emit fragment program using state objects
Diffstat (limited to 'src/gallium/drivers/nv30/nv30_state.c')
-rw-r--r--src/gallium/drivers/nv30/nv30_state.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/gallium/drivers/nv30/nv30_state.c b/src/gallium/drivers/nv30/nv30_state.c
index 92695ce23c..8dc16d361d 100644
--- a/src/gallium/drivers/nv30/nv30_state.c
+++ b/src/gallium/drivers/nv30/nv30_state.c
@@ -539,6 +539,8 @@ nv30_fp_state_create(struct pipe_context *pipe,
fp = CALLOC(1, sizeof(struct nv30_fragment_program));
fp->pipe = *cso;
+ tgsi_scan_shader(fp->pipe.tokens, &fp->info);
+
return (void *)fp;
}
@@ -546,13 +548,8 @@ static void
nv30_fp_state_bind(struct pipe_context *pipe, void *hwcso)
{
struct nv30_context *nv30 = nv30_context(pipe);
- struct nv30_fragment_program *fp = hwcso;
-
- if (!hwcso) {
- return;
- }
- nv30->fragprog.current = fp;
+ nv30->fragprog = hwcso;
nv30->dirty |= NV30_NEW_FRAGPROG;
}