Skip to content

[BUG] VAAPI hardware encoding fails on Intel J4125 CPU (Synology DS920+) #94

Description

@GiJOr33

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

VAAPI hardware encoding fails to initialize on an Intel J4125 (Synology DS920+) despite the GPU being detected correctly.

Selkies detects /dev/dri/renderD128 and begins initializing the VAAPI encoder, but fails with:

[Parsed_scale_vaapi_1] Failed to create processing pipeline config: 12 (the requested VAProfile is not supported).
[x11] Failed to init VAAPI: Failed to config filter graph. Falling back to CPU.

The stream then falls back to CPU encoding, resulting in approximately 10-20 FPS at 1920x1080 and making video playback (e.g. YouTube) unusably slow.

Additional troubleshooting performed: I confirmed that /dev/dri/renderD128 is accessible inside the container, the abc user is a member of the render/video group, iHD_drv_video.so is present, and LIBVA_DRIVER_NAME=iHD is set. Selkies successfully detects the Intel GPU before failing during VAAPI filter graph initialization.

Expected Behavior

The Intel Quick Sync GPU (Intel UHD 600 / J4125) should initialize successfully using VAAPI and hardware H.264 encoding instead of falling back to CPU encoding.

Steps To Reproduce

  1. Run on a Synology DS920+ (Intel Celeron J4125 / Intel UHD 600).
  2. Pass through:
    /dev/dri/card0
    /dev/dri/renderD128
  3. Start the latest linuxserver/firefox container.
  4. Connect to the browser.
  5. Observe the container log showing:

[x11] AUTO_GPU enabled. Selected: /dev/dri/renderD128
[x11] Initializing Unified VAAPI Encoder...
[Parsed_scale_vaapi_1] Failed to create processing pipeline config: 12 (the requested VAProfile is not supported).
[Parsed_scale_vaapi_1] Failed to configure output pad on Parsed_scale_vaapi_1
[x11] Failed to init VAAPI: Failed to config filter graph. Falling back to CPU.

The stream then reports:

[x11] Stream settings active -> Encoder: CPU

Environment

OS: Synology DSM 7.2.2-72806 Update 2

How docker service was installed:
Synology Container Manager (Docker)

CPU architecture:
x86_64

CPU:
Intel Celeron J4125

CPU architecture

x86-64

Docker creation

services:
  firefox:
    image: lscr.io/linuxserver/firefox:latest
    container_name: firefox
    security_opt:
      - seccomp:unconfined
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Australia/Melbourne
      - HTTP_PROXY=http://localhost:8888
      - HTTPS_PROXY=https://localhost:8888
      - DRINODE=/dev/dri/renderD128
      - DRI_NODE=/dev/dri/renderD128
      - AUTO_GPU=true
      - PIXELFLUX_WAYLAND=true
      - LIBVA_DRIVER_NAME=iHD
      - SELKIES_ENCODER=x264enc
    volumes:
      - /volume3/docker/firefox:/config
    shm_size: "2gb"
    network_mode: "container:gluetun"
    restart: unless-stopped

Container logs

Relevant section of the log:

[x11] AUTO_GPU enabled. Selected: /dev/dri/renderD128
[x11] Initializing Unified VAAPI Encoder...
[h264_vaapi] Slice count rounded up due to driver constraints.
[Parsed_scale_vaapi_1] Failed to create processing pipeline config: 12 (the requested VAProfile is not supported).
[Parsed_scale_vaapi_1] Failed to configure output pad on Parsed_scale_vaapi_1
[x11] Failed to init VAAPI: Failed to config filter graph. Falling back to CPU.
[x11] Stream settings active -> Encoder: CPU

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions