mirror of
https://github.com/redphx/better-xcloud.git
synced 2025-06-06 07:37:19 +02:00
Hide WebGPU renderer behind EnableWebGPURenderer flag
This commit is contained in:
parent
7894dea5ff
commit
664e865b82
11
dist/better-xcloud.pretty.user.js
vendored
11
dist/better-xcloud.pretty.user.js
vendored
@ -1,7 +1,7 @@
|
||||
// ==UserScript==
|
||||
// @name Better xCloud
|
||||
// @namespace https://github.com/redphx
|
||||
// @version 6.4.0-beta
|
||||
// @version 6.4.0-beta-2
|
||||
// @description Improve Xbox Cloud Gaming (xCloud) experience
|
||||
// @author redphx
|
||||
// @license MIT
|
||||
@ -28,6 +28,7 @@ var DEFAULT_FLAGS = {
|
||||
CheckForUpdate: !0,
|
||||
EnableXcloudLogging: !1,
|
||||
SafariWorkaround: !0,
|
||||
EnableWebGPURenderer: !1,
|
||||
ForceNativeMkbTitles: [],
|
||||
FeatureGates: null,
|
||||
DeviceInfo: {
|
||||
@ -190,7 +191,7 @@ class UserAgent {
|
||||
});
|
||||
}
|
||||
}
|
||||
var SCRIPT_VERSION = "6.4.0-beta", SCRIPT_VARIANT = "full", AppInterface = window.AppInterface;
|
||||
var SCRIPT_VERSION = "6.4.0-beta-2", SCRIPT_VARIANT = "full", AppInterface = window.AppInterface;
|
||||
UserAgent.init();
|
||||
var userAgent = window.navigator.userAgent.toLowerCase(), isTv = userAgent.includes("smart-tv") || userAgent.includes("smarttv") || /\baft.*\b/.test(userAgent), isVr = window.navigator.userAgent.includes("VR") && window.navigator.userAgent.includes("OculusBrowser"), browserHasTouchSupport = "ontouchstart" in window || navigator.maxTouchPoints > 0, userAgentHasTouchSupport = !isTv && !isVr && browserHasTouchSupport, STATES = {
|
||||
supportedRegion: !0,
|
||||
@ -2190,7 +2191,7 @@ class WebGPUPlayer extends BaseCanvasPlayer {
|
||||
paramsBuffer;
|
||||
vertexBuffer;
|
||||
static async prepare() {
|
||||
if (!navigator.gpu) {
|
||||
if (!BX_FLAGS.EnableWebGPURenderer || !navigator.gpu) {
|
||||
BxEventBus.Script.emit("webgpu.ready", {});
|
||||
return;
|
||||
}
|
||||
@ -2422,7 +2423,7 @@ class StreamSettingsStorage extends BaseSettingsStorage {
|
||||
},
|
||||
ready: (setting) => {
|
||||
BxEventBus.Script.on("webgpu.ready", () => {
|
||||
if (!navigator.gpu || !WebGPUPlayer.device) delete setting.options["webgpu"];
|
||||
if (!WebGPUPlayer.device) delete setting.options["webgpu"];
|
||||
});
|
||||
}
|
||||
},
|
||||
@ -9628,7 +9629,7 @@ class StreamPlayerManager {
|
||||
let videoClass = BX_FLAGS.DeviceInfo.deviceType === "android-tv" ? "bx-pixel" : "bx-gone";
|
||||
if (this.cleanUpCanvasPlayer(), type === "default") this.$video.classList.remove(videoClass);
|
||||
else {
|
||||
if (type === "webgpu") this.canvasPlayer = new WebGPUPlayer(this.$video);
|
||||
if (BX_FLAGS.EnableWebGPURenderer && type === "webgpu") this.canvasPlayer = new WebGPUPlayer(this.$video);
|
||||
else this.canvasPlayer = new WebGL2Player(this.$video);
|
||||
this.canvasPlayer.init(), this.videoPlayer.clearFilters(), this.$video.classList.add(videoClass);
|
||||
}
|
||||
|
12
dist/better-xcloud.user.js
vendored
12
dist/better-xcloud.user.js
vendored
File diff suppressed because one or more lines are too long
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
2
src/types/index.d.ts
vendored
2
src/types/index.d.ts
vendored
@ -178,6 +178,8 @@ type BxFlags = {
|
||||
EnableXcloudLogging: boolean;
|
||||
SafariWorkaround: boolean;
|
||||
|
||||
EnableWebGPURenderer: boolean;
|
||||
|
||||
ForceNativeMkbTitles: string[];
|
||||
FeatureGates: { [key: string]: boolean } | null,
|
||||
|
||||
|
@ -8,6 +8,8 @@ const DEFAULT_FLAGS: BxFlags = {
|
||||
EnableXcloudLogging: false,
|
||||
SafariWorkaround: true,
|
||||
|
||||
EnableWebGPURenderer: false,
|
||||
|
||||
ForceNativeMkbTitles: [],
|
||||
FeatureGates: null,
|
||||
|
||||
|
@ -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]: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user