[FFmpeg-devel] [RFC] QSV: Introduce min Compile-SDK Version and check for Runtime-Versions instead

Soft Works softworkz at hotmail.com
Wed Jan 12 05:37:15 EET 2022



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of Xiang,
> Haihao
> Sent: Wednesday, January 12, 2022 3:53 AM
> To: ffmpeg-devel at ffmpeg.org
> Subject: Re: [FFmpeg-devel] [RFC] QSV: Introduce min Compile-SDK Version and
> check for Runtime-Versions instead
> 
> On Mon, 2022-01-03 at 21:53 +0000, Soft Works wrote:
> > Hi,
> >
> > this is a follow-up to my recently submitted patch:
> >
> > “avfilter/vpp_qsv: fix regression on older api versions (e.g. 1.11)”
> >
> > That patch only fixes the one important regression from multiple issues
> which
> > have been introduced by recent changes. Those changes have gone in a less
> > than ideal direction, because they have introduced checks based on the
> version
> > of the MSDK which ffmpeg is being compiled against, but they didn’t add
> > checks for the runtime libmfx/MSDK versions – and this causes failures,
> > sometimes even for functionality which has worked before (=>regressions).
> >
> > Background
> >
> > - the compile-sdk version determines which features can be used
> >   but only when
> >   - the runtime SDK version supports it
> >     and
> >   - the hardware (GPU gen) supports it
> > - ALL compile-sdk versions can interface with ALL runtime MSDK
> >   versions (basically), no matter whether runtime version is newer or
> >   older
> > - At least on Windows, some hw is stuck at a certain runtime version,
> >   e.g.: there are new drivers for Broadwell, but the MSDK runtime
> >   is always 1.11
> >
> >
> > Conclusion
> >
> > Adding checks for the runtime MSDK versions is required wherever a feature
> > might not be supported by older MSDK runtimes - I think that's an obvious
> > necessity.
> >
> >
> > Question
> >
> > Having both - run-time and compile-time checks all over the code is adding
> > a lot of complexity and makes it difficult to maintain and work with.
> >
> > Hence, I'm wondering whether we couldn't/shouldn't introduce a minimum
> > MSDK compile-time version, for example 1.22, or even later?
> >
> > This would allow simplification of the QSV code in many places where run-
> time
> > version checks are actually needed instead.
> >
> > Over time, there have been better and worse MSDK versions, and there
> > should still be enough room for choosing, but I don't think there's any
> > reason why somebody would still want to compile against some really old
> > (e.g. < 1.22) MSDK version.
> >
> > Please share your thoughts on this subject..
> 
> I agree we may add a requirement for the minimal compiling version in
> configure,
> version 1.28 was released 3 years ago, how about using this version as the
> minimal compiling version ?

I'm fine with 1.28!


> BTW you may download the new Windows drivers for Broadwell from
> https://www.intel.com/content/www/us/en/download/18369/intel-graphics-driver-
> for-windows-15-40.html
>  , the runtime version should be 1.20

My mistake, I mixed the code names up. It was about a 3rd gen CPU. Those 
are stuck at 1.11. 4th and 5th gen are stuck at 1.20 and the others get the 
latest MSDK runtime.

It's like I had described in 2020 here: https://github.com/softworkz/ffmpeg_dx11/issues/1

Thanks,
softworkz




More information about the ffmpeg-devel mailing list