This is a follow up to previous commit:
commit 8dda0650b55c467200c34ada127b5d9b54edea5c
Author: Zhao Yakui <[email protected]>
Date: Tue May 5 17:56:38 2015 +0800
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 <[email protected]>
---
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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libva