[Mesa-dev] [PATCH 1/2] st/va: enable dual instances encode by sync surface
Boyuan.Zhang at amd.com
Mon Oct 3 15:52:04 UTC 2016
Thanks for the testings.
Regarding to the inconsistencies, the current Vaapi dual instances encoding behaviour is random. Whether or not the dual instances is being used depends on how early the player calls sync_surface function according to the current gstreamer-vaapi's mechanism. e.g. if the player calls sync_surface too early, then we don't have enough time to receive and process the 2nd frame and we can only end up with single instance encoding for this frame as a result. And the random player behaviours depends on the current environment, for example cpufreq might be one factor. As a result, we don't guarantee the consistency especially when rate control is enabled for dual instances Vaapi encoding, since the randomness could result different calculations.
For the corruption/wrong frame order issue, could you please provide more detailed information for reproduction? e.g. the clips and commands that can reproduce the issue. Does this issue only happen after enabling dual instance patch?
From: Andy Furniss [mailto:adf.lists at gmail.com]
Sent: October-03-16 7:35 AM
To: Zhang, Boyuan; mesa-dev at lists.freedesktop.org
Cc: deathsimple at vodafone.de
Subject: Re: [PATCH 1/2] st/va: enable dual instances encode by sync surface
Boyuan Zhang wrote:
> This patch improves the performance of Vaapi Encode by enabling dual
> instances encoding. flush function is not called after each end_frame
> call. radeon/vce will do flush whenever 2 frames are submitted for
> encoding. Implement sync surface function to flush only if the frame
> hasn't been flushed yet.
I filed a bug about this, pinging here as I couldn't add Boyuan to the cc on bugzilla.
More information about the mesa-dev