Commit 7df3e9ec authored by David McFarland's avatar David McFarland
Browse files

nixos/doc/manual: add chapter on VA-API

parent 1c9ffcf7
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -159,6 +159,40 @@ environment.variables.VK_ICD_FILENAMES =
  "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
```

## VA-API {#sec-gpu-accel-va-api}

[VA-API (Video Acceleration API)](https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html)
is an open-source library and API specification, which provides access to
graphics hardware acceleration capabilities for video processing.

VA-API drivers are loaded by `libva`. The version in nixpkgs is built to search
the opengl driver path, so drivers can be installed in
[](#opt-hardware.opengl.extraPackages).

VA-API can be tested using:

```ShellSession
$ nix-shell -p libva-utils --run vainfo
```

### Intel {#sec-gpu-accel-va-api-intel}

Modern Intel GPUs use the iHD driver, which can be installed with:

```nix
hardware.opengl.extraPackages = [
  intel-media-driver
];
```

Older Intel GPUs use the i965 driver, which can be installed with:

```nix
hardware.opengl.extraPackages = [
  vaapiIntel
];
```

## Common issues {#sec-gpu-accel-common-issues}

### User permissions {#sec-gpu-accel-common-issues-permissions}
+42 −0
Original line number Diff line number Diff line
@@ -177,6 +177,48 @@ environment.variables.AMD_VULKAN_ICD = "RADV";
# Or
environment.variables.VK_ICD_FILENAMES =
  "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
</programlisting>
    </section>
  </section>
  <section xml:id="sec-gpu-accel-va-api">
    <title>VA-API</title>
    <para>
      <link xlink:href="https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html">VA-API
      (Video Acceleration API)</link> is an open-source library and API
      specification, which provides access to graphics hardware
      acceleration capabilities for video processing.
    </para>
    <para>
      VA-API drivers are loaded by <literal>libva</literal>. The version
      in nixpkgs is built to search the opengl driver path, so drivers
      can be installed in
      <xref linkend="opt-hardware.opengl.extraPackages" />.
    </para>
    <para>
      VA-API can be tested using:
    </para>
    <programlisting>
$ nix-shell -p libva-utils --run vainfo
</programlisting>
    <section xml:id="sec-gpu-accel-va-api-intel">
      <title>Intel</title>
      <para>
        Modern Intel GPUs use the iHD driver, which can be installed
        with:
      </para>
      <programlisting language="bash">
hardware.opengl.extraPackages = [
  intel-media-driver
];
</programlisting>
      <para>
        Older Intel GPUs use the i965 driver, which can be installed
        with:
      </para>
      <programlisting language="bash">
hardware.opengl.extraPackages = [
  vaapiIntel
];
</programlisting>
    </section>
  </section>