Skip to content

GPU video encoding is untested on Intel, AMD, Linux and macOS hardware #792

Open

Description

@thcp

What goes wrong

The GPU encoder was built and measured on NVIDIA (NVENC) on Windows. Auto is on by default. Intel QSV, AMD AMF, VAAPI on Linux and VideoToolbox on macOS have never run a real render, and the shipped Linux desktop ffmpeg has no GPU encoder at all. The check that decodes the whole GPU file afterwards costs 18 to 21 percent of the render time.

Who is affected

Every user whose graphics card is not NVIDIA, and every macOS and Linux user.

How to see it

Run python scripts/encoder_matrix.py on a Mac, an Intel or AMD PC and a Linux box with VAAPI, and compare with the CPU result. Then export a one-minute take on each with Auto.

Evidence

  • scripts/encoder_matrix.py and tests/test_encoder_matrix.py (passes here: 145 tests across four files).
  • app/pipeline/video_encoder.py:932-940 decodes the whole output with -f null.
  • Results so far are from the session: NVENC only.

Constraints for anyone fixing it

  • Platforms: Windows, macOS and Linux each ship a different ffmpeg; see .claude/skills/release for how.
  • If a code change adds a dependency, uv.lock may change, and that forces a full download for every desktop install (desktop-update-gate).
  • The result belongs in the release notes if Auto is left on.

Origin

NEW in 0.21.0 (3b101bb). Found on the big-release branch (draft pull request #784); the work is not released yet.

Possible direction

Decide whether Auto stays on for hardware that was not tested. A cheaper check (key frames only, 0.4 to 1.0 s in the earlier measurement) would remove most of the 18 to 21 percent.

Verified by

read; no hardware available in this pass.

Activity

  1. added
    bugSomething isn't working
    reliabilityStability, resource management, race conditions
    on Oct 11, 2026
  2. self-assigned this
    on Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingreliabilityStability, resource management, race conditions

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions