Skip to content

Commit

Permalink
Update README for component/feature/build type
Browse files Browse the repository at this point in the history
Added component/feature introduction.
Descriped more information for build type(full feature build and free kernel build) and also related build options.
Combined feature table for these two builds

Change-Id: I06e0ca3da883494a74af4e7ab87745ca6e65424f
  • Loading branch information
Sherry-Lin committed Jul 31, 2019
1 parent 2144622 commit 9b648d8
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 159 deletions.
217 changes: 85 additions & 132 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,27 +11,22 @@ video post processing for GEN based graphics hardware.

The Intel(R) Media Driver for VAAPI is distributed under the MIT license with
portions covered under the BSD 3-clause "New" or "Revised" License.
You may obtain a copy of the License at:

https://opensource.org/licenses/MIT

&

https://opensource.org/licenses/BSD-3-Clause
You may obtain a copy of the License at [MIT](https://opensource.org/licenses/MIT) & [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)

## Prerequisites

For Ubuntu 16.04 and above
For Ubuntu 16.04+

\# apt install autoconf libtool libdrm-dev xorg xorg-dev openbox libx11-dev libgl1-mesa-glx libgl1-mesa-dev
```
apt install autoconf libtool libdrm-dev xorg xorg-dev openbox libx11-dev libgl1-mesa-glx libgl1-mesa-dev
```

Equivalents for other distributions should work.

## Dependencies

Libva - https://github.com/intel/libva

GmmLib - https://github.com/intel/gmmlib (please check https://github.com/intel/media-driver/wiki/Comparability-with-GmmLib)
* [Libva](https://github.com/intel/libva)
* [GmmLib](https://github.com/intel/gmmlib)(Please check [comparability with GmmLib](https://github.com/intel/media-driver/wiki/Comparability-with-GmmLib))

## Building

Expand All @@ -56,7 +51,7 @@ $ cmake ../media-driver
```
7.
```
$ make -j8
$ make -j"$(nproc)"
```

## Install
Expand All @@ -77,145 +72,103 @@ export LIBVA_DRIVERS_PATH=<path-contains-iHD_drv_video.so>
export LIBVA_DRIVER_NAME=iHD
```

## Build Modes

This section summarizes key driver build modes which can be used in the different environment requirements:

| Build option | Default value | Dependencies | Comments |
|-|-|-|-|
| ENABLE_KERNELS | ON | N/A | Enable/Disable shaders during driver build |
| ENABLE_NONFREE_KERNELS | ON | ENABLE_KERNELS=ON | Enable/disable close source shaders (kernels) during the build |
| BUILD_KERNELS | OFF | ENABLE_KERNELS=ON, ENABLE_NONFREE_KERNELS=OFF | If enabled, rebuild open source shaders (kernels) from sources. Requires ENABLE_NONFREE_KERNELS=OFF |

With the above options it is possible to build (table assumes that non-listed options have default values):

| No. | Build option(s) | HW Features | Shaders (Kernels) | Comments |
|-|-|-|-|-|
| 1 | ENABLE_KERNELS=ON | Yes | Close source (pre-built) | **Default Build**, full feature driver |
| 2 | ENABLE_KERNELS=OFF | Yes | None | HW features only, include HW decoder, HW VDEnc Encoder (CQP mode) |
| 3 | ENABLE_NONFREE_KERNELS=OFF | Yes | Open source (pre-built) | **Open Source Build**, HW features available in prev. mode (ENABLE_KERNELS=ON) and features supported by open source shaders |
| 4 | ENABLE_NONFREE_KERNELS=OFF BUILD_KERNELS=ON | Yes | Open source | **Open Source Build**, Same as ENABLE_NONFREE_KERNELS=OFF driver, but shaders are rebuilt from sources |

## Supported Platforms

BDW (Broadwell)

SKL (Skylake)

BXT (Broxton) / APL (Apollo Lake)
* BDW (Broadwell)
* SKL (Skylake)
* BXT (Broxton) / APL (Apollo Lake)
* KBL (Kaby Lake)
* CFL (Coffee Lake)
* WHL (Whiskey Lake)
* CML (Comet Lake)
* ICL (Ice Lake)


## Components and Features

Media driver contains three components as below
* **Video decoding** calls hardware-based decoder([VDBox](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf)) which provides fully-accelerated hardware video decoding to release the graphics engine for other operations.
* **Video encoding** supports two modes, one calls hardware-based encoder([VDEnc](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf)/[Huc](https://01.org/linuxgraphics/downloads/firmware?langredirect=1)) to provide low power encoding, another one is hardware([PAK](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf))+shader(media kernel+[VME](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol04-configurations.pdf)) based encoding. User could choose the mode through VA-API.
* **Video processing** supports several popular features by hardware-based video processor([VEBox/SFC](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol09-media_vebox.pdf)) and shader(media kernel) based solution together.

Media driver supports two build types as below
* **Full Feature Build** is default driver build, which supports all feature by hardware accelerator and close source shaders(media kernel binaries). Ubuntu [intel-media-va-driver-non-free](https://packages.ubuntu.com/disco/intel-media-va-driver-non-free) package is generated from this build type.
* **Free Kernel Build**, enables fully open source shaders(media kernels) and hardware features but the features would be limited. Ubuntu [intel-media-va-driver](https://packages.ubuntu.com/disco/intel-media-va-driver) package is generated from this build type.


### Decoding/Encoding Features

| CODEC | Build Types | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL* |
|---|---|---|---|---|---|---|---|---|---|
| AVC | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D/Es</u><br><i>D<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> | <u>D/E/Es</u><br><i>D/E<i> |
| MPEG-2 | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> |
| VC-1 | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> | <u>D</u><br><i>&nbsp;<i> |
| JPEG | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D</u><br><i>D<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> | <u>D/E</u><br><i>D/E<i> |
| VP8 | <u>Full Feature</u><br><i>Free Kernel</i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> |
| HEVC 8bit | <u>Full Feature</u><br><i>Free Kernel</i> | | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/E/Es</u><br><i>D/E<i> |
| HEVC 8bit 422 | <u>Full Feature</u><br><i>Free Kernel</i> | | | | | | | | <u>D/Es</u><br><i>D<i> |
| HEVC 8bit 444 | <u>Full Feature</u><br><i>Free Kernel</i> | | | | | | | | <u>D/E</u><br><i>D/E<i> |
| HEVC 10bit | <u>Full Feature</u><br><i>Free Kernel</i> | | | <u>D</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/Es</u><br><i>D<i> | <u>D/E/Es</u><br><i>D/E<i> |
| HEVC 10bit 422 | <u>Full Feature</u><br><i>Free Kernel</i> | | | | | | | | <u>D/Es</u><br><i>D<i> |
| HEVC 10bit 444 | <u>Full Feature</u><br><i>Free Kernel</i> | | | | | | | | <u>D/E</u><br><i>D/E<i> |
| VP9 8bit | <u>Full Feature</u><br><i>Free Kernel</i> | | | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D/E</u><br><i>D/E<i> |
| VP9 8bit 444 | <u>Full Feature</u><br><i>Free Kernel</i> | | | | | | | | <u>D/E</u><br><i>D/E<i> |
| VP9 10bit | <u>Full Feature</u><br><i>Free Kernel</i> | | | | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D</u><br><i>D<i> | <u>D/E</u><br><i>D/E<i> |
| VP9 10bit 444 | <u>Full Feature</u><br><i>Free Kernel</i> | | | | | | | | <u>D/E</u><br><i>D/E<i> |

* D - Hardware Decoding
* E - Hardware Encoding, Low Power Encoding(VDEnc/Huc)
* Es - Hardware(PAK) + Shader(media kernel+VME) Encoding

KBL (Kaby Lake)

CFL (Coffee Lake)

WHL (Whiskey Lake)

CML (Comet Lake)

ICL (Ice Lake)

## Driver Features

### Features in Default Driver Build

| CODEC | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL* |
|---|---|---|---|---|---|---|---|---|
| AVC | D/Es | D/E/Es | D/E/Es | D/E/Es | D/E/Es | D/E/Es | D/E/Es | D/E/Es |
| MPEG-2 | D/Es | D/Es | D | D/Es | D/Es | D/Es | D/Es | D/Es |
| VC-1 | D | D | D | D | D | D | D | D |
| JPEG | D | D/E | D/E | D/E | D/E | D/E | D/E | D/E |
| VP8 | D | D | D | D/Es | D/Es | D/Es | D/Es | D/Es |
| HEVC 8bit | | D/Es | D/Es | D/Es | D/Es | D/Es | D/Es | D/E/Es |
| HEVC 8bit 422 | | | | | | | | D/Es |
| HEVC 8bit 444 | | | | | | | | D/E |
| HEVC 10bit | | | D | D/Es | D/Es | D/Es | D/Es | D/E/Es |
| HEVC 10bit 422 | | | | | | | | D/Es |
| HEVC 10bit 444 | | | | | | | | D/E |
| VP9 8bit | | | D | D | D | D | D | D/E |
| VP9 8bit 444 | | | | | | | | D/E |
| VP9 10bit | | | | D | D | D | D | D/E |
| VP9 10bit 444 | | | | | | | | D/E |
\* ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).

D - HW Decoding
For more information, please refer to
* [Media Features Summary](https://github.com/intel/media-driver/blob/master/docs/media_features.md#media-features-summary)
* [Supported Decoding Output Format and Max Resolution](https://github.com/intel/media-driver/blob/master/docs/media_features.md#supported-decoding-output-format-and-max-resolution)
* [Supported Encoding Input Format and Max Resolution](https://github.com/intel/media-driver/blob/master/docs/media_features.md#supported-encoding-input-format-and-max-resolution)

E - HW Encoding, Low Power Encoding
### Video Processing Features

Es - HW + Shader Encoding
| Features | Build Types | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL |
|---|---|---|---|---|---|---|---|---|---|
| Blending | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| CSC<br>(Color Space Conversion) | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| De-interlace | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| De-noise | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> |
| Luma Key | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| Mirroring | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| ProcAmp<br>(brightness,contrast,hue,saturation) | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| Rotation | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| Scaling | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| Sharpening | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| STD/E<br>(Skin Tone Detect & Enhancement) | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> |
| TCC<br>(Total Color Control) | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> |
| Color fill | <u>Full Feature</u><br><i>Free Kernel</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| Chroma Siting | <u>Full Feature</u><br><i>Free Kernel</i> | &nbsp;<br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> | <u>Yes</u><br><i>Yes</i> |
| HDR10 Tone Mapping | <u>Full Feature</u><br><i>Free Kernel</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | &nbsp;<br><i>&nbsp;</i> | <u>Yes</u><br><i>&nbsp;</i> |

\* ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).
For more feature information, please refer to [Supported video processing csc/scaling format](https://github.com/intel/media-driver/blob/master/docs/media_features.md#supported-video-processing-cscscaling-format)


| Video Processing | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL |
|---|---|---|---|---|---|---|---|---|
| Blending | Y | Y | Y | Y | Y | Y | Y | Y |
| CSC (Color Space Conversion) | Y | Y | Y | Y | Y | Y | Y | Y |
| De-interlace | Y | Y | Y | Y | Y | Y | Y | Y |
| De-noise | Y | Y | Y | Y | Y | Y | Y | Y |
| Luma Key | Y | Y | Y | Y | Y | Y | Y | Y |
| Mirroring | Y | Y | Y | Y | Y | Y | Y | Y |
| ProcAmp (brightness,contrast,hue,saturation) | Y | Y | Y | Y | Y | Y | Y | Y |
| Rotation | Y | Y | Y | Y | Y | Y | Y | Y |
| Scaling | Y | Y | Y | Y | Y | Y | Y | Y |
| Sharpening | Y | Y | Y | Y | Y | Y | Y | Y |
| STD/E (Skin Tone Detect & Enhancement) | Y | Y | Y | Y | Y | Y | Y | Y |
| TCC (Total Color Control) | Y | Y | Y | Y | Y | Y | Y | Y |
| Color fill | Y | Y | Y | Y | Y | Y | Y | Y |
| Chroma Siting | | Y | Y | Y | Y | Y | Y | Y |
| HDR10 Tone Mapping | | | | | | | | Y |

For detail feature information, you can access [Media Features](https://github.com/intel/media-driver/blob/master/docs/media_features.md).


### Features in Open Source Build

| CODEC | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL* |
|---|---|---|---|---|---|---|---|---|
| AVC | D | D/E | D/E | D/E | D/E | D/E | D/E | D/E |
| MPEG-2 | D | D | D | D | D | D | D | D |
| VC-1 | | | | | | | | |
| JPEG | D | D/E | D/E | D/E | D/E | D/E | D/E | D/E |
| VP8 | D | D | D | D | D | D | D | D |
| HEVC 8bit | | D | D | D | D | D | D | D/E |
| HEVC 8bit 422 | | | | | | | | D |
| HEVC 8bit 444 | | | | | | | | D/E |
| HEVC 10bit | | | D | D | D | D | D | D/E |
| HEVC 10bit 422 | | | | | | | | D |
| HEVC 10bit 444 | | | | | | | | D/E |
| VP9 8bit | | | D | D | D | D | D | D/E |
| VP9 8bit 444 | | | | | | | | D/E |
| VP9 10bit | | | | D | D | D | D | D/E |
| VP9 10bit 444 | | | | | | | | D/E |

D - HW Decoding

E - HW Encoding, Low Power Encoding

\* ICL encoding is pending on i915 support on upstream, for more information, please check [Known Issues and Limitations #5](https://github.com/intel/media-driver/blob/master/README.md#known-issues-and-limitations).
### Build Options

You could follow below build options to enable these two builds.
* **Full Feature Build**: ENABLE_KERNELS=ON(Default) ENABLE_NONFREE_KERNELS=ON(Default)
* **Free Kernel Build**: ENABLE_KERNELS=ON ENABLE_NONFREE_KERNELS=OFF
* If trying to use pre-built open source kernel binaries, please add BUILD_KERNELS=OFF(Default).
* If trying to rebuild open source kernel from source code, please add BUILD_KERNELS=ON.

| Video Processing | BDW | SKL | BXT/APL | KBL | CFL | WHL | CML | ICL |
|---|---|---|---|---|---|---|---|---|
| Blending | | | | | | | | Y |
| CSC (Color Space Conversion) | | | | | | | | Y |
| De-interlace | | | | | | | | Y |
| Luma Key | | | | | | | | Y |
| Mirroring | | | | | | | | Y |
| ProcAmp (brightness,contrast,hue,saturation) | | | | | | | | Y |
| Rotation | | | | | | | | Y |
| Scaling | | | | | | | | Y |
| Sharpening | | | | | | | | Y |
| Color fill | | | | | | | | Y |
| Chroma Siting | | | | | | | | Y |


## Known Issues and Limitations

1. Intel(R) Media Driver for VAAPI is recommended to be built against gcc compiler v6.1
or later, which officially supported C++11.

2. SKL: Green or other incorrect color will be observed in output frames when using YV12/I420 as input format for csc/scaling/blending/rotation, etc. on Ubuntu 16.04 stock (with kernel 4.10). The issue can be addressed with the kernel patch: WaEnableYV12BugFixInHalfSliceChicken7 [commit 0b71cea29fc29bbd8e9dd9c641fee6bd75f6827](https://cgit.freedesktop.org/drm-tip/commit/?id=0b71cea29fc29bbd8e9dd9c641fee6bd75f68274)
2. SKL: Green or other incorrect color will be observed in output frames when using YV12/I420 as input format for csc/scaling/blending/rotation, etc. on Ubuntu 16.04 stock (with kernel 4.10). The issue can be addressed with the kernel patch: [WaEnableYV12BugFixInHalfSliceChicken7](https://cgit.freedesktop.org/drm-tip/commit/?id=0b71cea29fc29bbd8e9dd9c641fee6bd75f68274)

3. HuC firmware is needed for AVC low power encoding bitrate control, including CBR, VBR, etc. As of now, HuC firmware support is disabled in Linux kernels by default. Please, refer to i915 kernel mode driver documentation to learn how to enable it. Mind that HuC firmware support presents in the following kernels for the specified platforms:
3. HuC firmware is needed for AVC/HEVC/VP9 low power encoding bitrate control, including CBR, VBR, etc. As of now, HuC firmware support is disabled in Linux kernels by default. Please, refer to i915 kernel mode driver documentation to learn how to enable it. Mind that HuC firmware support presents in the following kernels for the specified platforms:
* APL/KBL: starting from kernel 4.11
* CFL: starting from kernel 4.15

Expand Down
Loading

0 comments on commit 9b648d8

Please sign in to comment.