ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24.26k stars 1.06k forks source link

Steam Play macOS support #1344

Open puechtom opened 6 years ago

puechtom commented 6 years ago

I know that at the end of the official post, they clearly stated that there is no plan on supporting macOS at the moment.

Nevertheless, I still thing that such a support would be a really good news for every macOS gamers hence this feature request.

cunhacf commented 6 years ago

I believe it's in the works. Hell, the first line of the introduction states "Proton is a tool for use with the Steam client which allows games which are exclusive to Windows to run on Linux and macOS operating systems."

Plus they added MoltenVK to the codebase. So it's clear they intend on supporting macOS at some point.

These kinds of issues are irrelevant, I'm sure the developers already know that a lot of people would like for the macOS to be supported.

Pixelnarium commented 6 years ago

I think one of the bigger issues will be the fact that Apple removes 32bit support next year. As far as I know CodeWeavers said they have a plan to work around that but I don't know if there is already some work done. The question is if this workaround is capable of running games.

Also they have some sloppy OpenGL drivers and deprecated them entirely. Since DXVK only supports DX10 and DX11 an "everything else to Vulkan" wrapper is also needed. VK9 works on a D3D9 to Vulkan wrapper. Maybe map everything else (<= DX8) with dgVoodoo2 to DX11? If so the creator of dgVoodoo2 would like some money too I think.

Since Apples removes everything from macOS that WINE relies on it is no surprise that Steam Play support on macOS is a thing that will break over and over again. It depends on CodeWeavers I think.

jarrard commented 6 years ago

The biggest hurdle is some incomplete features in moltenvk at the moment. Valve can always include 32bit libraries with steam itself .

kode54 commented 6 years ago

I would suggest an Everything -> Vulkan or even -> Metal wrapper anyway, as the OpenGL interfaces are not just deprecated, they're also slower in some cases, and don't support all of the newer features, as Apple's GL cuts off at 4.1. Not to mention, they're only GL Core compatible, and the shader language is essentially limited depending on which GPU is in the system (NVidia/AMD/Intel), so even some software will fail to run due to shader compilation errors or missing GL functions that don't have an equivalent in 4.1 Core.

gbdlin commented 6 years ago

Actually, that request belongs to steam support / steam community website, not to this repo. Proton does have some compatibility with Mac OS and it is improving, but steam play (that uses proton under the hood) is not enabled on Mac OS. This issue should be closed.

aaronfranke commented 5 years ago

macOS support has been removed from Proton itself: https://github.com/ValveSoftware/Proton/commit/a84120449d8177fa40f3de729e55d238d3c24877

jbddc commented 5 years ago

macOS support has been removed from Proton itself: a841204

Is there any official justification for this?

ghost commented 5 years ago

There's an issue up for getting DXVK to work with MoltenVK, this will be 90% of the work required to get Proton working properly on mac.

mercuriete commented 5 years ago

only point from here the epic issue for DXVK support on moltenVK https://github.com/KhronosGroup/MoltenVK/issues/203

Now moltenVK have tesselation and more stuff so maybe we are closer to archive that than few month ago.

jeffbax commented 4 years ago

Man, I'm sure this doesn't mean anything -- but I really hope that Mac support is re-considered at some point. Watching my Steam games go from ~230 to ~30 with Catalina was rough. I'll be watching Codeweavers work closely, but it'd be nice for the likes of Valve w/ way more resources to not just totally give up on the platform.

I'm all for the long-overdue boost to Linux gaming (and jealous if it is easier to pull off there given overhead of Apple's whim), but still wish that Mac could be sailing on the same ship. Steam finally hitting Mac was one of the best days on the platform, but its lack of love certainly shows these days and it will be sad if Catalina is pretty much the nail in the coffin for any serious game development.

rsodre commented 4 years ago

Please, we need Valve Hammer!!! The amount of creative people that won't abandon macOS is huge. Edit: Everybody has something else they want to play or access with Proton. Mine is Hammer.

Quenz commented 4 years ago

@rsodre Not the right place for your comment, try ValveSoftware/source-sdk-2013/issues.

Astilex5 commented 4 years ago

Codeweavers Managed to get wine to run 32-bit code under 64-bit code on macOS in the new Crossover release (v19)

It would be nice once this gets merged into regular wine if Valve could implement a Proton version that can allow macOS to run 32-bit games again for starters.

Despite no DXVK support, I still see enabling MacOS Catalina users to play 32-bit games again via Steam Play would be a great start.

Relivant Link: https://www.codeweavers.com/about/blogs/jwhite/2019/12/10/celebrating-the-difficult-the-release-of-crossover-19

I am not sure if I should make a new issue or where I should post it as I would like to make Valve aware of these new changes.

kakashidinho commented 4 years ago

Even if dxvk is currently not working on mac, but since proton has an option to switch to use OpenGL based wined3d instead of vulkan and mac's opengl should have more common features with dx11 compare to Vulkan (moltenvk), shouldn't macos support be re-enabled? Does wined3d also not work properly on mac?

jeffbax commented 4 years ago

@kakashidinho OpenGL is deprecated on macOS and not updated in I think going on 3 years. It's not a long term solution to this problem unfortunately. PC gaming has broadly gone Vulkan, which is why MoltenVK support is so important to this type of effort.

kakashidinho commented 4 years ago

@kakashidinho OpenGL is deprecated on macOS and not updated in I think going on 3 years. It's not a long term solution to this problem unfortunately. PC gaming has broadly gone Vulkan, which is why MoltenVK support is so important to this type of effort.

I understand. However I think moltenvk still has a long way before it can work flawlessly with dxvk. Since some features like geometry shader and transform feedback are missing in metal (witcher3 needs them). I follow moltenvk topic on that and seems like it is very hard to emulate using existing metal features. They have been stuck in that issue for a long time. Hence I am just saying the opengl version might be a workaround solution for now. Though Mac OpenGL is stuck at version 4.1 and doesn’t have compute shader so it probably also doesn’t work properly for some games.

RaeesBhatti commented 4 years ago

I'd be willing to pay to have this functionality. Please upvote if you're too

mozo78 commented 4 years ago

Install Linux on Mac - Win<->Win situation.

Quenz commented 4 years ago

I'd be willing to pay to have this functionality. Please upvote if you're too

@RaeesBhatti Maybe tell CodeWeavers. They made paid, proprietary stuff with Wine, and help fund the project.

Also consider donating https://www.winehq.org/donate, the issue is still open after all.

Edit: I forgot that Proton is not part of the Wine project! (Although they do send code upstream.) So donating to Wine won't be supporting this issue or the Proton project at all. That said, it still wouldn't hurt do donate to Wine in general! Proton is a fork of Wine and wouldn't exist without it.

jeffbax commented 4 years ago

I would be surprised if Codeweavers was not already involved in MoltenVK, but +1 for paying for Crossover if you want to meaningfully support WINE related efforts on Mac.

That said - this is Proton by Valve, who at least symbolically has pretty much moved on from Mac as far as one can tell given simply dropping this support and general eighth-hearted status of Steam on the platform (no thanks to Apple I'm sure)

Quenz commented 4 years ago

That said - this is Proton by Valve, who at least symbolically has pretty much moved on from Mac as far as one can tell given simply dropping this support and general eighth-hearted status of Steam on the platform (no thanks to Apple I'm sure)

@jeffbax Except this issue is still open. If they had truly completely moved on, this issue would be closed. My understanding is that the main roadblock for this issue to make progress is KhronosGroup/MoltenVK#203 being resolved.

I would suggest people donate to Khronos Group, but the closest they have is membership, which is $1000 for "accredited Academic Institutions" at its cheapest.

Edit: Best thing you can do is go an contribute code directly if you have the skill!

RaeesBhatti commented 4 years ago

I actually bought the CodeWeavers Crossover license to play Age of Empires 2. Willing to do the same for Proton on Mac.

jeffbax commented 4 years ago

@RaeesBhatti same, paid for a license the second they released the 64-bit <--> 32-bit bridge. Now more than ever they likely need support if legacy (as well as new) Mac Gaming is going to be feasible at all :(

Quenz commented 4 years ago

I actually bought the CodeWeavers Crossover license to play Age of Empires 2. Willing to do the same for Proton on Mac.

@RaeesBhatti If enough people are willing to pay for it, maybe they'll consider to making a CodeWeavers Proton, which will hopefully end up coming upstream.

Drop them a line on Twitter, their macOS forum, or email them if you think it might be worth a shot.

Astilex5 commented 4 years ago

So with the whole virus stuff going on I've been digging around twitter with my free time and I found this comment from CodeWeavers: https://twitter.com/CodeWeavers/status/1237035160983527426?s=20

Not sure what this "little something something" is but it is something to keep a lookout for.

Casuallynoted commented 4 years ago

I can vouch that I would also really like to see this. Here’s hoping the Crossover announcement helps!

jbmagination commented 4 years ago

Two years without built-in macOS support. I'm trying to compile and see how far I can get, but not quite there.

dhollinger commented 4 years ago

The main issue with Proton support for MacOS is that someone has to make either a DX -> Metal layer or a tool that will take DX -> VK -> Metal (Could be done with DXVK + MoltenVK, but the impression I had was that this method was difficult and not viable).

The other major issue, for me, is that I have a metric ton of games I still play that don't run in Catalina due to the loss of 32-bit application support.

aaronfranke commented 4 years ago

@dhollinger Don't forget that Apple is moving to ARM, so that will make things very difficult.

jbmagination commented 4 years ago

Not with Universal 2 though.

tsal commented 4 years ago

Considering how long they supported Universal 1, I'm not holding my breath. That said, it is a shame this can't get ported to also work with metal1.2+, that would probably make it easier to port to ARM when it happened, but I have no idea what efforts would be needed to integrate this with metal instead of dx.

I know VMware did make a DX -> Metal layer, but I doubt they're going to open source it.

zowers commented 4 years ago

Native ARM support is not happening as per #1493, so Universal is the only option

pizza2004 commented 3 years ago

Considering how long they supported Universal 1, I'm not holding my breath. That said, it is a shame this can't get ported to also work with metal1.2+, that would probably make it easier to port to ARM when it happened, but I have no idea what efforts would be needed to integrate this with metal instead of dx.

I know VMware did make a DX -> Metal layer, but I doubt they're going to open source it.

You must both be thinking of Rosetta. I'm not sure why they called this "Universal 2" when Universal has never stopped being supported, and you can include 5 different binaries in a single App bundle to have compatibility with every OS X Mac ever released.

Xenthio commented 3 years ago

I still hope this happens. Where is the best place to get updates about Proton on macOS?

MisutaaAsriel commented 3 years ago

The main issue with Proton support for MacOS is that someone has to make ... a DX -> Metal layer...

@dhollinger I mean, the team behind Parallels Desktop figured it out. It converts up to DirectX 12 calls to Metal API calls with their latest versions of Parallels Desktop for (Intel) Mac. So it's definitely possible, and has been done, to say none the least.


Native ARM support is not happening as per #1493

@zowers that's reasonable. It would appear Apple put a lot of work into getting Rosetta 2 to run reasonably well on M1 devices, and: (A) they develop the hardware and the OS, & (B) some* graphics/video related software still lags behind Intel Macs. If Steam wanted long term support for Proton on ARM, they would have to develop their own x86 emulation/re-compilation layer.

At best, if it were like Windows on ARM, where the majority of libraries are native, and only specific incompatible components are emulated, or even like Rosetta 2, where the application binaries are effectively re-compiled on first launch, it would still likely pale in comparison to Rosetta 2's performance, and performance would likely take a hit (as it would both have to retranslate very large programs and their libraries, and translate on-the-fly DirectX/Vulkan calls to Metal, without system support to give it an edge.)

It would also appear that Steam themselves are not exactly warm to macOS. SteamVR for Mac died in under 2 years, despite more graphically capable ARM based macs being on the horizon, and eGPUs coming down in cost. So without direct involvement of Apple, or a concentrated effort by Mac users to prove the user base for running Windows games on Mac, it is unlikely that Proton & Steam Play for Mac in general, let alone ARM Macs would ever be seen as viable.

*In some reviews, it has been found that certain tools which deal with rendering video run slower through Rosetta than when ran as native ARM binaries. However, I do not know whether or not these were using true hardware encoding, via Apple VT, or if they were using software encoding, such as x264, during these tests. Likewise, Apple touts that gaming performance on the Apple M1 hardware is 3x faster than their Intel counterparts, however, again it is unknown if this is with ARM binaries, or if this comparison is of Rosetta 2 to Intel Macs.

tsal commented 3 years ago

Considering how long they supported Universal 1, I'm not holding my breath. That said, it is a shame this can't get ported to also work with metal1.2+, that would probably make it easier to port to ARM when it happened, but I have no idea what efforts would be needed to integrate this with metal instead of dx. I know VMware did make a DX -> Metal layer, but I doubt they're going to open source it.

You must both be thinking of Rosetta. I'm not sure why they called this "Universal 2" when Universal has never stopped being supported, and you can include 5 different binaries in a single App bundle to have compatibility with every OS X Mac ever released.

Yep, you'd be correct. I was thinking of Rosetta 1 / 2 when I replied. I can't speak for anyone else, though.

Xenthio commented 3 years ago

Yeah, I can't deny rosetta is a performance beast of a piece of software to come out of apple. I assumed gaming was dead when they announced arm macs, however you get great performance for the price of those Macs, I wouldn't be suprised if Macs made a return, If Steam Play gets ported now it should really just run great on the new Macs.

dnet890 commented 3 years ago

I think Apple initiative to support macOS gaming industry is needed to encourage Steam to port this feature on mac

jbmagination commented 3 years ago

I just remembered! CodeWeavers helped make Proton. CodeWeavers also made CrossOver, which supports not only 64-bit macOS, but it supports M1 Macs. Plus, CrossOver's source code is public. There is literally no reason not to support macOS with Proton.

dhollinger commented 3 years ago

@jbmagination you're forgetting that more goes into proton than just WINE. There's DXVK, VKD3D, FAudio, OpenXR, etc. And most of those projects are not supporting MacOS.

They dropped MacOS support in Steam for proton during the beta phase in 2018. Technical issues with having to run things from DX -> VK -> Metal...... And last I heard from some GameDevs like Ethan Lee, metal and GFX drivers are in worse shape on Mac than on Linux.

Not to mention you add another translation/emulation later when talking about the M1s

kode54 commented 3 years ago

CrossOver has working DXVK with MoltenVK, and FAudio doesn't require any special hardware or APIs to work, just sound output. OpenXR, not sure about that. VKD3D probably still needs work before it will work with MoltenVK.

jbmagination commented 3 years ago

@dhollinger

There's DXVK, VKD3D, FAudio, OpenXR, etc. And most of those projects are not supporting MacOS.

Technical issues with having to run things from DX -> VK -> Metal......

Out of those 4 things you mentioned, Kode mentioned DXVK and FAudio working. I think OpenXR works too, so that's 3/4 things off the list.

They dropped MacOS support in Steam for proton during the beta phase in 2018.

Exactly. CrossOver 19 (with support for 64-bit macOS) came out near the end of 2019.

And last I heard from some GameDevs like Ethan Lee, metal and GFX drivers are in worse shape on Mac than on Linux.

Metal's an Apple thing. GFX drivers are up to the manufacturer of the cards, not Apple-- someone's gotta take initiative.

Not to mention you add another translation/emulation later when talking about the M1s

Rosetta 2 runs incredibly well, and CodeWeavers liked it. I have no doubt that it will run smoothly if Proton works on Intel Macs.

dnet890 commented 3 years ago

Don't forget that Apple decided to remove 32-bit libraries begin from macOS Catalina until now that makes everything more difficult ahead.

ghost commented 3 years ago

Don't forget that Apple decided to remove 32-bit libraries begin from macOS Catalina until now that makes everything more difficult ahead.

Crossover 19 added support for 32-bit Windows applications without any 32-bit libraries: https://www.codeweavers.com/blog/jwhite/2019/12/10/celebrating-the-difficult-the-release-of-crossover-19

Also of note: Crossover 20 added support for DX11: https://www.codeweavers.com/crossover/changelog

dhollinger commented 3 years ago

That doesn't mean it will go into proton. While codeweavers works on proton, valve is responsible for it. They probably don't want to be maintaining the 32-bit library support themselves in proton.

And saying it's easy because it's already in crossover doesn't work. Codeweavers maintains a separate version of crossover for mac vs Linux. My guess would be that the Mac version of crossover has a lot of Mac specific optimizations.

As for DXVK, it may work in Mac, but the user has to install moltenvk first, last I checked it didn't come preinstalled on MacOS.

Proton is supposed to largely be a one-click tool for most users. That would require valve to maintain Mac optimizations and moltenvk installation as well..... Which I don't think they want to do.

Remember, they had Mac support during beta and removed it. That's not by accident, it was probably more work than it was worth to manage

jeffbax commented 3 years ago

With all the big Mac changes lately, it has definitely turned into a larger house of cards. I'm continuously impressed that Codeweavers is crazy enough to even get things running on Apple Silicon Macs at all. I imagine that the future of Windows gaming on Mac is either Codeweavers for things old enough to run performant enough, or likely official wine-wrapped releases as opposed to "this seems to be working well enough" Proton route.

Which is certainly disappointing as a Mac user, but probably is what it is by now. I just wish that Valve would at least put a modicum of effort into the actual Steam client on Mac.... which has been one of the worst apps on the platform for years now.

jbmagination commented 3 years ago

@dhollinger

That doesn't mean it will go into proton. While codeweavers works on proton, valve is responsible for it. They probably don't want to be maintaining the 32-bit library support themselves in proton.

They worked with Valve on this for 2 years before release. There's definitely a reason Valve chose them over just doing it themselves-- clearly, they couldn't even do what they have now by themselves.

And saying it's easy because it's already in crossover doesn't work. Codeweavers maintains a separate version of crossover for mac vs Linux. My guess would be that the Mac version of crossover has a lot of Mac specific optimizations.

Take a good look at the title of this page, where it says "Source Code | CrossOver Mac and Linux" with one download. Of course there are separate downloads for macOS and Linux, they install stuff a bit differently. Doesn't mean the program in and of itself is different.

As for DXVK, it may work in Mac, but the user has to install moltenvk first, last I checked it didn't come preinstalled on MacOS.

Did you not see what Kode said? "CrossOver has working DXVK with MoltenVK"

Proton is supposed to largely be a one-click tool for most users. That would require valve to maintain Mac optimizations and moltenvk installation as well..... Which I don't think they want to do.

CrossOver is also supposed to be a one-click tool (or, at the very least, close to one). Install an application, put in the name, bam you're done. KISS.

Remember, they had Mac support during beta and removed it. That's not by accident, it was probably more work than it was worth to manage

That's because they didn't have enough things working at the time. Now CodeWeavers does.

kode54 commented 3 years ago

Yes, the CrossOver package bundles its own build of MoltenVK. The user does not need to supply it separately.

jeffbax commented 3 years ago

Well, as a paying Crossover customer myself, if everyone wants this maybe pony up some bucks for them ;) I'd love it to come to Mac some day, but I won't hold my breath.

Another risk for Valve likely being that Apple could remove Rosetta 2 at any point, which would really suck for everyone who bought Steam games expecting long term support (already a struggle, as the 64->32 transition has proven and probably doesn't inspire faith that Rosetta will be around in 3+ years)

ephemient commented 3 years ago

For another comparison, Apple only shipped Classic up until 10.4 and Rosetta 1 from 10.4 to 10.6. Given historical precedent it is entirely believable that they drop Rosetta 2 in a few years.