lavapipe: Fix a memory leak in lvp_push_internal_buffer
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28187>
This commit is contained in:
committed by
Marge Bot
parent
73259c9ec4
commit
8b71c6d0d1
@@ -198,6 +198,7 @@ struct rendering_state {
|
||||
void *tess_states[2];
|
||||
|
||||
struct util_dynarray push_desc_sets;
|
||||
struct util_dynarray internal_buffers;
|
||||
|
||||
struct lvp_pipeline *exec_graph;
|
||||
};
|
||||
@@ -4217,6 +4218,8 @@ lvp_push_internal_buffer(struct rendering_state *state, gl_shader_stage stage, u
|
||||
|
||||
state->pctx->set_shader_buffers(state->pctx, stage, 0, 1, &buffer, 0x1);
|
||||
|
||||
util_dynarray_append(&state->internal_buffers, struct pipe_resource *, buffer.buffer);
|
||||
|
||||
return mem;
|
||||
}
|
||||
|
||||
@@ -4976,6 +4979,7 @@ VkResult lvp_execute_cmds(struct lvp_device *device,
|
||||
state->sample_mask = UINT32_MAX;
|
||||
state->poison_mem = device->poison_mem;
|
||||
util_dynarray_init(&state->push_desc_sets, NULL);
|
||||
util_dynarray_init(&state->internal_buffers, NULL);
|
||||
|
||||
/* default values */
|
||||
state->min_sample_shading = 1;
|
||||
@@ -5016,6 +5020,11 @@ VkResult lvp_execute_cmds(struct lvp_device *device,
|
||||
|
||||
util_dynarray_fini(&state->push_desc_sets);
|
||||
|
||||
util_dynarray_foreach (&state->internal_buffers, struct pipe_resource *, buffer)
|
||||
pipe_resource_reference(buffer, NULL);
|
||||
|
||||
util_dynarray_fini(&state->internal_buffers);
|
||||
|
||||
for (unsigned i = 0; i < ARRAY_SIZE(state->desc_buffers); i++)
|
||||
pipe_resource_reference(&state->desc_buffers[i], NULL);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user