diff --git a/nixos/doc/manual/configuration/configuration.xml b/nixos/doc/manual/configuration/configuration.xml
index 507d28814ea..6eb8f50baca 100644
--- a/nixos/doc/manual/configuration/configuration.xml
+++ b/nixos/doc/manual/configuration/configuration.xml
@@ -18,6 +18,7 @@
+
diff --git a/nixos/doc/manual/configuration/gpu-accel.xml b/nixos/doc/manual/configuration/gpu-accel.xml
new file mode 100644
index 00000000000..61229390d07
--- /dev/null
+++ b/nixos/doc/manual/configuration/gpu-accel.xml
@@ -0,0 +1,104 @@
+
+ GPU acceleration
+
+
+ NixOS provides various APIs that benefit from GPU hardware
+ acceleration, such as VA-API and VDPAU for video playback; OpenGL and
+ Vulkan for 3D graphics; and OpenCL for general-purpose computing.
+ This chapter describes how to set up GPU hardware acceleration (as far
+ as this is not done automatically) and how to verify that hardware
+ acceleration is indeed used.
+
+
+
+ Most of the aforementioned APIs are agnostic with regards to which
+ display server is used. Consequently, these instructions should apply
+ both to the X Window System and Wayland compositors.
+
+
+
+ OpenCL
+
+
+ OpenCL is a
+ general compute API. It is used by various applications such as
+ Blender and Darktable to accelerate certain operations.
+
+
+
+ OpenCL applications load drivers through the Installable Client
+ Driver (ICD) mechanism. In this mechanism, an ICD file
+ specifies the path to the OpenCL driver for a particular GPU family.
+ In NixOS, there are two ways to make ICD files visible to the ICD
+ loader. The first is through the OCL_ICD_VENDORS
+ environment variable. This variable can contain a directory which
+ is scanned by the ICL loader for ICD files. For example:
+
+ $ export \
+ OCL_ICD_VENDORS=`nix-build '<nixpkgs>' --no-out-link -A rocm-opencl-icd`/etc/OpenCL/vendors/
+
+
+
+ The second mechanism is to add the OpenCL driver package to
+ . This links the
+ ICD file under /run/opengl-driver, where it will
+ be visible to the ICD loader.
+
+
+
+ The proper installation of OpenCL drivers can be verified through
+ the clinfo command of the clinfo
+ package. This command will report the number of hardware devides
+ that is found and give detailed information for each device:
+
+
+ $ clinfo | head -n3
+Number of platforms 1
+Platform Name AMD Accelerated Parallel Processing
+Platform Vendor Advanced Micro Devices, Inc.
+
+
+ AMD
+
+
+ Modern AMD Graphics
+ Core Next (GCN) GPUs are supported through the
+ rocm-opencl-icd package. Adding this package to
+ enables OpenCL
+ support. However, OpenCL Image support is provided through the
+ non-free rocm-runtime-ext package. This package can
+ be added to the same configuration option, but requires that
+ allowUnfree option is is enabled for nixpkgs. Full
+ OpenCL support on supported AMD GPUs is thus enabled as follows:
+
+ = [
+ rocm-opencl-icd
+ rocm-runtime-ext
+];
+
+
+
+ It is also possible to use the OpenCL Image extension without a
+ system-wide installation of the rocm-runtime-ext
+ package by setting the ROCR_EXT_DIR environment
+ variable to the directory that contains the extension:
+
+ $ export \
+ROCR_EXT_DIR=`nix-build '<nixpkgs>' --no-out-link -A rocm-runtime-ext`/lib/rocm-runtime-ext
+
+
+
+ With either approach, you can verify that OpenCL Image support
+ is indeed working with the clinfo command:
+
+ $ clinfo | grep Image
+ Image support Yes
+
+
+
+