i965: unref push_const_bo in intelDestroyContext
authorTapani Pälli <tapani.palli@intel.com>
Fri, 27 Oct 2017 09:54:02 +0000 (12:54 +0300)
committerTapani Pälli <tapani.palli@intel.com>
Fri, 27 Oct 2017 10:49:13 +0000 (13:49 +0300)
commit0b131ca427d788ae08426bdeddb8f4bd3c7da202
tree1df29f236e1eea8d7208a4ffcdedf25f5c7e3dd8
parenteeb3515c3f6ae0eac891559b2f7f8af0659ce5eb
i965: unref push_const_bo in intelDestroyContext

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)

v2: remove if conditions, brw_bo_unreference handles NULL (Ken, Emil)

Fixes: 24891d7c05 ("i965: Store per-stage push constant BO pointers.")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: mesa-stable@lists.freedesktop.org
src/mesa/drivers/dri/i965/brw_context.c