summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Rusin <zack@tungstengraphics.com>2007-09-19 14:06:19 -0400
committerZack Rusin <zack@tungstengraphics.com>2007-09-19 14:06:19 -0400
commitc8650b087440c7ba5ad0d8652dc916852e55bc1d (patch)
tree1bca7e2e2ad7f3372478f389991dfbb68e62cf11
parentfe555c39bb7fd530298b5be4a8f06bff41726c86 (diff)
Avoid redundant reallocation of the template.
cso already allocated the template for us. Returning 0 means we have no driver specific representation and just want the template on the bind.
-rw-r--r--src/mesa/pipe/softpipe/sp_state_blend.c9
-rw-r--r--src/mesa/state_tracker/st_atom_blend.c4
2 files changed, 6 insertions, 7 deletions
diff --git a/src/mesa/pipe/softpipe/sp_state_blend.c b/src/mesa/pipe/softpipe/sp_state_blend.c
index 7a94e82d6f..7fb47e7aab 100644
--- a/src/mesa/pipe/softpipe/sp_state_blend.c
+++ b/src/mesa/pipe/softpipe/sp_state_blend.c
@@ -34,10 +34,9 @@ void *
softpipe_create_blend_state(struct pipe_context *pipe,
const struct pipe_blend_state *blend)
{
- struct pipe_blend_state *new_blend = malloc(sizeof(struct pipe_blend_state));
- memcpy(new_blend, blend, sizeof(struct pipe_blend_state));
-
- return new_blend;
+ /* means that we just want pipe_blend_state and don't have
+ * anything specific */
+ return 0;
}
void softpipe_bind_blend_state( struct pipe_context *pipe,
@@ -53,7 +52,7 @@ void softpipe_bind_blend_state( struct pipe_context *pipe,
void softpipe_delete_blend_state(struct pipe_context *pipe,
void *blend )
{
- free(blend);
+ /* do nothing */
}
diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c
index d5eadc3541..f321cd3829 100644
--- a/src/mesa/state_tracker/st_atom_blend.c
+++ b/src/mesa/state_tracker/st_atom_blend.c
@@ -156,6 +156,7 @@ static void
update_blend( struct st_context *st )
{
struct pipe_blend_state blend;
+ const struct cso_blend *cso;
memset(&blend, 0, sizeof(blend));
@@ -211,8 +212,7 @@ update_blend( struct st_context *st )
if (st->ctx->Color.DitherFlag)
blend.dither = 1;
- const struct cso_blend *cso =
- st_cached_blend_state(st, &blend);
+ cso = st_cached_blend_state(st, &blend);
if (st->state.blend != cso) {
/* state has changed */