Accelerated Video Playback: Difference between revisions

From NixOS Wiki
m (More specific category - Video)
(Fixed Broadwell year 2015 to 2014 and added a note for intel-vaapi-driver to be used instead of intel-media-driiver for Skylake if users want to prioritize browser performance.)
 
(2 intermediate revisions by 2 users not shown)
Line 5: Line 5:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
   hardware.opengl = {
   hardware.graphics = { # hardware.opengl in 24.05 and older
     enable = true;
     enable = true;
     extraPackages = with pkgs; [
     extraPackages = with pkgs; [
       intel-media-driver # For Broadwell or newer processors. LIBVA_DRIVER_NAME=iHD
       intel-media-driver # For Broadwell (2014) or newer processors. LIBVA_DRIVER_NAME=iHD
       intel-vaapi-driver # For older processors. LIBVA_DRIVER_NAME=i965
       intel-vaapi-driver # For older processors. LIBVA_DRIVER_NAME=i965
     ];
     ];
Line 15: Line 15:
}
}
</nowiki>}}
</nowiki>}}
For 32-bit support, use {{nixos:option|hardware.opengl.extraPackages32}}:
Note, <code>intel-vaapi-driver</code> still performs better for browsers (gecko/chromium based) on newer Skylake (2015) processors.<ref>https://github.com/intel/media-driver/issues/1024</ref>
 
For 32-bit support, use {{nixos:option|hardware.graphics.extraPackages32}}:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
   hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
   # hardware.opengl.extraPackages32 in 24.05
  hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
}
}
</nowiki>}}
</nowiki>}}
=== AMD ===
=== AMD ===



Latest revision as of 06:49, 27 June 2024

Accelerated video playback in NixOS is generally done by adding relevant packages to hardware.opengl.extraPackages.

Installation

Intel

 
/etc/nixos/configuration.nix
{
  hardware.graphics = { # hardware.opengl in 24.05 and older 
    enable = true;
    extraPackages = with pkgs; [
      intel-media-driver # For Broadwell (2014) or newer processors. LIBVA_DRIVER_NAME=iHD
      intel-vaapi-driver # For older processors. LIBVA_DRIVER_NAME=i965
    ];
  };
  environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Optionally, set the environment variable
}

Note, intel-vaapi-driver still performs better for browsers (gecko/chromium based) on newer Skylake (2015) processors.[1]

For 32-bit support, use hardware.graphics.extraPackages32:

 
/etc/nixos/configuration.nix
{
  # hardware.opengl.extraPackages32 in 24.05
  hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
}

AMD

AMD configuration (at least for Ryzen 5 iGPUs) works out of the box:

 
/etc/nixos/configuration.nix
{
  hardware.opengl.enable = true;
}

Testing your configuration

You can test your configuration by running: nix-shell -p libva-utils --run vainfo

See Arch Linux wiki#Hardware video acceleration for more information.

Applications

Chromium

See Chromium#Accelerated_video_playback.

Firefox

See Arch Linux wiki#Firefox.

MPV

You can place the following configuration in ~/.config/mpv/mpv.conf:

hwdec=auto-safe
vo=gpu
profile=gpu-hq
gpu-context=wayland ; On wayland only

See Arch Linux wiki#mpv.

Also see