glfs/multimedia/libdriv/intel-media.xml
2023-10-31 12:37:33 -05:00

257 lines
8.0 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!--<!ENTITY intel-media-driver-version "23.2.4">-->
<!ENTITY intel-media-download-http "https://github.com/intel/media-driver/archive/refs/tags/intel-media-&intel-media-version;.tar.gz">
<!ENTITY intel-media-download-ftp " ">
<!ENTITY intel-media-md5sum "c6402e7ddcdc17972ffd5e07068412b3">
<!ENTITY intel-media-size "27 MB">
<!ENTITY intel-media-buildsize "2.5 GB (359 MB installed)">
<!ENTITY intel-media-time "6.0 SBU (with parallelism=4)">
]>
<sect1 id="intel-media" xreflabel="intel-media-&intel-media-version;">
<?dbhtml filename="intel-media.html"?>
<sect1info>
<date>$Date$</date>
</sect1info>
<title>intel-media-&intel-media-version;</title>
<indexterm zone="intel-media">
<primary sortas="a-intel-media">intel-media</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to intel-media</title>
<para>
The <application>intel-media</application> package provides a
VA API driver for Intel GPUs that are provided with Broadwell CPUs and
higher. This includes support for a variety of codecs.
</para>
&lfs120_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&intel-media-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&intel-media-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &intel-media-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &intel-media-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &intel-media-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &intel-media-time;
</para>
</listitem>
</itemizedlist>
<!--
<bridgehead renderas="sect2">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Required patch:
<ulink url="&patch-root;/intel-media-&intel-media-version;-upstream_fixes-1.patch"/>
</para>
</listitem>
</itemizedlist>
-->
<note>
<para>
The tarball <filename>intel-media-&intel-media-version;.tar.gz</filename>
will extract to the directory
<filename class="directory">media-driver-intel-media-&intel-media-version;</filename>.
</para>
</note>
<bridgehead renderas="sect3">intel-media Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="cmake"/>,
<xref linkend="intel-gmmlib"/>,
<xref linkend="libva"/>, and
<xref linkend="xorg-env"/>
</para>
</sect2>
<sect2 role="kernel" id='intel-media-kernel'>
<title>Kernel Configuration</title>
<para>
Enable the following options in the kernel configuration.
Recompile the kernel if necessary:
</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="intel-media-kernel.xml"/>
<indexterm zone="intel-media intel-media-kernel">
<primary sortas="d-intel-media">intel-media</primary>
</indexterm>
</sect2>
<!-- TODO: It's said Gen9+ (Skylake or later) may need some firmware files. -->
<sect2 role="installation">
<title>Installation of intel-media</title>
<note>
<para>
This package takes a long time to build because it compiles code
specific to each individual generation of Intel GPUs and for a
variety of media codecs.
</para>
<!-- This reduce the size of iHD_drv_video.so from 319M to 157M
for me. -->
<!-- It seems ARL depends on MTL. We need to review once an Arrow
Lake CPU is launched. -->
<!-- Support for ARL is completely broken, needs to be turned off to
complete the build -->
<para>
If you know the model of your Intel GPU, you can pass the
<option>-D{GEN{8,9,10,11,12},MTL,ARL}=OFF</option> option to the
<command>cmake</command> command but leaving the option for your
GPU out. Note that the <quote>GEN</quote> number here is the
generation of the GPU, not the CPU. For example, with an Intel
Core i7-1065G7 CPU shipping a 11th-generation Intel GPU, the
<option>-D{GEN{8,9,10,12},MTL,ARL}=OFF</option> option can be used
so the code specific to the other generations of Intel GPUs won't
be built.
</para>
</note>
<!--
<para>
First, fix a few build failures with GCC-13:
</para>
<screen><userinput remap="pre">patch -Np1 -i ../intel-media-&intel-media-version;-upstream_fixes-1.patch</userinput></screen>
-->
<para>
Install <application>intel-media</application> by running the
following commands:
</para>
<screen><userinput>mkdir build &amp;&amp;
cd build &amp;&amp;
cmake -DCMAKE_INSTALL_PREFIX=$XORG_PREFIX \
-DINSTALL_DRIVER_SYSCONF=OFF \
-DBUILD_TYPE=Release \
-Wno-dev .. &amp;&amp;
make</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
</sect2>
<!-- As of Oct 1 2023, the build is broken if MTL and ARL are turned on
hopefully this is fixed by the time they launch, in which
case we can remove the option and this section [rahul] -->
<!-- As of October 31st, 2023, the build seems to be functional again! This
is with version 23.4.0. [renodr]
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>-D{MTL,ARL}=OFF</parameter>: As of October 2023,
Meteor Lake and Arrow Lake iGPU support is broken but still
in intel-media. The build fails if support for either iGPU
is turned on. Since both of these have not been officially
released yet, it is safe to turn support for them off.
</para>
</sect2>
-->
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Drivers</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
None
</seg>
<seg>
libigfxcmrt.so
</seg>
<seg>
iHD_drv_video.so
</seg>
<seg>
/usr/include/igfxcmrt
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect2">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="libigfxcmrt">
<term><filename class="libraryfile">libigfxcmrt.so</filename></term>
<listitem>
<para>
provides API functions which allow running GPU kernels on the
render engine
</para>
<indexterm zone="intel-media libigfxcmrt">
<primary sortas="c-libigfxcmrt">libigfxcmrt.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>