Am 17.10.2016 um 22:31 schrieb Alex Deucher:
On Mon, Oct 17, 2016 at 4:16 PM,  <> wrote:
From: Boyuan Zhang <>

During dual instance encoding submission, if the second encode task and first
encode task have no reference dependency, e.g. p following with idr-frame,
there is a chance the second task will use for its reconstructed picture
buffer the same buffer used by first task for its reference/reconstructed
picture. In this case, buffer corruption may occur depending on encoding
speed. Fix is to force flush these two tasks separately to avoid race condition
Please reference the bug when this is committed.

Yeah, add a line like "Fixes:";.

With that done the patch is Reviewed-by: Christian König <>.



Signed-off-by: Boyuan Zhang <>
  src/gallium/state_trackers/va/picture.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/src/gallium/state_trackers/va/picture.c 
index 7f3d96d..eae5dc4 100644
--- a/src/gallium/state_trackers/va/picture.c
+++ b/src/gallium/state_trackers/va/picture.c
@@ -578,6 +578,9 @@ vlVaEndPicture(VADriverContextP ctx, VAContextID context_id)

     context->decoder->end_frame(context->decoder, context->target, 
+   if (context->decoder->entrypoint == PIPE_VIDEO_ENTRYPOINT_ENCODE &&
+       context->desc.h264enc.p_remain == 1)
+      context->decoder->flush(context->decoder);
     return VA_STATUS_SUCCESS;

mesa-dev mailing list
mesa-dev mailing list

mesa-dev mailing list

Reply via email to