An integrated GPU remains available only when the new kernel detects it, binds the correct driver, creates render nodes, and exposes them to the workload.
After a home-server kernel update, a media app can fall back to software even though its hardware-acceleration switch remains enabled. The failure may occur at PCI detection, kernel-module binding, firmware loading, DRM device creation, VA-API initialization, device permissions, Docker mapping, or the media serverโs FFmpeg path. Verify those layers in order and compare them with the previous boot before changing application settings.
Record the New Kernel and Confirm the iGPU on the PCI Bus
Record the running kernel version, installed previous kernels, boot parameters, and the time of the update. Then list display-class PCI devices with numeric IDs and the kernel driver currently bound to the integrated GPU.
If the iGPU is absent from PCI enumeration, check firmware or BIOS settings before debugging VA-API. A server can expose only a discrete GPU when an iGPU or multi-monitor option is disabled, as shown in a case where the iGPU was hidden from Linux.
Compare the device ID and bound driver with the last known-good boot. For Intel systems this is commonly i915 or, on supported newer paths, xe; use the driver actually intended for the hardware and distribution rather than forcing a module name from another platform.
Read Kernel Logs for Driver and Firmware Initialization
Search the current boot log for the GPU driver, DRM, GuC or HuC firmware, display initialization, probe failures, timeouts, and module blacklists. Compare the same messages from the previous kernel if persistent logs are available.
A media-driver failure can occur even when the hardware is listed. An Intel issue documents VA-API initialization failing on an integrated Xe-LPG GPU after the surrounding software stack changed, demonstrating that detected hardware is not enough.
Confirm that required firmware packages still exist and that the module is not blocked by a new kernel parameter, blacklist, or secure-boot policy. Do not reinstall the media server until the host driver initializes cleanly.
Confirm That the DRM Render Node Still Exists
Inspect /dev/dri and record the major and minor numbers, owners, groups, and symlink targets for each card and render node. Do not assume the iGPU will always remain renderD128 when another GPU is present.
Hardware acceleration fails when FFmpeg targets a node that exists but no longer provides a valid VA display. A Jellyfin report shows the decisive error: no VA display for the render device.
Map the render node back to its PCI device through sysfs, then update container or application configuration only if the node identity actually changed. Avoid broad permissions such as mode 777; preserve the render-group model and verify the service accountโs membership.
Test VA-API or Quick Sync on the Host Before Docker
Run the distributionโs VA-API diagnostic against the verified render node and capture the driver name, VA-API version, supported decode profiles, encode entry points, and video-processing capabilities.
The userspace media driver must match the hardware generation and kernel interface. A solved Linux case emphasizes that kernel DRM modules and userspace DRI or VA drivers are separate layers; confusing them can leave the wrong userspace driver in place.
If host VA-API fails, compare the current media-driver and firmware packages with the pre-update versions. If host VA-API succeeds, keep the kernel and driver unchanged while moving to the container boundary.
Verify the Same Device and Groups Inside the Container
Inspect the running containerโs devices, group IDs, and access to the chosen render node. Run the media serverโs bundled VA-API diagnostic or FFmpeg build inside the container, because host success does not prove container success.
A container can receive /dev/dri/renderD128 and still fail because its process lacks the matching render-group permission. A Jellyfin container report shows that device mapping and group access must both be validated.
Compare numeric group IDs on the host and in the container, then recreate the service with explicit device and group configuration if needed. The ZimaSpace guide to checking hardware transcoding provides the next application-level proof.
Force a Small Codec Test and Watch the Actual GPU Engines
Use one known-good H.264 or HEVC sample and force a video transcode without subtitles or HDR tone mapping. Record the dashboard state, FFmpeg command, transcode speed, CPU use, and GPU decode or encode engine activity.
A media server may report hardware support but select the wrong VA-API device automatically. A Jellyfin issue documents a case where explicit device selection changed whether FFmpeg detected the acceleration path.
Test decode and encode separately when possible. If one codec fails while a basic codec works, the iGPU is available but that profile, firmware feature, driver path, or filter is unsupported. Do not label the entire GPU missing from one advanced tone-mapping failure.
Use the Previous Kernel as a Controlled Comparison
If PCI detection, render nodes, or host VA-API fail only on the new kernel, boot the previous installed kernel without changing the container image, media-server version, or userspace configuration.
A Jellyfin troubleshooting case recommends kernel reversion as the simplest discriminator when the failure is suspected to follow a kernel change. The value is a controlled kernel comparison, not treating rollback as the permanent fix.
The verification is complete when the current kernel shows the iGPU on PCI, binds the intended driver, creates the correct render node, initializes VA-API, exposes the device inside the container, and accelerates a real codec test. If only the previous kernel passes, keep it as a temporary boot option while the kernel, firmware, or media-driver regression is isolated.
Support & Tips
More to Read

Can Plex Share a GPU With Another Docker Container?
Plex and another container can often access the same GPU, but you must test driver support, device mapping, video-engine load, memory, and recovery behavior.

How to Tell Whether a Plex Error Comes From the Client or Server
Reproduce the same item on another client, compare the session path, then collect server evidence only after scope tells you where the failure actually...

How to Configure Plex Cache and Transcode Temporary Storage
Protect persistent Plex state while placing transcode temp files on suitable local storage, then verify cleanup, free space, and restart behavior.

