vinegarhq / vinegar

An open-source, minimal, configurable, fast bootstrapper for running Roblox on Linux.
https://vinegarhq.org
GNU General Public License v3.0
405 stars 34 forks source link

Crash 5-15 minuites after start. #63

Closed ghost closed 1 year ago

ghost commented 1 year ago

When trying to play many games, it mostly works (aside from worse than expected performance) but after 5-15 minutes, sometimes right after an interaction occurs (clicking, keyboard press), Roblox crashes. This typically occurs on games with a high amount of and/or quality assets, and happens faster if they are higher.

Logs:

esync: up and running.
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXVK: No state cache file found
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  D3D11DeviceFeatures: External memory features not supported
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  28 (X_GetDeviceButtonMapping)
  Serial number of failed request:  254
  Current serial number in output stream:  254
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  10 (X_UnmapWindow)
  Resource id in failed request:  0x1400001
  Serial number of failed request:  6114
  Current serial number in output stream:  6114

Other Info: Version: 1.0.1 Installation method: Flatpak Desktop Environment: KDE Plasma 5.27.4 Distro: Alpine Linux edge Graphics Platform: Wayland Kernel Version: 6.1.25 (lts) Graphics Driver: Mesa 23.0.2 (Intel Iris)

Games where I could get this to happen: Survive The Disasters Legends Of Speed Elemental Battlegrounds

apprehensions commented 1 year ago

This may be related to Xwayland, try using X11. This is related to Wine or Wayland problems.

ghost commented 1 year ago

Funnily enough, it seems sddm doesn't want to start x11 on either gnome or plasma, so that might be related. Once I fix this, I will test under x11.

Also funny to see a fellow codeberg user on github. I get that the repo is here due to the network effect, but is there any chance of their at least being a codeberg mirror?

apprehensions commented 1 year ago

I have contemplated this, but have chosen GitHub simply for convenience, and VinegarHQ is hosted on GitHub.

lunarlattice0 commented 1 year ago

Additionally, it makes the flathub submission a lot easier

On April 28, 2023 9:37:06 AM PDT, sewn @.***> wrote:

I have contemplated this, but have chosen GitHub simply for convenience, and VinegarHQ is hosted on GitHub.

-- Reply to this email directly or view it on GitHub: https://github.com/vinegarhq/vinegar/issues/63#issuecomment-1527813152 You are receiving this because you are subscribed to this thread.

Message ID: @.***>

ghost commented 1 year ago

I fixed the x11 issue (turns out it was because of export QT_QPA_PLATFORM=wayland in my .profile), but just my luck, I start getting the infamous "Wine is not supported" message :(

Additionally, it makes the flathub submission a lot easier

I don't know what the flathub package submission process is like, but if it anything like crates.io, where you cannot publish anything without a github account, I can understand why you would need github. I'm not really the biggest fan of when foss projects, especially large ones with lots of funding, marry themselves to proprietary services like github, since that just adds one more project to the network effect, creating more reason for other projects to do the same Alas, you don't need to move off of github, just making it not a requirement to contribute to this project would be appreciated :)

apprehensions commented 1 year ago

I start getting the infamous "Wine is not supported" message :(

oh no

lunarlattice0 commented 1 year ago

If you are willing to use a workaround (and not use roblox.com to browse for games) you can switch back to the zlive release channel which lacks Byfron. @somerandomguy24

lunarlattice0 commented 1 year ago

I fixed the x11 issue (turns out it was because of export QT_QPA_PLATFORM=wayland in my .profile), but just my luck, I start getting the infamous "Wine is not supported" message :(

Solved

ghost commented 1 year ago

Solved

No, that was fixing the issue of plasma x11 starting, not the crash bug.

switch back to the zlive release channel which lacks Byfron.

How exactly would I go about doing that?

apprehensions commented 1 year ago

How exactly would I go about doing that?

vinegar player roblox-player:1+launchmode:app+channel:zlive

ghost commented 1 year ago

Tried that, but...

$ flatpak run io.github.vinegarhq.Vinegar player roblox-player:1+launchmode:app+channel:zlive
2023/04/28 20:42:41 Applying RCO FFlags
2023/04/28 20:42:41 Downloading: https://raw.githubusercontent.com/L8X/Roblox-Client-Optimizer/main/ClientAppSettings.json
2023/04/28 20:42:41 Applying custom FFlags
2023/04/28 20:42:41 Launching RobloxPlayerLauncher.exe
2023/04/28 20:42:41 Executing: wine [/home/user/.var/app/io.github.vinegarhq.Vinegar/data/vinegar/pfx/drive_c/users/user/AppData/Local/Roblox/Versions/version-14a29e72cc524327/RobloxPlayerLauncher.exe roblox-player:1+launchmode:app+channel:zlive]
2023/04/28 20:42:41 Log file: /home/user/.var/app/io.github.vinegarhq.Vinegar/cache/vinegar/logs/exec-2023-04-28T20:42:41+01:00.log
2023/04/28 20:42:41 roblox exec err: exit status 1

The mentioned logfile is empty (besides for a newline char).

ghost commented 1 year ago

Like Linux always does, it just randomly started working. Although it took longer, Roblox still eventually crashed after half an hour. Logs:

esync: up and running.
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXVK: No state cache file found
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXGI: MakeWindowAssociation: Ignoring flags
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
sendto failed with code -1 for char 115 and length 330.errno No error
sendto failed with code -1 for char 5 and length 843.errno No error
sendto failed with code -1 for char 118 and length 1043.errno No error
sendto failed with code -1 for char 15 and length 1194.errno No error
sendto failed with code -1 for char -123 and length 306.errno No error
sendto failed with code -1 for char 115 and length 70.errno No error
sendto failed with code -1 for char 115 and length 843.errno No error
sendto failed with code -1 for char 83 and length 1043.errno No error
sendto failed with code -1 for char 59 and length 1194.errno No error
sendto failed with code -1 for char 13 and length 306.errno No error
[...]
sendto failed with code -1 for char 71 and length 138.errno No error
sendto failed with code -1 for char -2 and length 138.errno No error
sendto failed with code -1 for char 100 and length 138.errno No error
sendto failed with code -1 for char -75 and length 138.errno No error
sendto failed with code -1 for char 94 and length 138.errno No error
sendto failed with code -1 for char -28 and length 138.errno No error
sendto failed with code -1 for warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
lunarlattice0 commented 1 year ago

If I'm not mistaken, sendto is a networking function; it's odd that it would fail...

ghost commented 1 year ago

I really don't know what was with that last set of logs, but now I have a different set of logs when crashing which seem fairly consistent under x11 (however, I checked while roblox was open and most of this was already there, maybe it would be a good idea to add timestamps to the logs so it is easier to tell what caused the bug and what is unrelated):

esync: up and running.
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXVK: No state cache file found
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXGI: MakeWindowAssociation: Ignoring flags
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
ghost commented 1 year ago

Yet another recurring log:

esync: up and running.
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXVK: No state cache file found
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXGI: MakeWindowAssociation: Ignoring flags
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
0x5570b04b8100:2: Async thread=0x5570b048b910
0x5570b0458250:2: I/O status block
0x5570b049e420:1: Fd unix_fd=2302 user=0x5570b04b8880 options=00000000
0x5570b04b8880:2: Socket fd=0x5570b049e420, state=3, mask=0, pending=45, reported=45
0x5570b048cc10:1: esync fd=1121
0x5570b048b910:1: Thread id=017c unix pid=101 unix tid=105 state=1
0x5570b047a2c0:1: Token id=0.1015 primary=1 impersonation level=-1
0x5570b047c550:1: Process id=016c handles=(nil)

I get that it might not be that useful tho, since it is hard to tell what is causing these issues as roblox is a black box.

ghost commented 1 year ago

The last type of log I get from roblox crashes:

esync: up and running.
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXVK: No state cache file found
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXGI: MakeWindowAssociation: Ignoring flags
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
user\AppData\Local\Roblox\Versions\version-2d0691de5792485e\RobloxPlayerBeta.exe: pthread_mutex_lock.c:460: __pthread_mutex_lock_full: Assertion `robust || (oldval & FUTEX_OWNER_DIED) == 0' failed.
lunarlattice0 commented 1 year ago

This is probably something you've already done, but have you tried erasing the flatpak entirely with "flatpak remove io.github.vinegarhq.Vinegar --delete-data"?

On April 30, 2023 2:35:38 PM PDT, somerandomguy24 @.***> wrote:

The last type of log I get from roblox crashes:

esync: up and running.
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXVK: No state cache file found
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  D3D11DeviceFeatures: External memory features not supported
warn:  DXGI: MakeWindowAssociation: Ignoring flags
Unable to read VR Path Registry from C:\users\user\AppData\Local\openvr\openvrpaths.vrpath
warn:  Skipping CPU adapter: llvmpipe (LLVM 15.0.7, 256 bits)
user\AppData\Local\Roblox\Versions\version-2d0691de5792485e\RobloxPlayerBeta.exe: pthread_mutex_lock.c:460: __pthread_mutex_lock_full: Assertion `robust || (oldval & FUTEX_OWNER_DIED) == 0' failed.

-- Reply to this email directly or view it on GitHub: https://github.com/vinegarhq/vinegar/issues/63#issuecomment-1529144501 You are receiving this because you modified the open/close state.

Message ID: @.***>

ghost commented 1 year ago

I have in fact have not, I will do that now and see how that goes. :+1:

ghost commented 1 year ago

Not much difference, getting the same log as https://github.com/vinegarhq/vinegar/issues/63#issuecomment-1528868315 when tried.

ghost commented 1 year ago

Interestingly enough, after deleting the data, the only error I no longer get is the error I first posted (X Error of failed request) under wayland.

Nvm, after more testing it did occur again.

lunarlattice0 commented 1 year ago

Just remembered, do you happen to be using an NVIDIA card? If the flatpak's internal drivers aren't updated, these errors can occur.

Try flatpak update

ghost commented 1 year ago

do you happen to be using an NVIDIA card?

Nope, I have intel iris xe graphics (intergrated) via mesa.

Try flatpak update

Will do. πŸ‘

ghost commented 1 year ago

I did have any flatpaks to update.

However, I noticed that Alpine Linux does not distribute 32 bit libraries on 64 bit systems, which shouldn't be a problem inside flatpak as they distribute the 32bit mesa drivers. But when building from source, I do get the issue mentioned of white screens and black cursors, likely due to a lack of those drivers.

I also noticed that there does not seem to be a wine flatpak installed on my system, so if Vinegar uses my system's wine, that might explain the issue as like mentioned before, there are no 32 bit packages, meaning I have 64 bit wine, which might be causing the issues as it is running a 32 bit program (ik wine should be able to run 32 bit windows programs on 64 bit hosts, but idk to what extent).

One of the Alpine maintainers said themselves that it is not possible for Alpine to package multilib wine due to limitations of musl (Which is needed for WoW64), so I am confused how it is even running at all.

Ironically, this would (in theory) be fixed by the 64 bit client for Roblox, which currently blocks wine. πŸ₯²

ghost commented 1 year ago
I found a similar tool to vinegar called krw, is a super simple (80 line) shell script which I get the expected performance for my device + no crashing, but the same white screens/black cursor I get when building vinegar from source. Here is a table showing the comparison to help identify what is causing these issues (checkmark means the issue does occur): Issue\Roblox wrapper krw vinegar (source) vinegar (flatpak)
black cursor/white screen βœ… βœ… ❌
Crash "DxvkMemoryAllocator: Memory allocation failed" ❌ βœ… ❌
Misc crashes (see prior comments) ❌ ❔ (Crashes before it has the oppurtunity to occur) βœ…
Shift + F2 "Technology" Voxel ShadowMap ShadowMap
Subpar performance ❌ ❔ (crashes too early to properly benchmark) βœ…

If you want, I can also do the same testing for grapejuice aswell.

lunarlattice0 commented 1 year ago

Yes, that would explain the problem, though I do recall someone getting it to work on a Alpine Linux with the Flatpak. However, I will note that the Vinegar Flatpak does not use system wine; instead, it uses wine staging 8.4 built on Flathub's servers.

ghost commented 1 year ago

In the wine logs (for system wine when using krw), it mentions it is starting processes "in experimental wow64 mode".

lunarlattice0 commented 1 year ago

Yes, that is Wine's new mode if it cannot detect a 32bit prefix.

lunarlattice0 commented 1 year ago

Personally, I would recommend whatever software best fits your use case (whether it be Vinegar, krw, or Grapejuice). I should also point out we have a similar shell based wrapper made by Wael called argant, which you can look for under the VinegarHQ organization.

ghost commented 1 year ago

I see one called molette, but not argent.

lunarlattice0 commented 1 year ago

I think that is the one

ghost commented 1 year ago

It doesn't seem to work anyways, as roblox doesn't seem to install in the expected directory.

Personally, I would recommend whatever software best fits your use case

I am currently with krw, but I would like to get the optimizations that are bundled with vinegar (unless it turns out that is what is causing the issues lol). Ik I can do that manually, but I want for the roblox on linux process to ideally be more streamlined, so that it becomes easier for people to adopt linux.

lunarlattice0 commented 1 year ago

Well, considering what just happened on Roblox today, we're boned anyway.