Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steam Play macOS support #1344

Open
puechtom opened this issue Sep 9, 2018 · 142 comments
Open

Steam Play macOS support #1344

puechtom opened this issue Sep 9, 2018 · 142 comments

Comments

@puechtom
Copy link

puechtom commented Sep 9, 2018

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
Copy link

cunhacf commented Sep 9, 2018

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
Copy link

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
Copy link

jarrard commented Sep 9, 2018

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

@kode54
Copy link

kode54 commented Sep 14, 2018

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
Copy link

gbdlin commented Sep 18, 2018

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
Copy link

macOS support has been removed from Proton itself: a841204

@jbddc
Copy link

jbddc commented Nov 10, 2018

macOS support has been removed from Proton itself: a841204

Is there any official justification for this?

@ghost
Copy link

ghost commented Nov 12, 2018

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
Copy link

only point from here the epic issue for DXVK support on moltenVK
KhronosGroup/MoltenVK#203

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

@jeffbax
Copy link

jeffbax commented Nov 29, 2019

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
Copy link

rsodre commented Nov 29, 2019

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
Copy link

Quenz commented Nov 30, 2019

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

@Astilex5
Copy link

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
Copy link

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
Copy link

jeffbax commented Feb 5, 2020

@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
Copy link

@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
Copy link

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

@mozo78

This comment has been minimized.

@Quenz
Copy link

Quenz commented Apr 9, 2020

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
Copy link

jeffbax commented Apr 9, 2020

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
Copy link

Quenz commented Apr 10, 2020

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
Copy link

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

@jeffbax
Copy link

jeffbax commented Apr 11, 2020

@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
Copy link

Quenz commented Apr 12, 2020

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
Copy link

Astilex5 commented May 29, 2020

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
Copy link

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

@jbmagination
Copy link

jbmagination commented Jun 13, 2020

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

@dhollinger
Copy link

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.

@RIKDXHQ11

This comment was marked as off-topic.

@armartinez
Copy link

https://github.com/apple/homebrew-apple/tree/main/Formula maybe this could be integrated into Proton ?

@woj-tek
Copy link

woj-tek commented Jun 6, 2023

I did a bit of digging and it seems it's a completely new thing but rather D12 support-patch to wine (?!) that could indeed be upstreamed due to OK licence?

Somewhat WOW if true.

Ref:

@K0bin
Copy link

K0bin commented Jun 6, 2023

@woj-tek The D3D12 to Metal layer isn't public yet and we don't know what the license of that will be.

@woj-tek
Copy link

woj-tek commented Jun 6, 2023

@K0bin ah, bummer. But still, even if that part is not public/FOSS, would it be possible to use those APIs in Steam?

@K0bin
Copy link

K0bin commented Jun 6, 2023

The part that is FOSS is literally just Codeweavers Crossover.

@DarthMDev
Copy link

if the translation layer does end up going public i hope we can start to see proton on mac again :D would be huge

@Artoria2e5
Copy link

Artoria2e5 commented Jun 8, 2023

@K0bin The part that is FOSS is literally just Codeweavers Crossover.

Is it though? The giant game-porting-toolkit.rb formula is based on Crossover, but there's a giant LGPL patch with:

  • a couple of extra DLLs
  • Something about XAudio2
  • some addition to ntdll
  • a bunch of lx -> x probably to appease their compiler warnings
  • some interface in the gstreamer. seems to tie into the new mystery layer.

Well I mean, the layer is indeed closed-source and only referenced thru dlopen("@rpath/libd3dshared.dylib", RTLD_LOCAL);. We can still hope a bit though: if the license for the library is good enough to be used for game publishers, it might eventually be acceptable for Proton to link to it. Maybe.

Hahhaha nevermind the license is development-only, no shipping .🤣 I don't even know what that makes the thing good for. Uh, for "comparison"??

@armartinez
Copy link

Yep it seems Apple's intention with this is just a way for devs to preview how a game would run on macOS and make a good estimate of the effort required for porting, nothing more.

@armartinez
Copy link

It seems like Apple's GPTK newest license allows companies to redistribute the library, that's why Whiskey and the latest CrossOver beta can use it. Shouldn't Valve be able to integrate it in Proton easily ?

@Etaash-mathamsetty
Copy link

Etaash-mathamsetty commented Sep 21, 2023

It seems like Apple's GPTK newest license allows companies to redistribute the library, that's why Whiskey and the latest CrossOver beta can use it. Shouldn't Valve be able to integrate it in Proton easily ?

No, proton has lots of Linux specific code, we might see a proton version in the far future with Mac support, but it's not happening in this year. It's probably not gonna happen tho

@dhollinger
Copy link

It seems like Apple's GPTK newest license allows companies to redistribute the library, that's why Whiskey and the latest CrossOver beta can use it. Shouldn't Valve be able to integrate it in Proton easily ?

Not necessarily. As mentioned elsewhere, Proton has a lot of Linux specific moving parts that it connects together. Valve would have to create a code path for the Apple/MacOS-specific changes. While that sounds easy, that also means changing Proton to allow for multiple code paths for different Operating Systems.

Finally, as Proton is primarily a tool used to support the Steam Deck, a Linux based product, that's where most of Valve's work is likely to go.

What would be more likely would be MacOS fan forking the repo and building a MacOS version of proton themselves, but I'm not sure if the Steam Client's compatibility API is available on the MacOS client, which would also be needed.

@armartinez
Copy link

armartinez commented Sep 21, 2023

Replying to #1344 (comment)

Well Proton actually started with a macOS codepath, it might be possible to restore that codepath and integrate it with the current changes and GPTK without a massive amount of work. GPTK is also based on WINE so we are talking about integration two "forks" together, not completely different implementations.

@dhollinger
Copy link

dhollinger commented Sep 21, 2023

Replying to #1344 (comment)

That code path existed before Apple announced the end of OpenGL support. That code path may exist, but MacOS and its GFX APIs have completely changed since then and a whole new code path would be needed. Additionally, the old code path is likely using old Proton paths that also no longer exist. It would have to be rebuilt from scratch as there are too many changes to just bring it back.

@keef-khan
Copy link

keef-khan commented Sep 21, 2023

Replying to #1344 (comment)

If anyone is gonna do it it's probably the CodeWeavers team. The only reason we have GPTK is because Apple decided to fork their open source CrossOver engine. They're essentially a group of hobbyist programmers with an annual revenue between $5 and $15 million. I don't think any other group would do it.

FWIW Crossover is already well integrated with Heroic Games Launcher, which is a home brew front end for Epic Games. It's essentially a mirror of Proton but for EGS on Mac.

@armartinez
Copy link

armartinez commented Sep 21, 2023

Well maybe Valve can hire them :P, I'm interested if this is integrated directly into Steam Play, I'm not getting a different app to run unoptimised games, specially since it seems like Apple is really pushing to get gaming going on its platforms, but for anyone else the latest CrossOver beta or Whisky are indeed good choices.

@dhollinger
Copy link

Well maybe Valve can hire them :P, I'm interested if this is integrated directly into Steam Play, I'm not getting a different app to run unoptimised games, specially since it seems like Apple is really pushing to get gaming going on its platforms, but for anyone else the latest CrossOver beta or Whisky are indeed good choices.

Steam Play/Steam Compatibility supports unofficial tools. Valve doesn't need to hire anyone, someone just needs to build it themselves.... the bigger issue is that I'm not sure the Steam Client for MacOS supports Steam Play at all, if that's the case, then the client needs to be updated too. And that is likely more complicated than you realize.

Part of the problem is that MacOS is now a smaller userbase on Steam than Linux and Apple doesn't seem to show any interest in working with Valve on that front as they want to funnel games through the App store.

@armartinez
Copy link

armartinez commented Sep 21, 2023

Replying to #1344 (comment)

Indeed I forgot that you can plug in different libraries to Steam Play, I really don't think porting that functionality to macOS would be that difficult since the actual library would be doing most of the work, I would give it a shot if Steam was open source. Of course it seems Valve is loosing interest in macOS and Apple's intentions are clear, buy once, play on all of your devices if possible, which only works with the App Store, but a guy can hope.

@dhollinger
Copy link

buy once, play on all of your devices if possible

"Buy once, play on all of your APPLE devices if possible" - FTFY.

With Steam, that's already largely there as long as you have a PC that supports the Steam client and standard GFX/SysCalls. Apple chose to go away from those standards in favor of their own.

1 similar comment
@dhollinger
Copy link

buy once, play on all of your devices if possible

"Buy once, play on all of your APPLE devices if possible" - FTFY.

With Steam, that's already largely there as long as you have a PC that supports the Steam client and standard GFX/SysCalls. Apple chose to go away from those standards in favor of their own.

@armartinez
Copy link

armartinez commented Sep 22, 2023

@dhollinger Obviously, Apple's goal is to maximise profit so that's the smartest move they can make.

@Buggem
Copy link

Buggem commented Dec 19, 2023

macOS support has been removed from Proton itself: a841204

that seriously hurts. ouch.

@KZeni
Copy link

KZeni commented Dec 20, 2023

@Buggem The comment you're quoting & the commit it's pointing to are both from Oct 2018. Apple's Game Porting Toolkit (GPTK) was introduced 6 or so months ago while Apple's GPUs & graphics APIs have been fleshed out a notable amount in recent updates, and that could certainly affect the actions Proton developers made more than 5 years ago. Still far from being a sure thing (per the other discussions above), of course, but pointing out they removed mentions of support >5 years back is somewhat irrelevant to the current situation.

@Buggem
Copy link

Buggem commented Mar 8, 2024

@Buggem The comment you're quoting & the commit it's pointing to are both from Oct 2018. Apple's Game Porting Toolkit (GPTK) was introduced 6 or so months ago while Apple's GPUs & graphics APIs have been fleshed out a notable amount in recent updates, and that could certainly affect the actions Proton developers made more than 5 years ago. Still far from being a sure thing (per the other discussions above), of course, but pointing out they removed mentions of support >5 years back is somewhat irrelevant to the current situation.

Ok, but do you really think that 32-bit libraries are going to run on macOS?

@Artoria2e5
Copy link

Artoria2e5 commented Mar 11, 2024

@Buggem: Ok, but do you really think that 32-bit libraries are going to run on macOS?

Why are we circling back to 32-bit library support? Running 32-bit applications on a wine that relies on 64-bit system libraries is a solved issue. There are two ways:

  • Crossover's wine fork uses a modified thunk-making compiler and produces a thing called wine32on64. The wine part of GPTK is built on Crossover's fork.
  • Upstream wine has been taking wine wow64 very seriously for a while. Just look for "wow64" in the release notes. There will still be 32-bit DLLs everywhere in wine, but that won't be the system's problem.

@adrianlshaw
Copy link

@kisak-valve could Steam Play use Game Porting Toolkit on macOS?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests