From 922e0680f9152aaacde12636d91b97346b05d61c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 6 Oct 2015 16:12:50 -0700 Subject: [PATCH] vc4: Fix a memory leak in the simulator case. We validate per draw call, and need to free the shader per draw call, too. --- src/gallium/drivers/vc4/vc4_simulator.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/vc4/vc4_simulator.c b/src/gallium/drivers/vc4/vc4_simulator.c index 7cfd236349d..76980ca32af 100644 --- a/src/gallium/drivers/vc4/vc4_simulator.c +++ b/src/gallium/drivers/vc4/vc4_simulator.c @@ -106,10 +106,15 @@ vc4_simulator_unpin_bos(struct vc4_exec_info *exec) { for (int i = 0; i < exec->bo_count; i++) { struct drm_gem_cma_object *obj = exec->bo[i]; - struct vc4_bo *bo = to_vc4_bo(&obj->base)->bo; + struct drm_vc4_bo *drm_bo = to_vc4_bo(&obj->base); + struct vc4_bo *bo = drm_bo->bo; memcpy(bo->map, obj->vaddr, bo->size); + if (drm_bo->validated_shader) { + free(drm_bo->validated_shader->texture_samples); + free(drm_bo->validated_shader); + } free(obj); } -- 2.30.2