1. Install Intel NEO driver :
$ cd /opt/intel/openvino/install_dependencies
$ sudo -E ./install_NEO_OCL_driver.sh
2. Check if OCL driver ready
$ clinfo -l
Platform #0: Intel(R) OpenCL HD Graphics
`--
Device #0: Intel(R) Gen9 HD Graphics NEO
2. Check if OCL driver ready
export environment variables :
$ export
LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64
$ export LIBVA_DRIVER_NAME=iHD
Or source script directly:
$ . /etc/profile.d/intel-mediasdk.sh
libva info: VA-API version 1.4.1
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.4 (libva 2.4.1)
vainfo: Driver version: Intel iHD driver - 19.1.0.git_42f6f23_2019-04-23
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
...
3. Download OpenCL C headers :
$ sudo cp /usr/include/CL/cl_va_api_media_sharing_intel.h /usr/include/CL/va_ext.h
4. Download OpenCV source from https://github.com/opencv/opencv/archive/4.2.0-openvino.zip, and config cmake to build
$ cmake -DWITH_VA_INTEL=ON \
-DBUILD_EXAMPLES=ON \
-DVA_INTEL_IOCL_ROOT=/usr/include
\
-DVA_INCLUDE_DIR=/opt/intel/mediasdk/include
\
-DVA_INTEL_LIBRARIES= "/opt/intel/mediasdk/lib64/libva.so;/opt/intel/mediasdk/lib64/libva-drm.so"
\
-DVA_LIBRARIES= "/opt/intel/mediasdk/lib64/libva.so;/opt/intel/mediasdk/lib64/libva-drm.so"
..
$ make -j `nproc`
5. Test interop
Test with
interop enabled:
$ ./bin/example_va_intel_va_intel_interop
../samples/data/HappyFish.jpg on_orig.jpg on_blur.jpg
libva info: VA-API version 1.4.1
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
VA display opened successfully
Interop ON : processing time, msec: 1.27697
Test with
interop disabled (fallback):
$ ./bin/example_va_intel_va_intel_interop \
-f
../samples/data/HappyFish.jpg off_orig.jpg off_blur.jpg
libva info: VA-API version 1.4.1
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
VA display opened successfully
Interop OFF: processing time, msec: 9.83819
Check libraries dependence :
$ ldd bin/example_va_intel_va_intel_interop
linux-vdso.so.1
(0x00007ffe9dca3000)
libpthread.so.0 =>
/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efc03690000)
libva.so.2 =>
/opt/intel/mediasdk/lib64/libva.so.2 (0x00007efc0346d000)
libva-drm.so.2
=> /opt/intel/mediasdk/lib64/libva-drm.so.2 (0x00007efc0326a000)
Reference :
https://software.intel.com/en-us/articles/tutorial-opencl-interoperability-with-video-acceleration-api-on-linux-os