E&E engine update & Vulkan-only (shared resource-less) Linux client

With the upcoming next-gen Expanded & Enhanced game edition and the various rumors surrounding the aforementioned about RAGE being updated to the contemporary RDR3 version (which thankfully is already supported by RedM), I was left wondering if we will ever get our chance at seeing an official Vulkan-only Linux client build of the platform.

2 Likes

Maybe. Thereā€™s still a few issues which remain for cross-platform builds:

  • Shared surface handle support. This is a no-go for DXVK on Wine due to NT handle dependencies, but any native loader may have this be a bit simpler, assuming Chromium gl_image_* APIs are more workable to use other platformsā€™ file descriptor sharing and GPU drivers play along on these platforms.
  • Anticheat obfuscation. Thereā€™s a lot of dependencies on x86/AMD64 single-architecture WinNT in here, this would need adapting for Linux bionic/glibc systems, but also for ARM64 WinNT.
  • Platform runtime: ideally weā€™d make the entire codebase cross-platform as to not rely on the hot mess that is Wine, but this would entail making every single component that currently may assume some Windows/MSVC-isms portable, including some dependencies on high-level Windows components. The game itself is the least concerning here as RAGE doesnā€™t use many high-level Windows APIs to any extent that makes them non-trivial to reimplement using e.g. the .NET PAL.
    This is probably the least likely thing to happen short-term as the next-next-gen release (2022? if at all) will have many more important portability concerns at first, especially if the MSVC compiler gets upgraded as weā€™ll have to port thousands of patterns to a new compiler then.

Thereā€™s not much that prevents this from happening even for the current game version (DXVK-Native when rebased to newer DXVK runs the game fairly decently under the Rotor PAL as shown with the Android porting effort, and should be a lot more trivial to add VK_KHR_external_memory_fd mapping to), except for the fact that thereā€™s not really enough time to work on everything including this at once, and the likelihood to need to throw away a lot of stuff depending on how GTA V on PC gets migrated to future platform releases.

4 Likes

Very explicative, thanks for the reply.

Excuse me for the necro.
With the impending release of Valveā€™s Steam Deck (which runs on a fork of Arch) boosting this feature on the priority list would be amazing. Windows can be installed on the device - as confirmed by Valve - but it would definitely be tedious if not frightening for the average user.

impending release

Over half a year in the future, or more depending on production capacity. Hell, we donā€™t even know how the third-party app situation will be at all on the default distro if outside the ā€˜happyā€™ Steam flow.

Ideally Linux would have workable GPU-PV support by then even if by means of Mesa D3D10UMD being somehow viable over VirtIO, but thatā€™s not veryā€¦ likely.

1 Like

Time flies so fast half a year is impending for me lmao, sorry for this foul misconception.

FiveM works great on KVM + QEMU with GPU passthrough, VirtIO drivers and everything set up correctly. Having to populate a working Windows 10 image would have been a complete hassle if I wasnā€™t an Oculus user and being forced to do it.

DXVK/Proton is ok, it runs GTA V absolutely fine out of the box.
Isnā€™t Wine compulsory due to game libraries relying on Windows functions?
(Even in the presence of an official Vulkan implementation)

You could also look into this next-generation piece of software aiming to nixe x64 CI pipelines, Cosmopolitan Libc. I canā€™t properly visualize how convenient it would be for usage in this application, just tossing some ideas around. But Iā€™m seeing the issue with the anticheat not being libc compatible here.

Nope, the work on mobile porting actually showed that game code actually depends on so few APIs it took around 3 days to reimplement all of the important ones.

Iā€™d write a longer post about some of the tech involved in these plans but my browser seems buggy right now and the composer is getting progressively more blurry so thatā€™s a nope for nowā€¦ :slight_smile:

4 Likes

Iā€™m really glad I found this thread, it gives at least a glimmer of hope that FiveM client will someday be possible to run on Linux regardless of whether wine or dxvk devs ever sort out their gaping API hole.

I feel like getting rid of these dependencies and MSVC-specific code would be a great improvement anyway and should be a high priority.

What do you mean by ā€œif at allā€? Is it actually possible that this next gen release is going to be console-exclusive? That would only simplify things, you could safely assume that what you got now to work with is final and no ā€œthrowing awayā€ is going to be necessary.

Iā€™m guessing that as soon as Rockstar announces whether or not the PC release happens or not, decisions will be made and thereā€™s going to be a big FiveM announcement?

In the event that the release will happen on PC and with it the game actually gets a Vulkan renderer, have you considered taking advantage of it and just using VK_KHR_external_memory_fd on Windows too?

If the main obstacle is the team being strapped for timeā€¦ Is there any chance for this Android porting effort to be packed into a git branch and published on FiveMā€™s github to serve as an outline so that the development of Linux client could potentially be started/continued ā€˜the linux wayā€™ - in the bazaar style?

No it shouldnā€™t, itā€™s a lot of painful effort with no noticeable beneficial outcome at all, and only potential regression risks.

implying R* ever announces something not happening.

lol, Vulkan is a piece of shit on any platform, especially on Windows

No. Youā€™re being way too naive as to your assumptions anyone will even implement this, on top of legal concerns with any distribution of the current implementation.

If people were skilled enough someoneā€™d have added shared resources to DXVK or so already so you bunch can have fun, but so far itā€™s just dreamers, no doers.

1 Like

Closing this as it became yet another topic for Linux dreamers to randomly bump.