perf(engine): a --gpu render probes the GPU encoders once, not twice (#6638)

* perf(engine,cli): a machine's GPU encoder probe runs once, not on every render

* refactor(engine): one shared probe per process, no answer kept on disk
This commit is contained in:
Miguel Ángel
2026-10-28 08:44:28 +00:00
committed by GitHub
parent e6476c2cd5
commit 8e63faf846
6 changed files with 37 additions and 8 deletions
@@ -1,10 +1,12 @@
import { afterEach, describe, expect, it, vi } from "vitest";
import {
getCachedGpuEncoder,
getCompiledGpuEncoders,
getGpuEncoderName,
getProbeArgs,
mapPresetForGpuEncoder,
resetCachedGpuEncoder,
selectUsableGpuEncoder,
} from "./gpuEncoder.js";
@@ -146,3 +148,12 @@ describe("getProbeArgs", () => {
expect(args[args.indexOf("-allow_sw") + 1]).toBe("1");
});
});
describe("getCachedGpuEncoder", () => {
afterEach(() => resetCachedGpuEncoder());
it("is one probe however many callers ask while it runs", () => {
const first = getCachedGpuEncoder();
expect(getCachedGpuEncoder()).toBe(first);
});
});