[Libva] [PATCH libva-intel-driver] gen8_mfd: free surface used by JPEG decode

Sean V Kelley seanvk at posteo.de
Wed May 20 09:04:57 PDT 2015


> On May 19, 2015, at 17:36, Eoff, Ullysses A <ullysses.a.eoff at intel.com> wrote:
> 
> On Tue, 2015-05-19 at 15:30 -0700, Sean V Kelley wrote:
>> Artie,
>> 
>>> On May 19, 2015, at 14:59, U. Artie Eoff <ullysses.a.eoff at intel.com> wrote:
>>> 
>>> This is a follow up to previous commit:
>>> 
>>> commit 8dda0650b55c467200c34ada127b5d9b54edea5c
>>> Author: Zhao Yakui <yakui.zhao at intel.com>
>>> Date:   Tue May 5 17:56:38 2015 +0800
>>> 
>> 
>> 
>> Please resubmit your patch, with you as author as you are accounting for the GEN8 case
>> of inadvertent WA enabling.  GEN7 changes are already merged.
>> 
>> Thanks,
>> 
>> Sean
>> 
> 
> This patch already has me as author.  The above is just a reference in
> the "commit message" to the original GEN7 case.
> 


You’re right.  I was seeing the comment.  Applied to master, thanks.

Sean

>> 
>>>   Decode: Free the allocated internal surface used by JPEG to avoid memory leak
>>> 
>>> For GEN8, this code path is normally disabled by default.
>>> However, one can enable this code path by defining JPEG_WA
>>> during compilation.  In that case, we would enable the
>>> same memory leak.  Thus, apply the same fix in gen8_mfd to
>>> fix it.
>>> 
>>> Signed-off-by: U. Artie Eoff <ullysses.a.eoff at intel.com>
>>> ---
>>> src/gen8_mfd.c | 12 ++++++++++++
>>> 1 file changed, 12 insertions(+)
>>> 
>>> diff --git a/src/gen8_mfd.c b/src/gen8_mfd.c
>>> index 6618740..f045ca4 100644
>>> --- a/src/gen8_mfd.c
>>> +++ b/src/gen8_mfd.c
>>> @@ -3112,8 +3112,11 @@ out:
>>> static void
>>> gen8_mfd_context_destroy(void *hw_context)
>>> {
>>> +    VADriverContextP ctx;
>>>    struct gen7_mfd_context *gen7_mfd_context = (struct gen7_mfd_context *)hw_context;
>>> 
>>> +    ctx = (VADriverContextP)(gen7_mfd_context->driver_context);
>>> +
>>>    dri_bo_unreference(gen7_mfd_context->post_deblocking_output.bo);
>>>    gen7_mfd_context->post_deblocking_output.bo = NULL;
>>> 
>>> @@ -3140,6 +3143,13 @@ gen8_mfd_context_destroy(void *hw_context)
>>> 
>>>    dri_bo_unreference(gen7_mfd_context->jpeg_wa_slice_data_bo);
>>> 
>>> +    if (gen7_mfd_context->jpeg_wa_surface_id != VA_INVALID_SURFACE) {
>>> +        i965_DestroySurfaces(ctx,
>>> +                             &gen7_mfd_context->jpeg_wa_surface_id,
>>> +                             1);
>>> +        gen7_mfd_context->jpeg_wa_surface_object = NULL;
>>> +    }
>>> +
>>>    intel_batchbuffer_free(gen7_mfd_context->base.batch);
>>>    free(gen7_mfd_context);
>>> }
>>> @@ -3188,5 +3198,7 @@ gen8_dec_hw_context_init(VADriverContextP ctx, struct object_config *obj_config)
>>>    default:
>>>        break;
>>>    }
>>> +
>>> +    gen7_mfd_context->driver_context = ctx;
>>>    return (struct hw_context *)gen7_mfd_context;
>>> }
>>> -- 
>>> 1.9.3
>>> 
>>> _______________________________________________
>>> Libva mailing list
>>> Libva at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/libva

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libva/attachments/20150520/5d7e03a2/attachment-0001.html>


More information about the Libva mailing list