vrcx-team / VRCX

Friendship management tool for VRChat
MIT License
1.03k stars 187 forks source link

20230218 Release not loading properly on Windows 10 #485

Closed JABarrett85 closed 1 year ago

JABarrett85 commented 1 year ago

After upgrading to the newly released 20230218 version it fails to load properly on Windows 10, instead showing what is seen in the attached screenshot. Downgrading to the 20221230 version restores functionality.

VRCX Problem

Rebooting the PC did not resolve the issue, I have also uninstalled and re-installed VRCX a few times without effect. Until this is fixed I cannot upgrade from 20221230

GroovyTeacup commented 1 year ago

Try checking the devtools console and see if there's any errors there; If the window still receives inputs you can press Ctrl+Shift+I to bring it up or right click the tray icon to do the same. image

Usually Cef does this when index.html doesn't load properly, which could be a result of a change that was made to how it was being loaded. Not sure why this would happen now though...

Where do you have VRCX installed? This (might) affect it. Are there any errors in the console? If so, please screenshot or copy/paste them; That would help understand what this is. If you start VRCX.exe straight from the program folder and not through a shortcut, does it still do this?

JABarrett85 commented 1 year ago

Thanks for the quick response, I've just upgraded again and tried accessing the devtools console however even that doesn't load, a pure white window appears but that is all. I have it installed to the default location - C:\Program Files\VRCX - I've also tried launching VRCX.exe directly from the program folder but the result is the same.

I'm not experiencing this issue on a Windows 11 PC I have, only on my main PC which is Windows 10.

Myrkie commented 1 year ago

Thanks for the quick response, I've just upgraded again and tried accessing the devtools console however even that doesn't load, a pure white window appears but that is all. I have it installed to the default location - C:\Program Files\VRCX - I've also tried launching VRCX.exe directly from the program folder but the result is the same.

I'm not experiencing this issue on a Windows 11 PC I have, only on my main PC which is Windows 10.

a pure white window appearing usually can refer to a corrupted SQLite Database or the absence of the "html" folder in the installation directory, please try copying %AppData%\..\Roaming\VRCXto your desktop for backup and then deleting the folder and relaunching VRCX, if this is the case your SQLite library has become corrupted and has to be recovered.

JABarrett85 commented 1 year ago

I just tried backing up and then deleting the original VRCX AppData folder but the issue remains the same.

Myrkie commented 1 year ago

do you still get the issue if you run vrcx as administrator? it could be related to a permissions problem with newly added features.

you can also try installing the NIGHTLY branch from vrcx downgrade to a version that is not broken and try running the vrcx updater from the settings tab and install the latest nightly 2023-02-17 and see if the issue persists on the nightly builds

JABarrett85 commented 1 year ago

I tested running as administrator and it made no difference, the issue persisted. I installed the latest nightly build and the issue also persisted. To assist with troubleshooting I iterated back through the nightly builds to find out when the issue stared, the last successfully running version is 2023-01-17T09.16-b289b35, anything from 2023-01-22T08.39-1322626 onwards fails to load properly.

Myrkie commented 1 year ago

not sure what could be causing that, might have something to do with the upgrade to Cef 110

Myrkie commented 1 year ago

it could also have something to do with the .net dependancies update that was made over at the nightly build before being pushed to main update deps

GroovyTeacup commented 1 year ago

Try this build and see if it loads up; This reverts the Cef upgrade. https://github.com/GroovyTeacup/VRCX/releases/tag/bugtest

Myrkie commented 1 year ago

damn beat me to it xd

JABarrett85 commented 1 year ago

Things I've done since the last message:

Installed the latest .Net 7.0 SDK - No fix Installed the latest .Net 6.0 SDK - No fix Installed the latest VC runtime pack - No fix Updated my browsers to the latest version (110.0) - No fix

I tried the Cef revert build but that still fails with the same problem.

Myrkie commented 1 year ago

then it might be related towards the .net update as that was the last commit pushed before 2023-01-22T08.39-1322626 was released onto nightly 2023-01-22T08.39-1322626

JABarrett85 commented 1 year ago

One quick update - while testing for possible issues the app announced friend status/world changes (I had TTS notifications turned on) and the Windows toast notifications also appeared. It seems that the app is running the tracking it is supposed to, it is just the window itself that is failing to show anything.

Myrkie commented 1 year ago

could possibly be related to NPM aswell, as the node package manager also had updated dependencies before the versions that fail to load, have you tried downloading the vrcx installer and reinstalling it to a different location such as your desktop?

GroovyTeacup commented 1 year ago

That they're receiving notifications is odd; I had assumed CefSharp was just failing to load the webpack at all for some reason, but apparently it has loaded index.html and the app JS otherwise it couldn't trigger any notifications like that.

JABarrett85 commented 1 year ago

I just tried uninstalling and then re-installing to a different location and it didn't resolve the issue. I noticed when running a compare between the last working nightly build and the first nightly build where it breaks that the last working build had Cef version of 107.1.120 (https://github.com/Natsumi-sama/VRCX/compare/2023-01-17T09.16-b289b35...2023-01-22T08.39-1322626) - the revert version you provided before still had 109.1.110 (same as the broken version according to the compare)

GroovyTeacup commented 1 year ago

Ahhh, it looks like I reverted the wrong commit; There was another upgrade after that I got it confused with. That's probably it; Lemme make another build real quick. Sorry about that!

JABarrett85 commented 1 year ago

No worries, I really appreciate the great support you're giving to assist with this issue

Myrkie commented 1 year ago

if you still receive issues with it after this then its possibly related towards NPM, considering that the JS is still able to run, if it works fine then it may be an issue caused by CEF directly and your machine.

GroovyTeacup commented 1 year ago

Hopefully it's just cef being mean; Since it runs fine on your W11 machine it could be some kind of missing/corrupt redist

Myrkie commented 1 year ago

better hope its not a corrupted .net install, when that shit breaks it breaks hard usually requiring a windows reinstall.

GroovyTeacup commented 1 year ago

Here's the current build with Cef downgraded to 107 https://github.com/GroovyTeacup/VRCX/releases/tag/bugtest2

JABarrett85 commented 1 year ago

I just tried the Cef 107 version you provided and it is loading fine, no problems so it does appear to be related to Cef

GroovyTeacup commented 1 year ago

I don't know enough about CefSharp to pinpoint what's causing this. Only thing I can think of is do a full uninstall of your 2019 redists, reinstall them fresh then do a restart. If you want to try getting the master branch working, anyway.

Maybe natsumi can weigh in when they're awake

JABarrett85 commented 1 year ago

Thanks for the assist, at the very least I have a working version now - I'll do some digging around to try to find out what requirements the newer version of CefSharp needs and see if I can get them resolved on this machine.

Myrkie commented 1 year ago

Thanks for the assist, at the very least I have a working version now - I'll do some digging around to try to find out what requirements the newer version of CefSharp needs and see if I can get them resolved on this machine.

well according to the release notes over at https://github.com/cefsharp/CefSharp/releases

a minimum of VC++ 2019 is required

GroovyTeacup commented 1 year ago

Thanks for the assist, at the very least I have a working version now - I'll do some digging around to try to find out what requirements the newer version of CefSharp needs and see if I can get them resolved on this machine.

well according to the release notes over at https://github.com/cefsharp/CefSharp/releases

a minimum of VC++ 2019 is required

107 also requires 2019+ and that one seems to be working fine. My brain hurts and its 4AM

Myrkie commented 1 year ago

Thanks for the assist, at the very least I have a working version now - I'll do some digging around to try to find out what requirements the newer version of CefSharp needs and see if I can get them resolved on this machine.

well according to the release notes over at https://github.com/cefsharp/CefSharp/releases a minimum of VC++ 2019 is required

107 also requires 2019+ and that one seems to be working fine. My brain hurts and its 4AM

yep 4am here too, cef is such a dumpster fire

JABarrett85 commented 1 year ago

I'll do some digging around with the CefSharp project files - while I'm not too familiar with C++ / C# I do have some programming experience, if I find anything along the way I'll let you know. So far I have confirmed that Cef 108 also works fine, the issue seems to have been introduced from Cef 109 onwards.

Natsumi-sama commented 1 year ago

If you're building VRCX from source have a play around with these CefCommandLineArgs https://github.com/vrcx-team/VRCX/blob/master/CefService.cs#L42-L48 ever since Cef 107 all sorts of inconsistent bugs/crashes have popped up some of which have been fixed by changing these CefCommandLineArgs.

JABarrett85 commented 1 year ago

Thanks for the heads up, I'll have a look through that and see if they help. I did try downloading the CefSharp sample project from their repo, when I tried building and playing that with Cef 110 it loaded the browser window without any issues.

JABarrett85 commented 1 year ago

A quick update - I've been able to get the latest Cef (110) version of VRCX to work on my Windows 10 PC building from source by commenting out one of the code lines, the relevant line is https://github.com/vrcx-team/VRCX/blob/master/CefService.cs#L49

// cefSettings.SetOffScreenRenderingBestPerformanceArgs();

Only by commenting out that line could I get it to load correctly

Natsumi-sama commented 1 year ago

Interesting... here are the CefCommandLineArgs that are added with SetOffScreenRenderingBestPerformanceArgs are you able to add them one at a time to find the problem command line arg? https://github.com/cefsharp/CefSharp/blob/master/CefSharp.Core/CefSettingsBase.cs#L441

JABarrett85 commented 1 year ago

I tested the 3 args within that function and the line that caused the problem was:

cefSettings.CefCommandLineArgs.Add("disable-gpu");

The other 2 args made no difference