mesa: Free the util shaders with the gallium's FREE.
This commit is contained in:
@@ -359,3 +359,10 @@ util_make_fragment_passthrough_shader(struct pipe_context *pipe,
|
|||||||
return pipe->create_fs_state(pipe, shader);
|
return pipe->create_fs_state(pipe, shader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
util_free_shader(struct pipe_shader_state *shader)
|
||||||
|
{
|
||||||
|
FREE((struct tgsi_token *)shader->tokens);
|
||||||
|
shader->tokens = NULL;
|
||||||
|
}
|
||||||
|
@@ -60,6 +60,10 @@ util_make_fragment_passthrough_shader(struct pipe_context *pipe,
|
|||||||
struct pipe_shader_state *shader);
|
struct pipe_shader_state *shader);
|
||||||
|
|
||||||
|
|
||||||
|
extern void
|
||||||
|
util_free_shader(struct pipe_shader_state *shader);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -313,7 +313,7 @@ get_passthrough_fs(struct st_context *st)
|
|||||||
st->passthrough_fs =
|
st->passthrough_fs =
|
||||||
util_make_fragment_passthrough_shader(st->pipe, &shader);
|
util_make_fragment_passthrough_shader(st->pipe, &shader);
|
||||||
#if 0 /* We actually need to keep the tokens around at this time */
|
#if 0 /* We actually need to keep the tokens around at this time */
|
||||||
_mesa_free((void *) shader.tokens);
|
util_free_shader(&shader);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -819,6 +819,7 @@ st_destroy_bitmap(struct st_context *st)
|
|||||||
cso_delete_vertex_shader(st->cso_context, st->bitmap.vs);
|
cso_delete_vertex_shader(st->cso_context, st->bitmap.vs);
|
||||||
st->bitmap.vs = NULL;
|
st->bitmap.vs = NULL;
|
||||||
}
|
}
|
||||||
|
util_free_shader(&st->bitmap.vert_shader);
|
||||||
|
|
||||||
if (st->bitmap.vbuf) {
|
if (st->bitmap.vbuf) {
|
||||||
pipe_buffer_reference(pipe->screen, &st->bitmap.vbuf, NULL);
|
pipe_buffer_reference(pipe->screen, &st->bitmap.vbuf, NULL);
|
||||||
|
@@ -98,12 +98,12 @@ st_destroy_clear(struct st_context *st)
|
|||||||
struct pipe_context *pipe = st->pipe;
|
struct pipe_context *pipe = st->pipe;
|
||||||
|
|
||||||
if (st->clear.vert_shader.tokens) {
|
if (st->clear.vert_shader.tokens) {
|
||||||
_mesa_free((void *) st->clear.vert_shader.tokens);
|
util_free_shader(&st->clear.vert_shader);
|
||||||
st->clear.vert_shader.tokens = NULL;
|
st->clear.vert_shader.tokens = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (st->clear.frag_shader.tokens) {
|
if (st->clear.frag_shader.tokens) {
|
||||||
_mesa_free((void *) st->clear.frag_shader.tokens);
|
util_free_shader(&st->clear.frag_shader);
|
||||||
st->clear.frag_shader.tokens = NULL;
|
st->clear.frag_shader.tokens = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user