-
Notifications
You must be signed in to change notification settings - Fork 0
Media Driver Shaders (EU Kernels)
Binary kernel | Sources |
---|---|
media_driver/agnostic/gen8/codec/kernel/igcodeckrn_g8.c | Closed source |
media_driver/agnostic/gen9/codec/kernel/igcodeckrn_g9.c | Closed source |
media_driver/agnostic/gen9_bxt/codec/kernel/igcodeckrn_g9_bxt.c | Closed source |
media_driver/agnostic/gen9_kbl/codec/kernel/igcodeckrn_g9_kbl.c | Closed source |
media_driver/agnostic/gen10/codec/kernel/igcodeckrn_g10.c | Closed source |
media_driver/agnostic/gen11/codec/kernel/igcodeckrn_g11.c | Closed source |
media_driver/agnostic/gen11_icllp/codec/kernel/igcodeckrn_g11_icllp.c | Closed source |
The following kernels support a range of features for Gen9 Skylake platform:
- AVC Multi Frame Encoding (MFE)
- AVC FEI encoding
- HEVC encoding
- HEVC FEI encoding
Binary kernel | Sources |
---|---|
media_driver/agnostic/gen9_skl/codec/cmrt_kernel/*.cpp | Closed source |
Binary kernel | Sources |
---|---|
media_driver/agnostic/gen8/vp/kernel/igvpkrn_g8.c | Closed source |
media_driver/agnostic/gen9/vp/kernel/igvpkrn_g9.c | Closed source |
media_driver/agnostic/gen9/vp/kernel/igvpkrn_isa_g9.c | Closed source |
media_driver/agnostic/gen10/vp/kernel/igvpkrn_g10.c | Closed source |
media_driver/agnostic/gen11_icllp/vp/kernel/igvpkrn_g11_icllp.c | Open source (here) |
media_driver/agnostic/gen11_icllp/vp/kernel/igvpkrn_isa_g11_icllp.c | Closed source |
High Dynamic Range (HDR) shaders:
Binary kernel | Sources |
---|---|
media_driver/agnostic/gen11_icllp/vp/kernel/igvpkrn_isa_g11_icllp.c | Closed source |
Human Vision System (HVS) Noise Reduction shaders:
Binary kernel | Sources |
---|---|
media_driver/agnostic/gen9/vp/kernel/igvpkrn_isa_g9.c | Closed source |
GPU copy shaders provides a way to accelerate video memory copy operations and avoid some drawbacks associated with copy from system to video memory:
Binary kernel | Sources |
---|---|
media_driver/agnostic/gen8/cm/cm_gpucopy_kernel_g8.h | Closed source |
media_driver/agnostic/gen9/cm/cm_gpucopy_kernel_g9.h | Closed source |
media_driver/agnostic/gen10/cm/cm_gpucopy_kernel_g10.h | Closed source |
media_driver/agnostic/gen11/cm/cm_gpucopy_kernel_g11lp.h | Closed source |
GPU init(?) shaders:
Binary kernel | Sources |
---|---|
media_driver/agnostic/gen8/cm/cm_gpuinit_kernel_g8.h | Closed source |
media_driver/agnostic/gen9/cm/cm_gpuinit_kernel_g9.h | Closed source |
media_driver/agnostic/gen10/cm/cm_gpuinit_kernel_g10.h | Closed source |
media_driver/agnostic/gen11/cm/cm_gpuinit_kernel_g11lp.h | Closed source |
To disable shaders at compile time, configure build with the option -DENABLE_KERNELS=OFF, i.e.:
cmake -DENABLE_KERNELS=OFF /path/to/media/driver
If one wish it is possible to physically remove shaders from sources to make sure they don't end up in the build. Please, refer to the following script:
# Delete (X=8, 9, …):
# - media_driver/agnostic/gen${X}/codec/kernel
# - media_driver/agnostic/gen${X}/vp/kernel
find . -name kernel | grep gen | xargs git rm -r
# Delete (X=8, 9, …):
# - media_driver/agnostic/gen${X}/cm/cm_gpucopy_kernel_g${X}.h
find . -name cm_gpucopy_kernel* | xargs git rm
# Delete:
# - media_driver/agnostic/gen9_skl/codec/cmrt_kernel
find . -name cmrt_kernel | xargs git rm -r
Mind that if folders like media_driver/agnostic/gen${X}
will be removed, driver will completely lost support for the specified platform.
To build driver with only open sources shaders, configure build with the option -DENABLE_KERNELS=ON -DENABLE_NONFREE_KERNELS=OFF, i.e.:
cmake -DENABLE_KERNELS=ON -DENABLE_NONFREE_KERNELS=OFF /path/to/media/driver
If one wish it is possible to physically remove closed source shaders from sources to make sure they don't end up in the build. Please, refer to the following script:
# Delete (X=8, 9, …):
# - media_driver/agnostic/gen${X}/codec/kernel
# - media_driver/agnostic/gen${X}/vp/kernel
# except:
# - media_driver/agnostic/gen11_icllp/vp/kernel
find . -name kernel | grep gen | grep -v gen11_icllp/vp | xargs git rm -r
# Delete (X=8, 9, …):
# - media_driver/agnostic/gen${X}/cm/cm_gpucopy_kernel_g${X}.h
find . -name cm_gpucopy_kernel* | xargs git rm
# Delete:
# - media_driver/agnostic/gen9_skl/codec/cmrt_kernel
find . -name cmrt_kernel | xargs git rm -r
It is possible to rebuild shaders from sources. For that you need to have Intel Graphics Compiler (IGC) and CM Compiler (CMC) installed:
As of now there are issues around proper installation of these packages on the system:
- https://github.com/intel/intel-graphics-compiler/issues/31
- https://github.com/intel/intel-graphics-compiler/issues/33
- https://github.com/intel/intel-graphics-compiler/issues/35
- https://github.com/intel/intel-graphics-compiler/issues/36
Pay attention on issue #36: IGA (Intel Graphics Accembler) will be missing from the IGC build and it is required for VP shaders build. To build IGA manually:
git clone https://github.com/intel/intel-graphics-compiler.git igc
cd igc/visa/iga
mkdir build && cd build
cmake ..
make
ln -s IGAExe/iga64 /path/to/install/bin
Once that will be done, please, make sure that iga64, GenX_IR and cmc are available in the PATH and configure driver as follows:
cmake -DENABLE_KERNELS=ON -DENABLE_NONFREE_KERNELS=OFF -DBUILD_KERNELS=ON /path/to/media/driver
To build driver with closed sources shaders, configure build with the option -DENABLE_KERNELS=ON -DENABLE_NONFREE_KERNELS=ON, i.e.:
cmake -DENABLE_KERNELS=ON -DENABLE_NONFREE_KERNELS=ON /path/to/media/driver