[Mesa-dev] [PATCH] i965: unref push_const_bo in intelDestroyContext

Emil Velikov emil.l.velikov at gmail.com
Fri Oct 27 09:08:36 UTC 2017


On 27 October 2017 at 07:52, Tapani Pälli <tapani.palli at intel.com> wrote:
> Valgrind shows that leak is caused by gen6_upload_push_constant, add
> unref push_const_bo per stage to destructor to fix this (like done for
> scratch_bo).
>
>    ==10952== 144 bytes in 1 blocks are definitely lost in loss record 44 of 66
>    ==10952==    at 0x4C30A1E: calloc (vg_replace_malloc.c:711)
>    ==10952==    by 0x8C02847: bo_alloc_internal.constprop.10 (brw_bufmgr.c:344)
>    ==10952==    by 0x8C425C4: intel_upload_space (intel_upload.c:101)
>    ==10952==    by 0x8C22ED0: gen6_upload_push_constants (gen6_constant_state.c:154)
>
> Fixes: 24891d7c05 ("i965: Store per-stage push constant BO pointers.")
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> Cc: mesa-stable at lists.freedesktop.org
> ---
>  src/mesa/drivers/dri/i965/brw_context.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
> index c8de074638..61088e2f1f 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.c
> +++ b/src/mesa/drivers/dri/i965/brw_context.c
> @@ -1072,6 +1072,17 @@ intelDestroyContext(__DRIcontext * driContextPriv)
>     if (brw->wm.base.scratch_bo)
>        brw_bo_unreference(brw->wm.base.scratch_bo);
>
> +   if (brw->vs.base.push_const_bo)
I'd drop the if checks - brw_bo_unreference works fine when the bo
pointer is NULL.

With that the patch is
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

-Emil


More information about the mesa-dev mailing list