[Request]FiveM Linux Client?

Current issue is with

refferenced on https://github.com/PhoenicisOrg/scripts/issues/914

Can you confirm that this is caused by the lack of shared resources function in DXVK?

What does your Thunderbolt support have to do with the game?

In addition, Linux provides Thunderbolt support (see https://wiki.archlinux.org/index.php/Thunderbolt)
It’s even better than Windows as you can see.

What does macOS have to do with Linux, except that they open-sourced CUPS and it’s made for UNIX, so we can get use of it? macOS doesn’t support Vulkan AT ALL and is NOT planning to ever support it.

Testing code changes for compatibility, if you managed to read the post?

Except it doesn’t work on newer Apple hardware, even with a patch from the 5.2 branches that’s meant to enable this, and said Apple hardware is the only desktop-style system I have access to at this time.

And again your inability to read shows, this is what MoltenVK is for, but the work to support the required feature set for DXVK to run is unfinished. Since Wine and DXVK are the same across platforms, this’d have made it possible to test code changes under that platform as well.


As it is now, there are a few more hurdles breaking FiveM under Wine/DXVK other than the ones you people already ran into, namely:

  • UI needs shared resources as OnPaint isn’t implemented, and OnPaint would lead to UI being very slow due to GPU->CPU->GPU buffer copying
  • game mirroring to UI won’t be workable at all without shared resources and currently has a crazy (~70 MB/sec) memory leak if shared resources aren’t supported (a scenario that never happens on Windows, but stubs in DXVK do cause this)
  • adhesive requires NT APIs to be implemented in a perfect way, Wine definitely doesn’t, so a crash in NtCreateThreadEx occurs unless disabling adhesive (which leads to an inability to join most public servers)
  • something is breaking Mono scripting (corlib not loading correctly)
  • enabling netgraph leads to a crash in Wine’s DWrite implementation
  • ownership UI needs to be skipped using cl_ownershipTicket convar at this time
  • startup time is horrible compared to running on Windows on equivalent hardware
  • d3dcompiler_47 being existent leads to ANGLE wanting to use it, which leads to a crash due to incomplete ucrt implementation; WINEDLLOVERRIDES=d3dcompiler_47=b is definitely going to stay needed
  • updater and first-launch UI weren’t tested at all, but likely are going to cause some sorts of issues as well
  • there’s no native OS integration workaround library yet, in theory LoadLibrary can be used to load .so/.dylib files as well if reading Wine source code correctly however, which would be helpful
1 Like

(fivem-linux-1)

Still a long way to go in compatibility changes to properly work, not sure if ever workable enough for public usage though.

Are we talking about the input method right? Or do you mean something else? Since i don’t see how is input method relevant to the software… If your macbook is unable to use any input you can always use rclone, rsync, etc…

If there is linux issue on apple device then file a new issue in tracker of relevant repository and share a link assuming that it’s the only blocker for this issue.

If there are issues with WINE then please file a wine bug so that they can be resolved including the one that prevents DXVK from supporting Shared resources and refference them here… We can NOT work on something that is not explained correctly!

Something alike would be a good start for linuxppl to reproduce your results, please provide instructions for wine configuration so far i’ve (and phoenicis community, thanks to https://github.com/suomilanittaja) deduced:

  • wine-staging for UAC
  • DXVK that is mandatory for Grand Theft Auto V
  • wine runas /trustlevel:0x20000 FiveM.exe executable to work around
    image
  • corefonts that are used by the FiveM
  • vcrun2017 which is called in log.

Based on provided info d3dcompiler_47 also required?

Any update regarding this @barium - DXVK apparently never will support shared resources (https://github.com/doitsujin/dxvk/issues/899).

Are you still working on a solution to get around this, or will that not be possible? :slight_smile:

Any updates?

No, as Wine/DXVK still don’t support shared resources. Ask them for ‘updates’.

I have no Idea how complicated that would be, but how about writing a FiveM Linux client more ore less from scratch? Could it probably be less work than to implement a bunch of stuff into wine and then running the Windows client with wine?

1 Like

That wouldn’t make any sense as it’d involve rewriting all of Wine ‘from scratch’ as well as GTA V is not a Linux game either.

how about a windows client that is wine compatible?

That can’t be done as this shared resource stuff isn’t implemented on Wine. Not using it would make the entire client not work.

Is this relevant?
https://www.winehq.org/pipermail/wine-devel/2019-October/153443.html

“This patchset adds support for Vulkan shared memory in wine, which can
in turn be used by API layers like DXVK or D9VK to support D3D shared
resources. The final commit in the patchset adds a wine extension
allowing layers to associate a custom struct describing a resource, so
that they can recreate it with no outside information. In the case of
DXVK and D3D11 shared resources, this is a D3D11_COMMON_TEXTURE_DESC.”

To my knowledge, this was never accepted.

Referencing Proton Shared Texture Resources Implementation by Guy1524 · Pull Request #2516 · doitsujin/dxvk · GitHub and Testing Wine/DXVK shared resources - "Could not load CitizenGame.dll" - #2 by system

Maybe @nta can enlighten us if this is a step in the right direction or if not what’d be necessary to inch toward a working FiveM client under Wine.

1 Like

That may help more, but this changeset seems to be hacky for now (requires in-process-gpu as it doesn’t do a proper implementation atop shared FDs) so can’t be seen as reliable.

Either way, anticheat components probably won’t run until ‘user syscall dispatch’ changes are merged in both the Linux kernel and Wine (or forks-of) and these have been validated for accuracy (which may be very inaccurate right now, even?). I believe Linux 5.11 has user syscall dispatch, optionally, but Wine never ended up using this functionality.


See my longer post, by the way:

I don’t want to scare anyone of give false hope.

I’m attempting to run proton experimental (said to have dxvk with shared resources) in the context of app 271590 (GTA V) and see how steam and fivem react

EDIT: it’s frozen at 0% verifying the game content

EDIT 2: If I click cancel it verifies the files… then I get to this screen and no matter my answer it just closes:
image

Disable ‘esync’ in Wine, it breaks MsgWaitForMultipleObjectsEx.

We don’t need an infinite amount of ‘Linux when??’ topics that can be bumped randomly.

See this one: