diff mbox

[FFmpeg-devel] configure: include pkgconfig path as vaapi header search

Message ID 20190320075719.6629-1-zhong.li@intel.com
State Superseded
Headers show

Commit Message

Zhong Li March 20, 2019, 7:57 a.m. UTC
Currectly just standard header path and be found,
check_type/struct will fail if vaapi is installed somewhere else.
---
 configure | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

Comments

Zhong Li March 25, 2019, 8:35 a.m. UTC | #1
> From: Li, Zhong
> Sent: Wednesday, March 20, 2019 3:57 PM
> To: ffmpeg-devel@ffmpeg.org
> Cc: Li, Zhong <zhong.li@intel.com>
> Subject: [PATCH] configure: include pkgconfig path as vaapi header search
> 
> Currectly just standard header path and be found, check_type/struct will fail
> if vaapi is installed somewhere else.
> ---
>  configure | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/configure b/configure
> index eaf543df96..0e3c2d24bf 100755
> --- a/configure
> +++ b/configure
> @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"
> "ID3D11VideoDecoder"
>  check_type "windows.h d3d11.h" "ID3D11VideoContext"
>  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode
> -D_WIN32_WINNT=0x0602
> 
> -check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
> -check_type "va/va.h va/va_enc_hevc.h"
> "VAEncPictureParameterBufferHEVC"
> -check_type "va/va.h va/va_enc_jpeg.h"
> "VAEncPictureParameterBufferJPEG"
> -check_type "va/va.h va/va_enc_vp8.h"
> "VAEncPictureParameterBufferVP8"
> -check_type "va/va.h va/va_enc_vp9.h"
> "VAEncPictureParameterBufferVP9"
> -
>  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
> 
>  if enabled cuda_sdk; then
> @@ -6469,6 +6461,16 @@ if enabled vaapi; then
>      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)"
>  fi
> 
> +if enabled vaapi; then
> +    check_type "va/va.h va/va_dec_hevc.h"
> "VAPictureParameterBufferHEVC"
> +    check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"
> rotation_flags
> +    check_type "va/va.h va/va_enc_hevc.h"
> "VAEncPictureParameterBufferHEVC"
> +    check_type "va/va.h va/va_enc_jpeg.h"
> "VAEncPictureParameterBufferJPEG"
> +    check_type "va/va.h va/va_enc_vp8.h"
> "VAEncPictureParameterBufferVP8"
> +    check_type "va/va.h va/va_enc_vp9.h"
> "VAEncPictureParameterBufferVP9"
> +fi
> +
>  if enabled_all opencl libdrm ; then
>      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&
>          enable opencl_drm_beignet
> --
> 2.17.1

Ping?
Timo Rothenpieler March 25, 2019, 10:21 a.m. UTC | #2
On 20/03/2019 08:57, Zhong Li wrote:
> Currectly just standard header path and be found,
> check_type/struct will fail if vaapi is installed somewhere else.
> ---
>   configure | 18 ++++++++++--------
>   1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/configure b/configure
> index eaf543df96..0e3c2d24bf 100755
> --- a/configure
> +++ b/configure
> @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h" "ID3D11VideoDecoder"
>   check_type "windows.h d3d11.h" "ID3D11VideoContext"
>   check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode -D_WIN32_WINNT=0x0602
>   
> -check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
> -check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
> -check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
> -check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"
> -check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"
> -
>   check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
>   
>   if enabled cuda_sdk; then
> @@ -6469,6 +6461,16 @@ if enabled vaapi; then
>       check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)"
>   fi
>   
> +if enabled vaapi; then
> +    check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> +    check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
> +    check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
> +    check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
> +    check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"
> +    check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"
> +fi
> +
>   if enabled_all opencl libdrm ; then
>       check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&
>           enable opencl_drm_beignet
> 

Do I understand this right, that the desired effect is achieved by 
putting those check_* behind the pkgconfig check, which is in between 
the old and the new location?

If so, this looks OK to me.
Zhong Li March 27, 2019, 3:10 a.m. UTC | #3
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf

> Of Timo Rothenpieler

> Sent: Monday, March 25, 2019 6:21 PM

> To: ffmpeg-devel@ffmpeg.org

> Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig path as

> vaapi header search

> 

> On 20/03/2019 08:57, Zhong Li wrote:

> > Currectly just standard header path and be found, check_type/struct

> > will fail if vaapi is installed somewhere else.

> > ---

> >   configure | 18 ++++++++++--------

> >   1 file changed, 10 insertions(+), 8 deletions(-)

> >

> > diff --git a/configure b/configure

> > index eaf543df96..0e3c2d24bf 100755

> > --- a/configure

> > +++ b/configure

> > @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"

> "ID3D11VideoDecoder"

> >   check_type "windows.h d3d11.h" "ID3D11VideoContext"

> >   check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode

> > -D_WIN32_WINNT=0x0602

> >

> > -check_type "va/va.h va/va_dec_hevc.h"

> "VAPictureParameterBufferHEVC"

> > -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth

> > -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"

> > rotation_flags -check_type "va/va.h va/va_enc_hevc.h"

> "VAEncPictureParameterBufferHEVC"

> > -check_type "va/va.h va/va_enc_jpeg.h"

> "VAEncPictureParameterBufferJPEG"

> > -check_type "va/va.h va/va_enc_vp8.h"

> "VAEncPictureParameterBufferVP8"

> > -check_type "va/va.h va/va_enc_vp9.h"

> "VAEncPictureParameterBufferVP9"

> > -

> >   check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"

> >

> >   if enabled cuda_sdk; then

> > @@ -6469,6 +6461,16 @@ if enabled vaapi; then

> >       check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0,

> 0)"

> >   fi

> >

> > +if enabled vaapi; then

> > +    check_type "va/va.h va/va_dec_hevc.h"

> "VAPictureParameterBufferHEVC"

> > +    check_struct "va/va.h" "VADecPictureParameterBufferVP9"

> bit_depth

> > +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"

> rotation_flags

> > +    check_type "va/va.h va/va_enc_hevc.h"

> "VAEncPictureParameterBufferHEVC"

> > +    check_type "va/va.h va/va_enc_jpeg.h"

> "VAEncPictureParameterBufferJPEG"

> > +    check_type "va/va.h va/va_enc_vp8.h"

> "VAEncPictureParameterBufferVP8"

> > +    check_type "va/va.h va/va_enc_vp9.h"

> "VAEncPictureParameterBufferVP9"

> > +fi

> > +

> >   if enabled_all opencl libdrm ; then

> >       check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&

> >           enable opencl_drm_beignet

> >

> 

> Do I understand this right, that the desired effect is achieved by putting

> those check_* behind the pkgconfig check, which is in between the old and

> the new location?

> 

> If so, this looks OK to me.


Yes, you are right. Probably would better to make it clear in the commit message. 
Will update commit message and apply it during next 24 hours if nobody against.
Mark Thompson March 27, 2019, 11:05 p.m. UTC | #4
On 20/03/2019 07:57, Zhong Li wrote:
> Currectly just standard header path and be found,
> check_type/struct will fail if vaapi is installed somewhere else.
> ---
>  configure | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/configure b/configure
> index eaf543df96..0e3c2d24bf 100755
> --- a/configure
> +++ b/configure
> @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h" "ID3D11VideoDecoder"
>  check_type "windows.h d3d11.h" "ID3D11VideoContext"
>  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode -D_WIN32_WINNT=0x0602
>  
> -check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
> -check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
> -check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
> -check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"
> -check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"
> -
>  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
>  
>  if enabled cuda_sdk; then
> @@ -6469,6 +6461,16 @@ if enabled vaapi; then
>      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)"
>  fi
>  
> +if enabled vaapi; then

Merge this into the previous block, which has the same condition.

> +    check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> +    check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
> +    check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
> +    check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
> +    check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"
> +    check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"
> +fi
> +
>  if enabled_all opencl libdrm ; then
>      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&
>          enable opencl_drm_beignet
> 

LGTM with that.

Thanks,

- Mark
Dennis Mungai March 27, 2019, 11:11 p.m. UTC | #5
On Thu, 28 Mar 2019 at 02:05, Mark Thompson <sw@jkqxz.net> wrote:

> On 20/03/2019 07:57, Zhong Li wrote:
> > Currectly just standard header path and be found,
> > check_type/struct will fail if vaapi is installed somewhere else.
> > ---
> >  configure | 18 ++++++++++--------
> >  1 file changed, 10 insertions(+), 8 deletions(-)
> >
> > diff --git a/configure b/configure
> > index eaf543df96..0e3c2d24bf 100755
> > --- a/configure
> > +++ b/configure
> > @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"
> "ID3D11VideoDecoder"
> >  check_type "windows.h d3d11.h" "ID3D11VideoContext"
> >  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode
> -D_WIN32_WINNT=0x0602
> >
> > -check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> > -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> > -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
> > -check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
> > -check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
> > -check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"
> > -check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"
> > -
> >  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
> >
> >  if enabled cuda_sdk; then
> > @@ -6469,6 +6461,16 @@ if enabled vaapi; then
> >      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)"
> >  fi
> >
> > +if enabled vaapi; then
>
> Merge this into the previous block, which has the same condition.
>
> > +    check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> > +    check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> > +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"
> rotation_flags
> > +    check_type "va/va.h va/va_enc_hevc.h"
> "VAEncPictureParameterBufferHEVC"
> > +    check_type "va/va.h va/va_enc_jpeg.h"
> "VAEncPictureParameterBufferJPEG"
> > +    check_type "va/va.h va/va_enc_vp8.h"
> "VAEncPictureParameterBufferVP8"
> > +    check_type "va/va.h va/va_enc_vp9.h"
> "VAEncPictureParameterBufferVP9"
> > +fi
> > +
> >  if enabled_all opencl libdrm ; then
> >      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&
> >          enable opencl_drm_beignet
> >
>
> LGTM with that.
>
> Thanks,
>
> - Mark
>
>
Does a similar check exist for Intel's Neo OpenCL runtime?
Ruiling Song March 28, 2019, 3:09 a.m. UTC | #6
> -----Original Message-----

> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of

> Dennis Mungai

> Sent: Thursday, March 28, 2019 7:11 AM

> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>

> Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig path as vaapi

> header search

> 

> On Thu, 28 Mar 2019 at 02:05, Mark Thompson <sw@jkqxz.net> wrote:

> 

> > On 20/03/2019 07:57, Zhong Li wrote:

> > > Currectly just standard header path and be found,

> > > check_type/struct will fail if vaapi is installed somewhere else.

> > > ---

> > >  configure | 18 ++++++++++--------

> > >  1 file changed, 10 insertions(+), 8 deletions(-)

> > >

> > > diff --git a/configure b/configure

> > > index eaf543df96..0e3c2d24bf 100755

> > > --- a/configure

> > > +++ b/configure

> > > @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"

> > "ID3D11VideoDecoder"

> > >  check_type "windows.h d3d11.h" "ID3D11VideoContext"

> > >  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode

> > -D_WIN32_WINNT=0x0602

> > >

> > > -check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"

> > > -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth

> > > -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags

> > > -check_type "va/va.h va/va_enc_hevc.h"

> "VAEncPictureParameterBufferHEVC"

> > > -check_type "va/va.h va/va_enc_jpeg.h"

> "VAEncPictureParameterBufferJPEG"

> > > -check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"

> > > -check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"

> > > -

> > >  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"

> > >

> > >  if enabled cuda_sdk; then

> > > @@ -6469,6 +6461,16 @@ if enabled vaapi; then

> > >      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)"

> > >  fi

> > >

> > > +if enabled vaapi; then

> >

> > Merge this into the previous block, which has the same condition.

> >

> > > +    check_type "va/va.h va/va_dec_hevc.h"

> "VAPictureParameterBufferHEVC"

> > > +    check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth

> > > +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"

> > rotation_flags

> > > +    check_type "va/va.h va/va_enc_hevc.h"

> > "VAEncPictureParameterBufferHEVC"

> > > +    check_type "va/va.h va/va_enc_jpeg.h"

> > "VAEncPictureParameterBufferJPEG"

> > > +    check_type "va/va.h va/va_enc_vp8.h"

> > "VAEncPictureParameterBufferVP8"

> > > +    check_type "va/va.h va/va_enc_vp9.h"

> > "VAEncPictureParameterBufferVP9"

> > > +fi

> > > +

> > >  if enabled_all opencl libdrm ; then

> > >      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&

> > >          enable opencl_drm_beignet

> > >

> >

> > LGTM with that.

> >

> > Thanks,

> >

> > - Mark

> >

> >

> Does a similar check exist for Intel's Neo OpenCL runtime?

Do you mean checking whether package intel-opencl (Neo package) exists in the system?

> _______________________________________________

> ffmpeg-devel mailing list

> ffmpeg-devel@ffmpeg.org

> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

> 

> To unsubscribe, visit link above, or email

> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Dennis Mungai March 28, 2019, 3:15 a.m. UTC | #7
On Thu, 28 Mar 2019 at 06:10, Song, Ruiling <ruiling.song@intel.com> wrote:

>
>
> > -----Original Message-----
> > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of
> > Dennis Mungai
> > Sent: Thursday, March 28, 2019 7:11 AM
> > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
> > Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig path as
> vaapi
> > header search
> >
> > On Thu, 28 Mar 2019 at 02:05, Mark Thompson <sw@jkqxz.net> wrote:
> >
> > > On 20/03/2019 07:57, Zhong Li wrote:
> > > > Currectly just standard header path and be found,
> > > > check_type/struct will fail if vaapi is installed somewhere else.
> > > > ---
> > > >  configure | 18 ++++++++++--------
> > > >  1 file changed, 10 insertions(+), 8 deletions(-)
> > > >
> > > > diff --git a/configure b/configure
> > > > index eaf543df96..0e3c2d24bf 100755
> > > > --- a/configure
> > > > +++ b/configure
> > > > @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"
> > > "ID3D11VideoDecoder"
> > > >  check_type "windows.h d3d11.h" "ID3D11VideoContext"
> > > >  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode
> > > -D_WIN32_WINNT=0x0602
> > > >
> > > > -check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> > > > -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> > > > -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"
> rotation_flags
> > > > -check_type "va/va.h va/va_enc_hevc.h"
> > "VAEncPictureParameterBufferHEVC"
> > > > -check_type "va/va.h va/va_enc_jpeg.h"
> > "VAEncPictureParameterBufferJPEG"
> > > > -check_type "va/va.h va/va_enc_vp8.h"
> "VAEncPictureParameterBufferVP8"
> > > > -check_type "va/va.h va/va_enc_vp9.h"
> "VAEncPictureParameterBufferVP9"
> > > > -
> > > >  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
> > > >
> > > >  if enabled cuda_sdk; then
> > > > @@ -6469,6 +6461,16 @@ if enabled vaapi; then
> > > >      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0,
> 0)"
> > > >  fi
> > > >
> > > > +if enabled vaapi; then
> > >
> > > Merge this into the previous block, which has the same condition.
> > >
> > > > +    check_type "va/va.h va/va_dec_hevc.h"
> > "VAPictureParameterBufferHEVC"
> > > > +    check_struct "va/va.h" "VADecPictureParameterBufferVP9"
> bit_depth
> > > > +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"
> > > rotation_flags
> > > > +    check_type "va/va.h va/va_enc_hevc.h"
> > > "VAEncPictureParameterBufferHEVC"
> > > > +    check_type "va/va.h va/va_enc_jpeg.h"
> > > "VAEncPictureParameterBufferJPEG"
> > > > +    check_type "va/va.h va/va_enc_vp8.h"
> > > "VAEncPictureParameterBufferVP8"
> > > > +    check_type "va/va.h va/va_enc_vp9.h"
> > > "VAEncPictureParameterBufferVP9"
> > > > +fi
> > > > +
> > > >  if enabled_all opencl libdrm ; then
> > > >      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&
> > > >          enable opencl_drm_beignet
> > > >
> > >
> > > LGTM with that.
> > >
> > > Thanks,
> > >
> > > - Mark
> > >
> > >
> > Does a similar check exist for Intel's Neo OpenCL runtime?
> Do you mean checking whether package intel-opencl (Neo package) exists in
> the system?
>
>

Yes.

Neo is the successor to Beignet, correct?

Enabling similar functionality for Neo should allow for the same feature
support for these not using Beignet.
Ruiling Song March 28, 2019, 3:27 a.m. UTC | #8
> -----Original Message-----

> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of

> Dennis Mungai

> Sent: Thursday, March 28, 2019 11:15 AM

> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>

> Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig path as vaapi

> header search

> 

> On Thu, 28 Mar 2019 at 06:10, Song, Ruiling <ruiling.song@intel.com> wrote:

> 

> >

> >

> > > -----Original Message-----

> > > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf

> Of

> > > Dennis Mungai

> > > Sent: Thursday, March 28, 2019 7:11 AM

> > > To: FFmpeg development discussions and patches <ffmpeg-

> devel@ffmpeg.org>

> > > Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig path as

> > vaapi

> > > header search

> > >

> > > On Thu, 28 Mar 2019 at 02:05, Mark Thompson <sw@jkqxz.net> wrote:

> > >

> > > > On 20/03/2019 07:57, Zhong Li wrote:

> > > > > Currectly just standard header path and be found,

> > > > > check_type/struct will fail if vaapi is installed somewhere else.

> > > > > ---

> > > > >  configure | 18 ++++++++++--------

> > > > >  1 file changed, 10 insertions(+), 8 deletions(-)

> > > > >

> > > > > diff --git a/configure b/configure

> > > > > index eaf543df96..0e3c2d24bf 100755

> > > > > --- a/configure

> > > > > +++ b/configure

> > > > > @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"

> > > > "ID3D11VideoDecoder"

> > > > >  check_type "windows.h d3d11.h" "ID3D11VideoContext"

> > > > >  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode

> > > > -D_WIN32_WINNT=0x0602

> > > > >

> > > > > -check_type "va/va.h va/va_dec_hevc.h"

> "VAPictureParameterBufferHEVC"

> > > > > -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth

> > > > > -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"

> > rotation_flags

> > > > > -check_type "va/va.h va/va_enc_hevc.h"

> > > "VAEncPictureParameterBufferHEVC"

> > > > > -check_type "va/va.h va/va_enc_jpeg.h"

> > > "VAEncPictureParameterBufferJPEG"

> > > > > -check_type "va/va.h va/va_enc_vp8.h"

> > "VAEncPictureParameterBufferVP8"

> > > > > -check_type "va/va.h va/va_enc_vp9.h"

> > "VAEncPictureParameterBufferVP9"

> > > > > -

> > > > >  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"

> > > > >

> > > > >  if enabled cuda_sdk; then

> > > > > @@ -6469,6 +6461,16 @@ if enabled vaapi; then

> > > > >      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0,

> > 0)"

> > > > >  fi

> > > > >

> > > > > +if enabled vaapi; then

> > > >

> > > > Merge this into the previous block, which has the same condition.

> > > >

> > > > > +    check_type "va/va.h va/va_dec_hevc.h"

> > > "VAPictureParameterBufferHEVC"

> > > > > +    check_struct "va/va.h" "VADecPictureParameterBufferVP9"

> > bit_depth

> > > > > +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"

> > > > rotation_flags

> > > > > +    check_type "va/va.h va/va_enc_hevc.h"

> > > > "VAEncPictureParameterBufferHEVC"

> > > > > +    check_type "va/va.h va/va_enc_jpeg.h"

> > > > "VAEncPictureParameterBufferJPEG"

> > > > > +    check_type "va/va.h va/va_enc_vp8.h"

> > > > "VAEncPictureParameterBufferVP8"

> > > > > +    check_type "va/va.h va/va_enc_vp9.h"

> > > > "VAEncPictureParameterBufferVP9"

> > > > > +fi

> > > > > +

> > > > >  if enabled_all opencl libdrm ; then

> > > > >      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&

> > > > >          enable opencl_drm_beignet

> > > > >

> > > >

> > > > LGTM with that.

> > > >

> > > > Thanks,

> > > >

> > > > - Mark

> > > >

> > > >

> > > Does a similar check exist for Intel's Neo OpenCL runtime?

> > Do you mean checking whether package intel-opencl (Neo package) exists in

> > the system?

> >

> >

> 

> Yes.

> 

> Neo is the successor to Beignet, correct?

Yes, that's the truth.
Currently we simply checking against the specific header file of OpenCL, which is in-fact not accurate.
I am not sure whether you would like to use Neo together with intel-media-driver, which is the most targeted opencl usage in FFmpeg.
If that's the case, I think it may be hard to find a matching intel-media-driver to work with Neo release package.
Because Neo release version depends on a very outdated libva revision.
I just sent a patch to Neo to update libva revision dependency. Once they accept the patch and new Neo release package comes out,
I think we can change to check against Neo package. People would not need to build Neo themselves then.

Thanks!
Ruiling
> 

> Enabling similar functionality for Neo should allow for the same feature

> support for these not using Beignet.

> _______________________________________________

> ffmpeg-devel mailing list

> ffmpeg-devel@ffmpeg.org

> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

> 

> To unsubscribe, visit link above, or email

> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Dennis Mungai March 28, 2019, 3:59 a.m. UTC | #9
On Thu, 28 Mar 2019 at 06:27, Song, Ruiling <ruiling.song@intel.com> wrote:

>
>
> > -----Original Message-----
> > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of
> > Dennis Mungai
> > Sent: Thursday, March 28, 2019 11:15 AM
> > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
> > Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig path as
> vaapi
> > header search
> >
> > On Thu, 28 Mar 2019 at 06:10, Song, Ruiling <ruiling.song@intel.com>
> wrote:
> >
> > >
> > >
> > > > -----Original Message-----
> > > > From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On
> Behalf
> > Of
> > > > Dennis Mungai
> > > > Sent: Thursday, March 28, 2019 7:11 AM
> > > > To: FFmpeg development discussions and patches <ffmpeg-
> > devel@ffmpeg.org>
> > > > Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig
> path as
> > > vaapi
> > > > header search
> > > >
> > > > On Thu, 28 Mar 2019 at 02:05, Mark Thompson <sw@jkqxz.net> wrote:
> > > >
> > > > > On 20/03/2019 07:57, Zhong Li wrote:
> > > > > > Currectly just standard header path and be found,
> > > > > > check_type/struct will fail if vaapi is installed somewhere else.
> > > > > > ---
> > > > > >  configure | 18 ++++++++++--------
> > > > > >  1 file changed, 10 insertions(+), 8 deletions(-)
> > > > > >
> > > > > > diff --git a/configure b/configure
> > > > > > index eaf543df96..0e3c2d24bf 100755
> > > > > > --- a/configure
> > > > > > +++ b/configure
> > > > > > @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"
> > > > > "ID3D11VideoDecoder"
> > > > > >  check_type "windows.h d3d11.h" "ID3D11VideoContext"
> > > > > >  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode
> > > > > -D_WIN32_WINNT=0x0602
> > > > > >
> > > > > > -check_type "va/va.h va/va_dec_hevc.h"
> > "VAPictureParameterBufferHEVC"
> > > > > > -check_struct "va/va.h" "VADecPictureParameterBufferVP9"
> bit_depth
> > > > > > -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"
> > > rotation_flags
> > > > > > -check_type "va/va.h va/va_enc_hevc.h"
> > > > "VAEncPictureParameterBufferHEVC"
> > > > > > -check_type "va/va.h va/va_enc_jpeg.h"
> > > > "VAEncPictureParameterBufferJPEG"
> > > > > > -check_type "va/va.h va/va_enc_vp8.h"
> > > "VAEncPictureParameterBufferVP8"
> > > > > > -check_type "va/va.h va/va_enc_vp9.h"
> > > "VAEncPictureParameterBufferVP9"
> > > > > > -
> > > > > >  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
> > > > > >
> > > > > >  if enabled cuda_sdk; then
> > > > > > @@ -6469,6 +6461,16 @@ if enabled vaapi; then
> > > > > >      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1,
> 0,
> > > 0)"
> > > > > >  fi
> > > > > >
> > > > > > +if enabled vaapi; then
> > > > >
> > > > > Merge this into the previous block, which has the same condition.
> > > > >
> > > > > > +    check_type "va/va.h va/va_dec_hevc.h"
> > > > "VAPictureParameterBufferHEVC"
> > > > > > +    check_struct "va/va.h" "VADecPictureParameterBufferVP9"
> > > bit_depth
> > > > > > +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"
> > > > > rotation_flags
> > > > > > +    check_type "va/va.h va/va_enc_hevc.h"
> > > > > "VAEncPictureParameterBufferHEVC"
> > > > > > +    check_type "va/va.h va/va_enc_jpeg.h"
> > > > > "VAEncPictureParameterBufferJPEG"
> > > > > > +    check_type "va/va.h va/va_enc_vp8.h"
> > > > > "VAEncPictureParameterBufferVP8"
> > > > > > +    check_type "va/va.h va/va_enc_vp9.h"
> > > > > "VAEncPictureParameterBufferVP9"
> > > > > > +fi
> > > > > > +
> > > > > >  if enabled_all opencl libdrm ; then
> > > > > >      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&
> > > > > >          enable opencl_drm_beignet
> > > > > >
> > > > >
> > > > > LGTM with that.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > - Mark
> > > > >
> > > > >
> > > > Does a similar check exist for Intel's Neo OpenCL runtime?
> > > Do you mean checking whether package intel-opencl (Neo package) exists
> in
> > > the system?
> > >
> > >
> >
> > Yes.
> >
> > Neo is the successor to Beignet, correct?
> Yes, that's the truth.
> Currently we simply checking against the specific header file of OpenCL,
> which is in-fact not accurate.
> I am not sure whether you would like to use Neo together with
> intel-media-driver, which is the most targeted opencl usage in FFmpeg.
> If that's the case, I think it may be hard to find a matching
> intel-media-driver to work with Neo release package.
> Because Neo release version depends on a very outdated libva revision.
> I just sent a patch to Neo to update libva revision dependency. Once they
> accept the patch and new Neo release package comes out,
> I think we can change to check against Neo package. People would not need
> to build Neo themselves then.
>
> Thanks!
> Ruiling
> >
> > Enabling similar functionality for Neo should allow for the same feature
> > support for these not using Beignet.
>
>
Indeed, I'd want to use Neo + intel-media-driver.
Judging by the (relatively low) development activity on Beignet of late,
its' considered ready to deprecate in place of Neo, applicable on anything
newer than Kabylake.
Let's see how long it takes for the libva revision to be bumped up Neo.
Here's the request for the version bump:
https://github.com/intel/compute-runtime/issues/131
And the PR, for these following along:
https://github.com/intel/compute-runtime/pull/151
Ruiling Song March 28, 2019, 5:17 a.m. UTC | #10
> > >

> > > Neo is the successor to Beignet, correct?

> > Yes, that's the truth.

> > Currently we simply checking against the specific header file of OpenCL,

> > which is in-fact not accurate.

> > I am not sure whether you would like to use Neo together with

> > intel-media-driver, which is the most targeted opencl usage in FFmpeg.

> > If that's the case, I think it may be hard to find a matching

> > intel-media-driver to work with Neo release package.

> > Because Neo release version depends on a very outdated libva revision.

> > I just sent a patch to Neo to update libva revision dependency. Once they

> > accept the patch and new Neo release package comes out,

> > I think we can change to check against Neo package. People would not need

> > to build Neo themselves then.

> >

> > Thanks!

> > Ruiling

> > >

> > > Enabling similar functionality for Neo should allow for the same feature

> > > support for these not using Beignet.

> >

> >

> Indeed, I'd want to use Neo + intel-media-driver.

> Judging by the (relatively low) development activity on Beignet of late,

> its' considered ready to deprecate in place of Neo, applicable on anything

> newer than Kabylake.

I think Mark don't have plan to deprecate Beignet now, and me too.
FFmpeg-OpenCL currently use direct buffer sharing between OpenCL and vaapi driver.
One obvious limitation I didn't notice before is 10bit or 12bit buffer sharing is not supported by Neo.
I pinged the author of cl_intel_va_api_media_sharing, but got no response.
Maybe I will take some effort to update the extension spec and implement them in Neo myself.
I am not sure any other Neo limitation that Mark wants to add?

> Let's see how long it takes for the libva revision to be bumped up Neo.

> Here's the request for the version bump:

> https://github.com/intel/compute-runtime/issues/131

> And the PR, for these following along:

> https://github.com/intel/compute-runtime/pull/151

> _______________________________________________

> ffmpeg-devel mailing list

> ffmpeg-devel@ffmpeg.org

> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

> 

> To unsubscribe, visit link above, or email

> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Mark Thompson April 1, 2019, 9:57 p.m. UTC | #11
On 28/03/2019 05:17, Song, Ruiling wrote:
>>>>
>>>> Neo is the successor to Beignet, correct?
>>> Yes, that's the truth.
>>> Currently we simply checking against the specific header file of OpenCL,
>>> which is in-fact not accurate.
>>> I am not sure whether you would like to use Neo together with
>>> intel-media-driver, which is the most targeted opencl usage in FFmpeg.
>>> If that's the case, I think it may be hard to find a matching
>>> intel-media-driver to work with Neo release package.
>>> Because Neo release version depends on a very outdated libva revision.
>>> I just sent a patch to Neo to update libva revision dependency. Once they
>>> accept the patch and new Neo release package comes out,
>>> I think we can change to check against Neo package. People would not need
>>> to build Neo themselves then.
>>>
>>> Thanks!
>>> Ruiling
>>>>
>>>> Enabling similar functionality for Neo should allow for the same feature
>>>> support for these not using Beignet.
>>>
>>>
>> Indeed, I'd want to use Neo + intel-media-driver.
>> Judging by the (relatively low) development activity on Beignet of late,
>> its' considered ready to deprecate in place of Neo, applicable on anything
>> newer than Kabylake.
> I think Mark don't have plan to deprecate Beignet now, and me too.
> FFmpeg-OpenCL currently use direct buffer sharing between OpenCL and vaapi driver.
> One obvious limitation I didn't notice before is 10bit or 12bit buffer sharing is not supported by Neo.
> I pinged the author of cl_intel_va_api_media_sharing, but got no response.
> Maybe I will take some effort to update the extension spec and implement them in Neo myself.
> I am not sure any other Neo limitation that Mark wants to add?

For my point of view, the ideal thing to happen would be for Intel and AMD to work together to create a DRM object (kernel dma-buf) sharing extension for OpenCL which works on all of their platforms (especially the new ones, AMD ROCm and Intel NEO).

I don't think a VAAPI-specific extension is really the right way forward - as far as I can tell there is no good reason to tie it to that specific API (or, even worse, particular driver implementations thereof).  Compare Vulkan, which already does all of the interop on Linux via DRM object fds (and which therefore supports clean interop with Beignet, as well as with the Mesa and Intel VAAPI drivers themselves).

Thanks,

- Mark
Ruiling Song April 2, 2019, 3:58 a.m. UTC | #12
> -----Original Message-----

> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces@ffmpeg.org] On Behalf Of

> Dennis Mungai

> Sent: Thursday, March 28, 2019 7:11 AM

> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>

> Subject: Re: [FFmpeg-devel] [PATCH] configure: include pkgconfig path as vaapi

> header search

> 

> On Thu, 28 Mar 2019 at 02:05, Mark Thompson <sw@jkqxz.net> wrote:

> 

> > On 20/03/2019 07:57, Zhong Li wrote:

> > > Currectly just standard header path and be found,

> > > check_type/struct will fail if vaapi is installed somewhere else.

> > > ---

> > >  configure | 18 ++++++++++--------

> > >  1 file changed, 10 insertions(+), 8 deletions(-)

> > >

> > > diff --git a/configure b/configure

> > > index eaf543df96..0e3c2d24bf 100755

> > > --- a/configure

> > > +++ b/configure

> > > @@ -6024,14 +6024,6 @@ check_type "windows.h d3d11.h"

> > "ID3D11VideoDecoder"

> > >  check_type "windows.h d3d11.h" "ID3D11VideoContext"

> > >  check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode

> > -D_WIN32_WINNT=0x0602

> > >

> > > -check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"

> > > -check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth

> > > -check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags

> > > -check_type "va/va.h va/va_enc_hevc.h"

> "VAEncPictureParameterBufferHEVC"

> > > -check_type "va/va.h va/va_enc_jpeg.h"

> "VAEncPictureParameterBufferJPEG"

> > > -check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"

> > > -check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"

> > > -

> > >  check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"

> > >

> > >  if enabled cuda_sdk; then

> > > @@ -6469,6 +6461,16 @@ if enabled vaapi; then

> > >      check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)"

> > >  fi

> > >

> > > +if enabled vaapi; then

> >

> > Merge this into the previous block, which has the same condition.

> >

> > > +    check_type "va/va.h va/va_dec_hevc.h"

> "VAPictureParameterBufferHEVC"

> > > +    check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth

> > > +    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps"

> > rotation_flags

> > > +    check_type "va/va.h va/va_enc_hevc.h"

> > "VAEncPictureParameterBufferHEVC"

> > > +    check_type "va/va.h va/va_enc_jpeg.h"

> > "VAEncPictureParameterBufferJPEG"

> > > +    check_type "va/va.h va/va_enc_vp8.h"

> > "VAEncPictureParameterBufferVP8"

> > > +    check_type "va/va.h va/va_enc_vp9.h"

> > "VAEncPictureParameterBufferVP9"

> > > +fi

> > > +

> > >  if enabled_all opencl libdrm ; then

> > >      check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&

> > >          enable opencl_drm_beignet

> > >

> >

> > LGTM with that.

> >

> > Thanks,

> >

> > - Mark

> >

> >

> Does a similar check exist for Intel's Neo OpenCL runtime?

I find that Neo does not install a intel-opencl.pc. I guess the reason is that Neo is designed to be loaded by OpenCL ICD. So a pkg_check seems not possible.
Currently FFmpeg only checks against cl_va_api_media_sharing_intel.h header file. Which acts similar way as checking against Beignet.
For example, on Ubuntu 18.04, the opencl-c-headers shipped is version 2.2, which already includes this specific header file.
If you configure FFmpeg with --enable-opencl. And also install Neo and intel-media-driver. Then everything should work.
The only thing you need take care is both Neo and intel-media-driver depends on gmmlib. So you should choose matching gmmlib version and intel-media-driver version that will work with Neo release.

Ruiling
> _______________________________________________

> ffmpeg-devel mailing list

> ffmpeg-devel@ffmpeg.org

> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

> 

> To unsubscribe, visit link above, or email

> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff mbox

Patch

diff --git a/configure b/configure
index eaf543df96..0e3c2d24bf 100755
--- a/configure
+++ b/configure
@@ -6024,14 +6024,6 @@  check_type "windows.h d3d11.h" "ID3D11VideoDecoder"
 check_type "windows.h d3d11.h" "ID3D11VideoContext"
 check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode -D_WIN32_WINNT=0x0602
 
-check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
-check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
-check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
-check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
-check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
-check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"
-check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"
-
 check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
 
 if enabled cuda_sdk; then
@@ -6469,6 +6461,16 @@  if enabled vaapi; then
     check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)"
 fi
 
+if enabled vaapi; then
+    check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
+    check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
+    check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
+    check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
+    check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
+    check_type "va/va.h va/va_enc_vp8.h"  "VAEncPictureParameterBufferVP8"
+    check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"
+fi
+
 if enabled_all opencl libdrm ; then
     check_type "CL/cl_intel.h" "clCreateImageFromFdINTEL_fn" &&
         enable opencl_drm_beignet