diff options
| author | Ben Skeggs <skeggsb@gmail.com> | 2008-01-16 13:14:19 +1100 |
|---|---|---|
| committer | Ben Skeggs <skeggsb@gmail.com> | 2008-01-16 13:14:19 +1100 |
| commit | 3119e9a14b66fcfb08fcc3563602273dd2e1893c (patch) | |
| tree | 74ff685faec3430b66d70522b6ed717f57e54f00 /src/mesa/state_tracker/st_cb_program.c | |
| parent | 9de335f5807553bc9251931ba3e80c4b454b5818 (diff) | |
| parent | 587e2becc237bc1c900a1c0ba114a1a0192690ff (diff) | |
Merge branch 'upstream-gallium-0.1' into darktama-gallium-0.1
Conflicts:
src/mesa/pipe/Makefile
Diffstat (limited to 'src/mesa/state_tracker/st_cb_program.c')
| -rw-r--r-- | src/mesa/state_tracker/st_cb_program.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/mesa/state_tracker/st_cb_program.c b/src/mesa/state_tracker/st_cb_program.c index aed6b1ee97..f1f33fb0dd 100644 --- a/src/mesa/state_tracker/st_cb_program.c +++ b/src/mesa/state_tracker/st_cb_program.c @@ -39,6 +39,9 @@ #include "shader/programopt.h" #include "shader/shader_api.h" +#include "pipe/cso_cache/cso_cache.h" +#include "pipe/draw/draw_context.h" + #include "st_context.h" #include "st_program.h" #include "st_atom_shader.h" @@ -181,17 +184,22 @@ static void st_program_string_notify( GLcontext *ctx, stvp->serialNo++; - if (stvp->vs) { - /* free the TGSI code */ - // cso_delete(stfp->vs); - stvp->vs = NULL; + if (stvp->cso) { + /* free the CSO data */ + st->pipe->delete_vs_state(st->pipe, stvp->cso->data); + FREE((void *) stvp->cso); + stvp->cso = NULL; + } + + if (stvp->draw_shader) { + draw_delete_vertex_shader(st->draw, stvp->draw_shader); + stvp->draw_shader = NULL; } stvp->param_state = stvp->Base.Base.Parameters->StateFlags; if (st->vp == stvp) st->dirty.st |= ST_NEW_VERTEX_PROGRAM; - } } |
