Hide WebGPU renderer behind EnableWebGPURenderer flag

This commit is contained in:
redphx
2025-02-04 19:29:43 +07:00
parent 7894dea5ff
commit 664e865b82
7 changed files with 24 additions and 18 deletions

View File

@@ -2,6 +2,7 @@ import wgslClarityBoost from "./shaders/clarity-boost.wgsl" with { type: "text"
import { BaseCanvasPlayer } from "../base-canvas-player";
import { StreamPlayerType } from "@/enums/pref-values";
import { BxEventBus } from "@/utils/bx-event-bus";
import { BX_FLAGS } from "@/utils/bx-flags";
export class WebGPUPlayer extends BaseCanvasPlayer {
static device: GPUDevice;
@@ -15,7 +16,7 @@ export class WebGPUPlayer extends BaseCanvasPlayer {
vertexBuffer!: GPUBuffer | null;
static async prepare(): Promise<void> {
if (!navigator.gpu) {
if (!BX_FLAGS.EnableWebGPURenderer || !navigator.gpu) {
BxEventBus.Script.emit('webgpu.ready', {});
return;
}

View File

@@ -128,7 +128,7 @@ export class StreamPlayerManager {
this.$video.classList.remove(videoClass);
} else {
// Switch from Video -> Canvas
if (type === StreamPlayerType.WEBGPU) {
if (BX_FLAGS.EnableWebGPURenderer && type === StreamPlayerType.WEBGPU) {
this.canvasPlayer = new WebGPUPlayer(this.$video);
} else {
this.canvasPlayer = new WebGL2Player(this.$video);

View File

@@ -178,6 +178,8 @@ type BxFlags = {
EnableXcloudLogging: boolean;
SafariWorkaround: boolean;
EnableWebGPURenderer: boolean;
ForceNativeMkbTitles: string[];
FeatureGates: { [key: string]: boolean } | null,

View File

@@ -8,6 +8,8 @@ const DEFAULT_FLAGS: BxFlags = {
EnableXcloudLogging: false,
SafariWorkaround: true,
EnableWebGPURenderer: false,
ForceNativeMkbTitles: [],
FeatureGates: null,

View File

@@ -14,6 +14,7 @@ import { ControllerCustomizationDefaultPresetId } from "../local-db/controller-c
import { ControllerShortcutDefaultId } from "../local-db/controller-shortcuts-table";
import { BxEventBus } from "../bx-event-bus";
import { WebGPUPlayer } from "@/modules/player/webgpu/webgpu-player";
import { BX_FLAGS } from "../bx-flags";
export class StreamSettingsStorage extends BaseSettingsStorage<StreamPref> {
@@ -160,12 +161,11 @@ export class StreamSettingsStorage extends BaseSettingsStorage<StreamPref> {
},
ready: (setting: any) => {
BxEventBus.Script.on('webgpu.ready', () => {
if (!navigator.gpu || !WebGPUPlayer.device) {
// Remove WebGPU option on unsupported browsers
delete setting.options[StreamPlayerType.WEBGPU];
}
if (!WebGPUPlayer.device) {
// Remove WebGPU option on unsupported browsers
delete setting.options[StreamPlayerType.WEBGPU];
}
);
});
},
},
[StreamPref.VIDEO_PROCESSING]: {