protonscr

[feature] Support for non Vulkan graphic cards

protonclosed
ValveSoftware/Proton#3738 · opened 2020-04-06 by es20490446e · updated 2024-10-27 · 20 comments · github
Ees20490446e 2020-04-06 github
Kkisak-valve maintainer 2020-04-07 github

Hello @es20490446e, the flat answer is no, Vulkan is a requirement for support with Proton. You can use PROTON_USE_WINED3D=1 to use Wine's DirectX to OpenGL render path, which may give decent results for many game titles, but this will not be considered supported. If you encounter an issue with that render path, it'll need to be reproduced with vanilla wine and triaged upstream. Additionally, posting a link to a youtube video without explaining in the issue report is poor communication.

Ees20490446e 2020-04-07 github

@kisak-valve I'm telling you that a wide range of games works seamlessly under Wine without Vulkan, at 60fps stable, without being able to tell it isn't a non native game.

Only in the very modern 3D titles, with advanced graphics and DirectX versions, you can see a performance penalty.

So ditching out those cards just because they don't work on Proton is not an intelligent option for the user. Many of them are more powerful than any modern Intel integrated graphics.

What I'm saying is that switch between APIs shall be transparent. Otherwise it is too surprising for the user, and will make them post help request all over the Internet for no reason.

Ees20490446e 2020-04-07 github

The solution is as simple as testing if the used driver is "radeon", instead of the more modern one that supports Vulkan:

lspci -v | grep --after-context=12 VGA | grep "Kernel driver in use:" | cut --delimiter=":" --fields=2 | xargs

Mmisyltoad 2020-04-09 github

Or just get a graphics card that's less than 8 years old?

Ees20490446e 2020-04-10 github

They are closely as expensive as a new one, and then I would see marginal gains of performance cause the rest of hardware won't be able to handle it.

So it would mean renewing the hole computer when, as I said, it works fluently for its current purpose.

EEvernow 2020-04-15 github

The solution is as simple as testing if the used driver is "radeon", instead of the more modern one that supports Vulkan:

lspci -v | grep --after-context=12 VGA | grep "Kernel driver in use:" | cut --delimiter=":" --fields=2 | xargs

I'm against this. Adding an automatic fallback to wined3d would mislead users into thinking it is a supported renderer.

Ees20490446e 2020-04-15 github

Fallback with notice.

A program crashing without telling why is horrible.

Mmnh48 2022-08-15 github

Or just get a graphics card that's less than 8 years old?

Wow, this people really assume that everyone are able to "just get" a new graphics card without even considering people's background.

This kinda shows how much entitled some people are and continue to discriminate poorer people from third world countries that could only dream of getting the latest and greatest graphics card.

It's still shocking to see classism still exist in the current day and age when people trying to strive for equality, I guess this is remnant of the "PC master race" attitude who race towards latest PC tech while shaming anyone who don't race who are just trying to make work with what they already have.

And no, used older graphics card that's less than 8 years old from US/EU would still be expensive to import to some countries, not just because of differences in currency when changing to USD/EUR, but also the cost of shipping, and especially more expensive if their government impose more than 200% import tariff/tax and require many paperworks because graphics card is electronics, so don't suggest that as a solution either.


Fallback with notice.

A program crashing without telling why is horrible.

I support this, at least show some notice and not just straight up crashing

Any kind of software that just crash without telling why is garbage software

Ees20490446e 2022-08-15 github

The thing is that implementing this is trivial. And changing graphic API never, ever, resulted in extra problems when using Wine.

GGloriousEggroll 2022-08-15 github

Or just get a graphics card that's less than 8 years old?

Wow, this people really assume that everyone are able to "just get" a new graphics card without even considering people's background.

This kinda shows how much entitled some people are and continue to discriminate poorer people from third world countries that could only dream of getting the latest and greatest graphics card.

It's still shocking to see classism still exist in the current day and age when people trying to strive for equality, I guess this is remnant of the "PC master race" attitude who race towards latest PC tech while shaming anyone who don't race who are just trying to make work with what they already have.

And no, used older graphics card that's less than 8 years old from US/EU would still be expensive to import to some countries, not just because of differences in currency when changing to USD/EUR, but also the cost of shipping, and especially more expensive if their government impose more than 200% import tariff/tax and require many paperworks because graphics card is electronics, so don't suggest that as a solution either.

Fallback with notice.
A program crashing without telling why is horrible.

I support this, at least show some notice and not just straight up crashing

Any kind of software that just crash without telling why is garbage software

It doesn't have anything to do with people's backgrounds or locations or whether or not they can get the latest card, it has to do with conforming to the latest supported drivers. AMD themselves have even dropped support in their official driver stack for cards that are polaris and older. Nvidia did the same as well recently with their 700 and older series being dropped. It is not possible to move forward and advance in technology while retaining backwards compatibility with older card simply because you need the manpower, time, and experience to keep these older branches/trees rebased. In addition to that these older cards don't even support the latest versions of OpenGL, let alone Vulkan. The cards must support the APIs used for games, -not the other way around-. DXVK and VKD3D were designed for Vulkan, NOT OpenGL, and maintaining an OpenGL code path is -not- in the project's scope, regardless of what GPU you have.

The only reason an OpenGL code path exists in the first place is due to using wine as a base -- which includes wined3d. This code path is -not- maintained actively as part of proton's scope. As wine versions update and proton rebases on them, the newer changes from upstream wine get picked up as a result, but again this is not actively maintained within proton and as mentioned by kisak it is not an official supported renderer.

In addition to the above mentioned points, the original goal of proton was for SteamOS/Steam Deck hardware. If anyone is acting entitled it's you for expecting a free, open source software and the team surrounding it (which is not obligated to provide anything to you) to support your hardware. Many other softwares exist out there which do indeed require specific hardware in order to use them (some examples include anything using nvenc exclusively, and/or Davinci Resolve). Maybe think twice about both sides before being so hypocritical.

Ees20490446e 2022-08-15 github

What I'm trying to say is that sounds very logical in theory, but it doesn't really fit real world experience.

Real world experience is that Wine using OpenGL is very robust, same as old Radeon drivers.

And that a very particular game not working for a particular individual is less than a pain than nothing working at all.

Good design is a trade-off, and perfect is the enemy of good.

Ees20490446e 2022-08-15 github

But, as always, you at RedHat and Gnome can do as you wish.

For instance I have already coded my own Proton alternative, called exeCute.

Good luck.

GGloriousEggroll 2022-08-15 github

But, as always, you at RedHat and Gnome can do as you wish.

For instance I have already coded my own Proton alternative, called exeCute.

Good luck.

Me working at Red Hat has literally nothing to do with this. You're now grasping at straws for excuses. I'm not tied to valve, and my work at Red Hat has nothing to do with proton. In fact I work mostly on engineering back side for customer support on the RHEL OS side, which is completely irrelevant to anything here. You should not blindly judge a person by the company they work for.

Additionally, Wine using OpenGL again, has nothing to do with the scope of PROTON. Wine has it's own scope of compatibility and support, which is -not- the same as proton's.

Ees20490446e 2022-08-15 github

Last time.

I own a Radeon HD 5870. Which costs right now $25 dollars on eBay, and allows you to play many decent games at 60fps. For example: Rocket League, Soma, or The Dark Mod.

I have money to buy whatever I want. I just purchased new computer speakers for $400, because the old ones broke and the sound difference is abysmal.

But the point is, I don't see the reason to do the same with the GPU. Everything works flawlessly, and I game very rarely anyways because I just prefer to work. I'm sure this is the case for many people.

By the way I coded around 50 open source tools, and I'm currently maintaining over 70 open source software packages.

So don't tell me jokes about who contributes to open source. Furthermore designing good software is my real life job, and I'm incredibly good at it.

But, in the end of the day, I don't care. If someone is unwilling, what I always do is simply to code a better alternative and good luck. I don't care if you are Red Hat's receptionist, or a poor boy studying scaffolding in Mexico.

GGloriousEggroll 2022-08-15 github

Last time.

I own a Radeon HD 5870. Which costs right now $25 dollars on eBay, and allows you to play many decent games at 60fps. For example: Rocket League, Soma, or The Dark Mod.

I have money to buy whatever I want. I just purchased new computer speakers for $400, because the old ones broke and the sound difference is abysmal.

But the point is, I don't see the reason to do the same with the GPU. Everything works flawlessly, and I game very rarely anyways because I just prefer to work. I'm sure this is the case for many people.

Everything does not work flawlessly, otherwise there would not be a necessity to open this request. The drivers for your card are no longer supported by the vendor that provides it, it does not support vulkan, and in fact the OpenGL version is also outdated and it does not support DX12 at all:

DirectX
11.2 (11_0)

OpenGL
4.4

Vulkan
N/A

Again, as I mentioned, the GPU has to support the APIs used by modern software, not the other way around. It is not the fault of developers that their software scope does not cover your hardware's capabilities, or that your GPU does not support Vulkan, or that the OpenGL version is outdated due to age. You are free to use whatever tool gets the job done. Obviously proton does not do that job for your use case, but you cannot expect to be entitled to support for hardware that does not fit the scope requirements of the ongoing project.

By the way I coded around 50 open source tools, and I'm currently maintaining over 70 open source software packages.

So don't tell me jokes about who contributes to open source. Furthermore designing good software is my real life job, and I'm incredibly good at it.

Great, I personally have not attacked any of your projects nor have I made any comment about your personal income, job, social status, or otherwise. Nor have I brought them in as any kind of argument or retort, even though that's the first thing you did when I responded.

But, in the end of the day, I don't care. If someone is unwilling, what I always do is simply to code a better alternative and good luck. I don't care if you are Red Hat's receptionist, or a poor boy studying scaffolding in Mexico.

Except that you do care, otherwise you would not have brought up Red Hat to begin with after I joined the conversation. It was not me or anyone else who brought that up, you brought it up yourself.

Mmnh48 2022-08-15 github

"Poor people from Third world countries" wouldn't go through all the hassle of using Linux, Proton, Wine all this, they would simply play games on Windows if they want to play

you do realize that Windows is expensive? there's people who would use Linux because they don't need to pay for Windows license, and would not be pirating Windows because it's morally wrong (even if Microsoft don't care if people actually pirate it)


You just tried to link GE to his job and demean him, does he need to make Proton-GE and Nobara and many other projects when he can enjoy his job at RHEL? NO.

you quoted my reply but then talks about stuff I didn't say, I've not link anyone to any job in any part of my reply, read again

the entire first part of my reply is only directed to someone else who just write one sentence comment that came off as douchebag, "jUsT gEt A gRaPhIc CaRd", this has the same connotation as many other mockery like "if you don't earn enough then jUsT wOrK hArDeR" or "jUsT wOrK mUlTiPlE jObS" etc

the second part is what was relevant, I just say I support giving errors instead of just crashing

GGloriousEggroll 2022-08-16 github

"Poor people from Third world countries" wouldn't go through all the hassle of using Linux, Proton, Wine all this, they would simply play games on Windows if they want to play

you do realize that Windows is expensive? there's people who would use Linux because they don't need to pay for Windows license, and would not be pirating Windows because it's morally wrong (even if Microsoft don't care if people actually pirate it)

You just tried to link GE to his job and demean him, does he need to make Proton-GE and Nobara and many other projects when he can enjoy his job at RHEL? NO.

you quoted my reply but then talks about stuff I didn't say, I've not link anyone to any job in any part of my reply, read again

the entire first part of my reply is only directed to someone else who just write one sentence comment that came off as douchebag, "jUsT gEt A gRaPhIc CaRd", this has the same connotation as many other mockery like "if you don't earn enough then jUsT wOrK hArDeR" or "jUsT wOrK mUlTiPlE jObS" etc

the second part is what was relevant, I just say I support giving errors instead of just crashing

While yes, the comment could have most definitely been worded "nicer" -- the point still remains

that's less than 8 years old <

for the technical reasons noted in my initial comment. Many games have a limit for the lowest possible graphics hardware required in their minimum specs, either for API requirements, performance or otherwise. Proton is no different here. I understand the want for some kind of error message popup, that is reasonable, but that request is -not- the same as what was requested in the original post when this issue was opened: Support for non Vulkan graphic cards -- indicating a request for full support for GPUs that do not support Vulkan when the scope of the project has Vulkan as a hard requirement.

Ees20490446e 2023-04-18 github

I have coded an alternative to Proton that only installs vulkan dlls if the gpu supports it:
https://gitlab.com/es20490446e/exeCute

?ghost 2024-09-06 github

it's incredible that issue hasn't been resolved in the last 4 YEARS
if wined3d is not supposed to work at all (regardless of being the optimal experience or not) then why is "PROTON_USE_WINED3D" variable still there in the documentation and has been mentioned multiple times?
if it's supposed to work then why the hell it's completely ignored?
no reasonable person is asking for a full support that a device like steamdeck gets, if someone is running a 12 year old machine with linux on it, then they clearly understand that they are on their own
users should still be able to run games with opengl when vulkan is not available and just be warned that their machine is old
there are so many old dx9 games that users with old machines can play just fine

PPseudoDistant 2024-10-27 github

This is probably the first issue thread I've seen where both sides are belligerent jerks. o-o

I know this thread is old, but I feel a need to comment here because I personally do work a lot with older hardware (not because I have to, I have a few machines with Navi 3 graphics), but because it's a hobby of mine.

I'm telling you that a wide range of games works seamlessly under Wine without Vulkan, at 60fps stable, without being able to tell it isn't a non native game.

This is absolutely correct, even today. I have a couple of older pre-Vulkan machines with Terascale or older graphics (one of my favorites being a Penryn modded iMac 7,1 that I just got Linux on and am setting Steam up on now). Even in their old age, they still are more than adequate if you don't use Windows. I can run most web tasks on Firefox, Chromium, or Pale Moon just fine. I can play lighter and older games on them (even Minecraft can work smoothly with some tweaking). If I didn't do a lot of video editing these days, I could definitely daily drive a Core 2 era machine. If I'm just trying to play a game from 2010 or so that doesn't need newer than OpenGL 3.3, why do I need to go through the extra effort to set the "PROTON_USE_WINED3D" variable on literally every game I want to play on the thing?

Or just get a graphics card that's less than 8 years old?

https://www.youtube.com/watch?v=hpQQohcHk9Q
I really hate when people say this omfg

It doesn't have anything to do with people's backgrounds or locations or whether or not they can get the latest card, it has to do with conforming to the latest supported drivers.

As valid of an argument as this is in a lot of situations (technology always marches forward, and we always get better and more efficient as time goes on), that doesn't really apply in some contexts, especially if someone's just trying to play an older D3D7 game or so... I would be able to respect "there isn't enough of a userbase to justify the effort", I can't respect "uhm akshully those older APIs were vaporized by the hyper death ray of Nvidia RTX lol"

DXVK and VKD3D were designed for Vulkan, NOT OpenGL, and maintaining an OpenGL code path is -not- in the project's scope, regardless of what GPU you have.

I don't think they want DXVK on OGL. I think they want Proton to default to WineD3D if the card doesn't support Vulkan.

But, as always, you at RedHat and Gnome can do as you wish.
For instance I have already coded my own Proton alternative, called exeCute.
Good luck.

This was unnecessary, and just rude tbh...

You are free to use whatever tool gets the job done. Obviously proton does not do that job for your use case, but you cannot expect to be entitled to support for hardware that does not fit the scope requirements of the ongoing project.

This is a completely fair way to respond, and imo would've been perfectly adequate as a first response. It actually conveys the reasoning behind the decision instead of making up problems.

Just wanted to get my thoughts on this out there. I would very much like if it'd default to WineD3D on older hardware, just for the sake of convenience. But if that's out of scope for the project, or there isn't the userbase to warrant the effort, I can respect that. Just actually say that, don't say "hurr durr old gee pee you no exist lole" -_-

Launch options