summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/draw/draw_pipe_aaline.c4
-rw-r--r--src/gallium/auxiliary/draw/draw_pipe_aapoint.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pipe_aaline.c b/src/gallium/auxiliary/draw/draw_pipe_aaline.c
index 458f85def2c..7ecd2aa3f45 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_aaline.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_aaline.c
@@ -848,7 +848,7 @@ aaline_create_fs_state(struct pipe_context *pipe,
if (aafs == NULL)
return NULL;
- aafs->state = *fs;
+ aafs->state.tokens = tgsi_dup_tokens(fs->tokens);
/* pass-through */
aafs->driver_fs = aaline->driver_create_fs_state(pipe, fs);
@@ -882,6 +882,8 @@ aaline_delete_fs_state(struct pipe_context *pipe, void *fs)
if (aafs->aaline_fs)
aaline->driver_delete_fs_state(pipe, aafs->aaline_fs);
+ FREE((void*)aafs->state.tokens);
+
FREE(aafs);
}
diff --git a/src/gallium/auxiliary/draw/draw_pipe_aapoint.c b/src/gallium/auxiliary/draw/draw_pipe_aapoint.c
index 9265c379de8..698ab13cddb 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_aapoint.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_aapoint.c
@@ -834,7 +834,7 @@ aapoint_create_fs_state(struct pipe_context *pipe,
if (aafs == NULL)
return NULL;
- aafs->state = *fs;
+ aafs->state.tokens = tgsi_dup_tokens(fs->tokens);
/* pass-through */
aafs->driver_fs = aapoint->driver_create_fs_state(pipe, fs);
@@ -868,6 +868,8 @@ aapoint_delete_fs_state(struct pipe_context *pipe, void *fs)
if (aafs->aapoint_fs)
aapoint->driver_delete_fs_state(pipe, aafs->aapoint_fs);
+ FREE((void*)aafs->state.tokens);
+
FREE(aafs);
}