st/va: it is valid to release the VABuffer of an exported resource
authorJulien Isorce <j.isorce@samsung.com>
Thu, 2 Jun 2016 14:03:01 +0000 (15:03 +0100)
committerJulien Isorce <j.isorce@samsung.com>
Mon, 13 Jun 2016 08:14:32 +0000 (09:14 +0100)
commit6c43e0016e344de3d7e82b098992cdfecbff2ab2
tree1ad2c76ec5864df92c00db27a5bbe197a9e8f68c
parent30df78236c14ca9470fd591a0978625490c010b2
st/va: it is valid to release the VABuffer of an exported resource

pipe_resource_reference(&res, NULL) will decrement reference counting,
i.e. p_atomic_dec(res->count). But the va surface still has the initial
reference since it has created the resource. So calling vaDestroyImage
on a derived image calls VaDestroyBuffer but the decrementation won't
reach 0. It is just wrong for vlVaDestroyBuffer to rely on the
export_refcount flag. Finally the vaapi intel driver has the same logic.

Signed-off-by: Julien Isorce <j.isorce@samsung.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
src/gallium/state_trackers/va/buffer.c