r600g: release query buffers in destroy_query
This fixes a memory leak introduced with the rework. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
@@ -264,6 +264,15 @@ static struct pipe_query *r600_create_query(struct pipe_context *ctx, unsigned q
|
||||
static void r600_destroy_query(struct pipe_context *ctx, struct pipe_query *query)
|
||||
{
|
||||
struct r600_query *rquery = (struct r600_query*)query;
|
||||
struct r600_query_buffer *prev = rquery->buffer.previous;
|
||||
|
||||
/* Release all query buffers. */
|
||||
while (prev) {
|
||||
struct r600_query_buffer *qbuf = prev;
|
||||
prev = prev->previous;
|
||||
pipe_resource_reference((struct pipe_resource**)&qbuf->buf, NULL);
|
||||
FREE(qbuf);
|
||||
}
|
||||
|
||||
pipe_resource_reference((struct pipe_resource**)&rquery->buffer.buf, NULL);
|
||||
FREE(query);
|
||||
|
||||
Reference in New Issue
Block a user