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
Add dxvk-gplasync as a compatibility tool #243
Comments
There is no existing logic that can fetch from GitLab, so it would take a bit of extra effort to implement, but it should be feasible to add this for Lutris. Once we figure out DXVK etc for Heroic it would also be possible to implement for Heroic as well. It is probably possible to use this tool with Proton but it would involve modifying Proton builds'
Turns out I was wrong 😛 I spent a long time trying to figure out how to navigate GitLab, and eventually found a small "releases" link. Indeed, this project does have regular releases: https://gitlab.com/Ph42oN/dxvk-gplasync/-/releases - And we can get the releases from the GitLab's API calls seem to consistently use pagination, however unlike for other parts of the docs, I can't see how many this API returns per-page. The standard for them seems to be 20, so it may return 20 releases. Currently there are not 20 releases, but this is a consideration for the future. Since the API response will differ from GitHub's, we'll probably need a separate ctmod for this tool anyway. Extraction will probably mirror other similar files. I have been considering for a while to look into creating some generic helper methods to handle extraction, which we can call from ctmods, instead of having "loose" extraction logic around different ctmods. Perhaps when implementing this ctmod (if at all) we could look into creating some kind of "common" extraction code. As well as this, the GitHub API check we use may need updated or extended in some way to check for GitLab rate limits, and we would probably also want to differentiate and mention when a GitLab API call fails versus when a GitHub API call fails - it's possible that a user could be rate-limited from downloading a bunch of tools from GitHub, but they'd still be able to download these GitLab tools fine.
|
As an aside, I am wondering what the likelihood of this being "upstreamed" into dxvkasync is. The same argument could be made and has been made for D8VK potentially eventually being merged upstream into DXVK, and we still include that. |
I wanted to take a look at this a while back, but work+other projects got on top of me a little bit. Might take a look at it later this week if I can spare some time, the main thing is as mention allowing downloads from both GitHub and GitLab, since they are two different APIs. The extraction and general makeup of the ctmod should be similar, it just has to download from GitLab using that API. A while ago I also looked a bit into creating some kind of base ctmod class, I think I ran into a couple of issues basically with the best way to break things apart. In my head I probably wanted to do that first, since then downloading would be more generic, but that all can probably wait as it would be a pretty big rework probably across at least a couple of PRs. I also wanted to try and merge the DXVK ctmods into one base like I did with Proton-tkg, but I think as well I ran into some problems, though I haven't done much contribution to ProtonUp-Qt in a while and can't remember any details 😅 I'd still like to look at it as the work I've been doing on other projects has subsided and my personal life has settle down a little bit, so if no one else is doing it I can make an attempt sometime this week unless someone is already doing so :-) I'll update if I don't get time or get anywhere. To update on my comment from earlier, D8VK is actually in the process of being upstreamed, but it still has a bunch of review to go through by the looks of it. However I don't think there is any plans from either DXVK/Valve or the author of this DXVK fork to do any upstreaming work (hosting on GitLab as well would also make this a little more difficult). |
I think upstreaming of async was chosen to not happen by DXVK dev pretty long ago. It looks like most people think async is not needed anymore because of Graphics Pipeline Library. That seems to be true in most games but there are situations with more stutter than async. It made me think why not both, and thats why gplasync was created. I think getting this to upstream DXVK is very unlikely. Getting this patch to GE-proton is possibility, but i am in GE discord server and people don't seem to care about this. |
I'm taking a look at implementing this, hoping to get a draft PR up soon :-) |
PR is up at #302, it wasn't nearly as infeasible of a refactor as I thought, but it also wasn't trivial and may still change based on PR feedback :-) Feel free to take a look at the code if you'd like! |
Describe the solution you'd like
To add this project
dxvk-gplasync
as an compatibility tool option.It is an dxvk async fork which increases performance well beyond what the 2.0 version does and brings a signficant boost in performance on low end PCs. Way more than the async dxvk 2.0. Well atleast on my machine lol.
I hope you consider this feature request!
Also not related to this request lol but TYSM protonup-qt!! It helped a lot and was one of the main factors for me to try switching to linux full time.
The text was updated successfully, but these errors were encountered: