diff --git a/Dotnet/Cef/CefService.cs b/Dotnet/Cef/CefService.cs index 7db2beb3..4a6fa13f 100644 --- a/Dotnet/Cef/CefService.cs +++ b/Dotnet/Cef/CefService.cs @@ -57,6 +57,11 @@ namespace VRCX { cefSettings.CefCommandLineArgs["proxy-server"] = WebApi.ProxyUrl; } + + if (VRCXStorage.Instance.Get("VRCX_DisableGpuAcceleration") == "true") + { + cefSettings.CefCommandLineArgs.Add("disable-gpu"); + } if (Program.LaunchDebug) { diff --git a/html/src/app.js b/html/src/app.js index 42c546ba..8b82eed0 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -1356,6 +1356,7 @@ speechSynthesis.getVoices(); } }); + // we don't update friend state here, it's not reliable var state = 'offline'; if (json.platform === 'web') { state = 'active'; @@ -4490,7 +4491,7 @@ speechSynthesis.getVoices(); ) { if (this.debugFriendState) { console.log( - `Fetching offline friend in an instance ${ctx.name}` + `Fetching offline friend in an instance from getCurrentUser ${ctx.name}` ); } API.getUser({ @@ -4547,7 +4548,21 @@ speechSynthesis.getVoices(); ctx.isVIP = isVIP; if (typeof ref !== 'undefined') { ctx.name = ref.displayName; + + // wtf, from getCurrentUser only, fetch user if online in offline location + if (fromGetCurrentUser && stateInput === 'online') { + if (this.debugFriendState) { + console.log( + `Fetching friend coming online from getCurrentUser ${ctx.name}` + ); + } + API.getUser({ + userId: id + }); + return; + } } + this.updateFriendDelayedCheck(ctx, location, $location_at); } }; @@ -8001,7 +8016,12 @@ speechSynthesis.getVoices(); if (!(await VRCXStorage.Get('VRCX_ProxyServer'))) { await VRCXStorage.Set('VRCX_ProxyServer', ''); } + if ((await VRCXStorage.Get('VRCX_DisableGpuAcceleration')) === '') { + await VRCXStorage.Set('VRCX_DisableGpuAcceleration', 'false'); + } $app.data.proxyServer = await VRCXStorage.Get('VRCX_ProxyServer'); + $app.data.disableGpuAcceleration = + (await VRCXStorage.Get('VRCX_DisableGpuAcceleration')) === 'true'; $app.data.disableWorldDatabase = (await VRCXStorage.Get('VRCX_DisableWorldDatabase')) === 'true'; $app.methods.saveVRCXWindowOption = async function () { @@ -8018,6 +8038,10 @@ speechSynthesis.getVoices(); 'VRCX_DisableWorldDatabase', this.disableWorldDatabase.toString() ); + VRCXStorage.Set( + 'VRCX_DisableGpuAcceleration', + this.disableGpuAcceleration.toString() + ); AppApi.SetStartup(this.isStartAtWindowsStartup); }; $app.data.photonEventOverlay = await configRepository.getBool( diff --git a/html/src/localization/en/en.json b/html/src/localization/en/en.json index 8f90c744..7c065a0e 100644 --- a/html/src/localization/en/en.json +++ b/html/src/localization/en/en.json @@ -225,6 +225,8 @@ "startup": "Start at Windows startup", "minimized": "Start minimized", "tray": "Minimize to tray when closing", + "disable_gpu_acceleration": "Disable GPU Acceleration", + "disable_gpu_acceleration_tooltip": "Only change this option if you know what you're doing, may fix issues with UI, requires restarting VRCX", "proxy": "Proxy settings" }, "favorites": { diff --git a/html/src/mixins/tabs/settings.pug b/html/src/mixins/tabs/settings.pug index a6cb311b..f80cfaca 100644 --- a/html/src/mixins/tabs/settings.pug +++ b/html/src/mixins/tabs/settings.pug @@ -83,6 +83,11 @@ mixin settingsTab() +simpleSwitch("view.settings.general.application.startup", "isStartAtWindowsStartup", "saveVRCXWindowOption") +simpleSwitch("view.settings.general.application.minimized", "isStartAsMinimizedState", "saveVRCXWindowOption") +simpleSwitch("view.settings.general.application.tray", "isCloseToTray", "saveVRCXWindowOption") + div.options-container-item + span.name {{ $t('view.settings.general.application.disable_gpu_acceleration') }} + el-tooltip(placement="top" style="margin-left:5px" :content="$t('view.settings.general.application.disable_gpu_acceleration_tooltip')") + i.el-icon-warning + el-switch(v-model="disableGpuAcceleration" @change="saveVRCXWindowOption") div.options-container-item el-button(size="small" icon="el-icon-connection" @click="promptProxySettings()") {{ $t("view.settings.general.application.proxy") }} //- General | Favorite @@ -96,6 +101,9 @@ mixin settingsTab() //- General | Game Log div.options-container span.header {{ $t('view.settings.general.logging.header') }} + div.options-container-item + span.name(style="min-width:225px") {{ $t('view.settings.advanced.advanced.cache_debug.udon_exception_logging') }} + el-switch(v-model="udonExceptionLogging" @change="saveOpenVROption") div.options-container-item span.name(style="min-width:225px") {{ $t('view.settings.general.logging.resource_load') }} el-switch(v-model="logResourceLoad" @change="saveLoggingOptions") @@ -562,7 +570,6 @@ mixin settingsTab() div.options-container span.header {{ $t('view.settings.advanced.advanced.cache_debug.header') }} br - +simpleSwitch("view.settings.advanced.advanced.cache_debug.udon_exception_logging", "udonExceptionLogging", "saveOpenVROption") div.options-container-item span.name {{ $t('view.settings.advanced.advanced.cache_debug.disable_gamelog') }} el-switch(v-model="gameLogDisabled" @change="disableGameLogDialog")