mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-24 06:46:09 +00:00
68 lines
1.7 KiB
TypeScript
68 lines
1.7 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { getGpuSwitches, shouldForceLinuxEgl } from "./gpuSwitches";
|
|
|
|
describe("shouldForceLinuxEgl", () => {
|
|
it("does not force EGL in a Wayland session", () => {
|
|
expect(
|
|
shouldForceLinuxEgl({
|
|
XDG_SESSION_TYPE: "wayland",
|
|
WAYLAND_DISPLAY: "wayland-0",
|
|
}),
|
|
).toBe(false);
|
|
});
|
|
|
|
it("does not force EGL when Wayland is explicitly requested via Ozone", () => {
|
|
expect(
|
|
shouldForceLinuxEgl({
|
|
OZONE_PLATFORM: "wayland",
|
|
XDG_SESSION_TYPE: "x11",
|
|
}),
|
|
).toBe(false);
|
|
});
|
|
|
|
it("falls back to Electron's ozone hint when OZONE_PLATFORM is invalid", () => {
|
|
expect(
|
|
shouldForceLinuxEgl({
|
|
OZONE_PLATFORM: "auto",
|
|
ELECTRON_OZONE_PLATFORM_HINT: "wayland",
|
|
XDG_SESSION_TYPE: "x11",
|
|
}),
|
|
).toBe(false);
|
|
});
|
|
|
|
it("forces EGL in an X11 session", () => {
|
|
expect(shouldForceLinuxEgl({ XDG_SESSION_TYPE: "x11" })).toBe(true);
|
|
});
|
|
|
|
it("forces EGL when x11 is explicitly requested via Electron's ozone hint", () => {
|
|
expect(
|
|
shouldForceLinuxEgl({
|
|
ELECTRON_OZONE_PLATFORM_HINT: "x11",
|
|
WAYLAND_DISPLAY: "wayland-0",
|
|
}),
|
|
).toBe(true);
|
|
});
|
|
});
|
|
|
|
describe("getGpuSwitches", () => {
|
|
it("returns the Linux VAAPI workaround without forcing EGL on Wayland", () => {
|
|
expect(
|
|
getGpuSwitches("linux", {
|
|
XDG_SESSION_TYPE: "wayland",
|
|
WAYLAND_DISPLAY: "wayland-0",
|
|
}),
|
|
).toEqual({
|
|
useGl: undefined,
|
|
disableFeatures: ["VaapiVideoDecoder", "VaapiVideoEncoder"],
|
|
});
|
|
});
|
|
|
|
it("returns the X11 EGL workaround on Linux X11", () => {
|
|
expect(getGpuSwitches("linux", { XDG_SESSION_TYPE: "x11" })).toEqual({
|
|
useGl: "egl",
|
|
disableFeatures: ["VaapiVideoDecoder", "VaapiVideoEncoder"],
|
|
});
|
|
});
|
|
});
|