summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2014-03-14 16:57:34 +0000
committerJosé Fonseca <jfonseca@vmware.com>2014-03-25 12:54:39 +0000
commitee89432a4714b9da4508ed643db9fda39563de79 (patch)
treebd02ae841d75225430439bfd1b282a3d1380ae2f
parent7683fce8781ef0169333c5ee1276392d058cfaa8 (diff)
draw: Duplicate TGSI tokens in draw_pipe_pstipple module.
As done in draw_pipe_aaline and draw_pipe_aapoint modules. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Zack Rusin <zackr@vmware.com> Cc: "10.0 10.1" <mesa-stable@lists.freedesktop.org>
-rw-r--r--src/gallium/auxiliary/draw/draw_pipe_pstipple.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
index d7dcfdb596..d216787931 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
@@ -673,7 +673,7 @@ pstip_create_fs_state(struct pipe_context *pipe,
struct pstip_fragment_shader *pstipfs = CALLOC_STRUCT(pstip_fragment_shader);
if (pstipfs) {
- pstipfs->state = *fs;
+ pstipfs->state.tokens = tgsi_dup_tokens(fs->tokens);
/* pass-through */
pstipfs->driver_fs = pstip->driver_create_fs_state(pstip->pipe, fs);
@@ -707,6 +707,7 @@ pstip_delete_fs_state(struct pipe_context *pipe, void *fs)
if (pstipfs->pstip_fs)
pstip->driver_delete_fs_state(pstip->pipe, pstipfs->pstip_fs);
+ FREE((void*)pstipfs->state.tokens);
FREE(pstipfs);
}