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 · 93 comments
Open

Steam Play macOS support #1344

puechtom opened this issue Sep 9, 2018 · 93 comments

Comments

@puechtom
Copy link

@puechtom 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 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

@Pixelnarium Pixelnarium commented Sep 9, 2018

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

@aaronfranke aaronfranke commented Oct 28, 2018

macOS support has been removed from Proton itself: a841204

@jbddc
Copy link

@jbddc jbddc commented Nov 10, 2018

macOS support has been removed from Proton itself: a841204

Is there any official justification for this?

@michaeldipper
Copy link

@michaeldipper michaeldipper 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

@mercuriete mercuriete commented Apr 23, 2019

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 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 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 Quenz commented Nov 30, 2019

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

@Astilex5
Copy link

@Astilex5 Astilex5 commented Dec 27, 2019

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

@kakashidinho kakashidinho commented Feb 5, 2020

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 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 kakashidinho 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.

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

@RaeesBhatti RaeesBhatti commented Apr 9, 2020

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

@RaeesBhatti RaeesBhatti commented Apr 11, 2020

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

@Casuallynoted Casuallynoted commented Jun 9, 2020

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

@jbmagination
Copy link

@jbmagination 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

@dhollinger dhollinger commented Jul 15, 2020

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.

@armartinez
Copy link

@armartinez armartinez commented Jan 3, 2022

Indeed, based on some comments by developers, it is not currently possible to implement the same SteamPlay functionality on macOS as on Linux since Metal lacks functionality needed by Proton BUT... CrossOver has a custom version of Proton which can run quite a few games, what's stopping Valve from simply adding this custom code to SteamPlay and supporting macOS, even if it's not at the same level as Linux. It would be a great start and might motivate more devs to help out.

@dtantono
Copy link

@dtantono dtantono commented Jan 4, 2022

well, I saw their announcement for new release and they said that macOS have a bigger stumbling block compare to Linux

@jeffbax
Copy link

@jeffbax jeffbax commented Jan 4, 2022

What is stopping Valve is sadly the amount of time in effort required for a platform missing parts and in ways actively hostile to them being there in the first place (not that the Steam app itself isn't hot garbage)

Also the amount of work to verify (or redefine and confuse) what SteamPlay means -- particularly given they are going to be selling their own SteamDeck that depends on it.

I hope it changes, but I'm not holding my breath at this point.

@armartinez
Copy link

@armartinez armartinez commented Jan 4, 2022

I don't think adding macOS support adds any more complexity, either a game is supported via SteamPlay on macOS or not. And actually having the SteamDeck it's an incentive to have macOS users jump on the platform since they could potentially play many games in both platforms.

@ghost
Copy link

@ghost ghost commented Jan 4, 2022

Is no secret that Gabe Newell (co founder and president of Valve) sees Apple as the biggest threat to the game and software industry in general. In his own words:

"If you ask us which is scarier, it’s people falling in love with Apple’s model of controlling everything and having faceless bureaucrats who get to keep your product from entering the market if they don’t want it to, or designing a store in a way that minimizes software’s value-add to experience and stuff like that."

If you scour the internet you gonna see is a lot of disgruntled mac users frustrated that things don't run properly on macs and come here disliking posts taking it on devs not realizing the issue is not from us not wanting to support but more from Apple not supporting us. 😄

Apple wants to control all you can and cannot run. This is perhaps to force using Apple products only in the Apple approved way. On M1 mac, for example, Gatekeeper now blocks all apps that are not codesigned (costs $100 to get a dev account and is a painful process) and even then Apple can always drop your app if they want to.

You can dislike all you want but if you want proper mac support you need to take your fight with Apple to open up some of their apis to allow us to properly support your platforms.

Anyway dislike away 😁

@armartinez
Copy link

@armartinez armartinez commented Jan 4, 2022

Well the code sign part is false, it's a setting you can change. This is not about supporting Apple, it's about adding more potential users to Steam, which is Valve's business. There's already some partial implementation done by CodeWavers, and Valve being a big company could steer Apple to add more API's to Metal to enable this kind of support because it's in the their own interest.

@alex7kom
Copy link

@alex7kom alex7kom commented Jan 4, 2022

@filipworksdev I dislike your posts because 1) you don't know what you are talking about (you obviously have no idea how Macs work) 2) yours (and other Apple haters') posts add no value to the conversation. Why do you people keep coming here? This is not a place for your righteous wars. A lot of people here is following the issue and the repo and keep getting your spam.

Ultimately, it's for Valve to decide if macOS is a market worth investing.

@rsodre
Copy link

@rsodre rsodre commented Jan 4, 2022

macOS Gatekeeper blocks unsigned apps but you can always enable manually and run anyway.
For average users, it's a block, and scary to touch. But nothing gamers can't learn and live with after installing Proton.

Apple's control over macOS and how users use it is just dumb-proofing, and they attract people who don't want to overthink when using computers. I think that's fair, and maybe good for those people. As a developer, I have nothing to complain, and only go back to Windows when I need something that is unsupported or unusable (games, Unreal Engine, Valve SDK...)

If Valve made a stripped-down AppStore-like Steam version, those people would buy the games!

@diegov12
Copy link

@diegov12 diegov12 commented Jan 4, 2022

So how is it that I'm running several directX11 titles on my m1, but valve apparently can't be bothered to support the platform despite the work being there already, and freely available? I'm not even expecting full support, but at least provide the bare minimum of support.

@tsal
Copy link

@tsal tsal commented Jan 6, 2022

What is stopping Valve is sadly the amount of time in effort required for a platform missing parts and in ways actively hostile to them being there in the first place (not that the Steam app itself isn't hot garbage)

Folks say "hostile" all the time, and when asked the hostility is centered around the exclusion of OpenGL / other 32bit libraries from the OS as the primary reason.

More than a year of heads up and nearly a decade of the OS being 64bit-only isn't hostile. It's pretty dang nice of them.

@jeffbax
Copy link

@jeffbax jeffbax commented Jan 6, 2022

I mean, it is degrees of hostile and indifferent. Apple once had Valve VR on stage (hilarious in hindsight), but also clearly doesn't like competing stores. Yet also games are not like other software, there's often no money in ongoing modernization particularly on a platform that traditionally had pretty anemic GPUs and a smaller userbase to spread these costs across. OpenGL is gone, but it's not like they support Vulkan (which, they could but they have reasons for Metal beyond just politics) that would go a long way for gaming.

Valve isn't without blame either, Steam has been an general turd as an app since it launched on Mac (good lord, the fonts). They don't seem to make developers aware of how to configure 64-bit releases in the store (so, some games are actually ported or using modernized/compatible libraries -- and just not turned on to offer that binary) And Valve certainly doesn't lead by example of getting their own titles running on 64-bit Macs in any native way.

Codeweavers is working miracles, but who knows what happens after Metal 2 goes away? There's no roadmap and its hard for them to have much predictability either. Codeweavers got 64-bit machines to run 32-bit Windows binaries, but Apple themselves couldn't be bothered. In ways this is why we like Apple's platforms which generally move fast and have high quality apps but games don't tend to get ongoing development and often the libraries they depend on get frozen in time (thus why many games don't get 64-bit releases)

Apple's the richest company on earth, if they wanted to they could probably still have an OpenGL and Vulkan implementation going as well as a lot of other things (like when they had an entire MacOS 9 compatibility layer when OS X first came on the scene) -- but they don't, so I don't think it's unfair to say they just aren't interested in the PC gaming legacy as opposed to likely getting the thousands of iOS games running on ARM Macs instead.

The real question will be whether Steam ever supports ARM at all, or if Mac Steam just lives in stasis forever where you can't run even most of their listed Mac titles on modern Macs. But it's clear Valve's attention is on Linux which is a platform it has a lot more ability to do what it feels like it needs to. And again, I wish it were different and hope to be wrong some day, and I pay for Crossover Mac myself... but this just sadly seems to be how it is.

@Artoria2e5
Copy link

@Artoria2e5 Artoria2e5 commented Apr 7, 2022

As someone that ended up on a Mac, I too would like to see macOS support for Proton. I could set up wine32on64 and all that and run a copy of steam there too, but that's just annoying.

Are the graphics and the multithreaded performance be not as great as Linux? Yeah, definitely. But Steam isn't limited to performance-hungry AAA games, and a big disclaimer should suffice.

@armartinez
Copy link

@armartinez armartinez commented Apr 8, 2022

Yeah, CrossOver is getting better but it's really annoying to have to launch 2 steam clients for different games, it would not be too hard to just integrate their work into a SteamPlay macOS Beta with a nice disclaimer.

@obrhoff
Copy link

@obrhoff obrhoff commented Apr 8, 2022

"Annoying" does not sound like a very convincing argument for all the work it would take.

@armartinez
Copy link

@armartinez armartinez commented Apr 8, 2022

It wouldn't take that much work to implement whatever CrossOver is doing into Steam, most of their work is open source

@rsodre
Copy link

@rsodre rsodre commented Apr 8, 2022

Annoying = bad user experience.
Ideally, the mac client should launch Windows games seamlessly using Proton underneath.

@armartinez
Copy link

@armartinez armartinez commented Apr 8, 2022

It's been mentioned several times here, CodeWavers is doing all the heavy lifting regarding macOS support for Proton, we are only asking them to take this work which is mostly open source (https://www.codeweavers.com/crossover/source), and implementing it into SteamPlay for macOS. I would do it myself if Steam was open source.

@jeffbax
Copy link

@jeffbax jeffbax commented Apr 8, 2022

@armartinez I am not an expert here but my understanding is that Proton is not quite the same. Codeweavers has helped with WINE ports for years, and does so with games where the APIs implementations are reliable to make a Mac binary from it, but this is separate from Proton/SteamPlay.

The main Proton issue is that it runs on DXVK, and MoltenVK is not always up to parity with implementing Vulkan API calls on Metal reliably. Which is needed to do modern Direct3D fast, or when games are natively built with newer Vulkan versions https://github.com/KhronosGroup/MoltenVK#moltenvk-and-vulkan-compliance

Modern OpenGL is also not available, and these are big blockages for making a mostly reliable, wider solution like SteamPlay and something that Apple has significant impact on.

@armartinez
Copy link

@armartinez armartinez commented Apr 8, 2022

@jeffbax You are correct in part, they don't create Mac binaries, they take the same upstream as Proton from DXVK and implement changes on their own to support macOS, they also add support for MoltenVK and make some more adjustments, but you can pretty much replace their version with the upstream and things work. CrossOver is just a nice GUI for WINE and the rest of the libraries. We are asking for valve to basically add CrossOver's DXVK and MoltenVK support to Proton, even if not all software is compatible, it's more than nothing. I've played almost flawlessly God of War, Halo: Master Chief Collection and Sonic Mania with CrossOver, it would love to have that directly into Steam.

@woj-tek
Copy link

@woj-tek woj-tek commented Apr 8, 2022

Just my 5 cents: even if it wouldn't be perfect, having it in very-alpha state would be more convenient that installing and running second Steam instance through CodeWeavers.

@dhollinger
Copy link

@dhollinger dhollinger commented Apr 8, 2022

@armartinez what you are missing is that the work Codeweavers has done for MacOS may be incompatible with the with Valve has done with proton. Same baseline code != compatible. It's likely that those changes cannot be added without significant development effort and Valve doesn't have a lot of developers working on proton anyway.

Even then, most of them are working on fixing up various issues with the Linux side of things, especially with the Steam Deck being Linux based.

On top of that, we never know when Apple will arbitrarily decide to remove support for some features/APIs those games or proton may need. Unless you work exclusively in the Apple ecosystem, it is incredibly unpredictable to develop for...... Especially in gaming.

@armartinez
Copy link

@armartinez armartinez commented Apr 8, 2022

@dhollinger well only Valve can answer that, but I really don't think so TBH, just being able to replace library files and things keep working is pretty telling to me. And yes, Apple is pretty hard to work with sometimes, I know by experience, but Metal is not going anywhere anytime soon nor Apple Silicon chips, so this is a pretty good time to support those at least.

@dtantono
Copy link

@dtantono dtantono commented Apr 9, 2022

@armartinez I saw Andrew video on YT about running windows games such as God of War on crossover. But, proton/Protonup-QT solution in Linux is simpler.

@keef-khan
Copy link

@keef-khan keef-khan commented Apr 18, 2022

@dhollinger Maybe for right now the Proton team is small, but that going to change very soon. The entire success of the Steam Deck now relies on how well Proton can translate Windows games, so I see them about to throw many shiploads of cash into their Proton efforts in order to sell enough Steam Decks to be profitable. Unfortunately because of the crunch to push out new versions of Proton that can run more Windows games, it seems likely that the team will be less concerned with making Proton compatible with other distributions of Linux and of course the distant cousin (macOS). But with all the extra hands that will probably be hired, there are bound to be some leftover people who might wanna put in the effort of enabling broader support for these versions of Proton. Only time will tell, but it seems that several parties (Valve, Codeweavers, Epic Games, Battleye) are interested in this effort, and with the pleasant surprise of the EAC team expanding support to Linux AND macOS, let's hope more pleasant surprises come our way in the next few months.

@armartinez
Copy link

@armartinez armartinez commented Apr 18, 2022

@keef-khan Totally agree, it seems that a significant part of the industry is going to rely on Proton to support multiple platforms, it is encouraging.

@armartinez
Copy link

@armartinez armartinez commented Jun 8, 2022

KhronosGroup/MoltenVK#1616 Hope ?

@LuigiFan25
Copy link

@LuigiFan25 LuigiFan25 commented Jun 11, 2022

I really hope with metal 3 it makes moltenvk better and helps support for mac in the future

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