-
-
Notifications
You must be signed in to change notification settings - Fork 271
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
[Poll]: Experimental versions of dxvk, vkd3d #2223
Comments
having the choice is always great so I vote for it an ask for an other option: to chose the proton versions from the installed steam (heroic can do that) |
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as resolved.
This comment was marked as resolved.
Might be outside the scope, but if this gets approved, then it might be beneficial to create a CI to pull the latest once a day or something like that, alongside custom Wine runners (Lutris, WineGE, etc.), and DXVK-NVAPI/LatencyFlex. Should be pretty easy to set up in Github Actions. |
@keenanweaver Yes, by chance both DXVK and VKD3D-Proton already have their CI set up with Github Actions, so it is only a matter of using this action with Concerning other components/runners I would say that WineGE is already released fairly regularly, and DXVK-NVAPI/LatencyFlex are nowhere near as critical as DXVK/VKD3D-Proton but hey, they also both have their CI set up with Github Actions so it wouldn't cost anything to add them too. In fact the most complicated might be UX wise : after choosing to install let's say Imho it could be a very confusing/frustrating feature if there is some sort of automation involved (in addition to be a lot more painful to implement and prone to failure), so it may be better to let the installation be manual at all times : keep showing the currently installed version (e.g |
Since Bottles works with manifests, it'd be retrieving all the information regarding an artifact or release and generating the manifest based on that info, then, of course, automerging to the repo. Not sure how it works on the backend if the changes are immedately shown to the user once a change is merged, but from my PRs to the components repo, it's been fairly fast. The pieces of information we'd need to get from each component are the following:
Examples: Name: dxvk-async-1.10.3
Provider: Sporif
Channel: stable
File:
- file_name: dxvk-async-1.10.3.tar.gz
url: https://github.com/Sporif/dxvk-async/releases/download/1.10.3/dxvk-async-1.10.3.tar.gz
file_checksum: 7132c23fe8d7b1353509e26d76bf153c
rename: dxvk-async-1.10.3.tar.gz Name: wine-ge-7-29
Provider: gloriouseggroll
Channel: stable
File:
- file_name: wine-lutris-GE-Proton7-29-x86_64.tar.xz
url: https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-29/wine-lutris-GE-Proton7-29-x86_64.tar.xz
file_checksum: 077a5548a533e17f9d1c9f8a0e9dcd02
rename: wine-ge-7-29.tar.xz
Post:
- action: rename
source: lutris-GE-Proton7-29
destination: wine-ge-7-29 All of the above should be easily attainable using jobs or the Github API. Using the script here might be good enough for the CI. But it's probably better to translate as much as possible to Github Action language instead of running scripts.
I could see it going several ways. There could be a generic 'dxvk latest experimental' or something entry, which manages it all for the user. Or it'd be how it currently works where it's just a list of available components to install. I don't think Bottles should try to auto-update or manage stuff for the user unless it was super, super stable. What should be automated is the detection and merging of components to the repo so the changes appear to the user quickly without waiting for some person to submit a PR and get it approved. Someone out there really wants to run the latest WineGE but might have to wait a few days if a PR isn't submitted & approved. Agreed regarding the build list. It'd just be a giant list of experimental builds for each component deemed worthy of tracking artifacts. Maybe have it clear out once a month and retain the ones the user has installed in the list. All I know is it will be a bad experience having to scroll through hundreds of artifacts in the Bottles UI. |
Unfortunately, the CI would need to do more than retrieving information about artifacts, it needs to download them for at least 3 reasons :
This is why I linked an artifact downloader action earlier, I guess the simplest effective CI would be looking roughly like the following :
I don't know, python could be installed on a runner in one line, and maintaining one script look easier than maintaining two so it may be worth to keep using MaintainersHelpers after all.
For the name, maybe it could retains the same convention introduced by vkd3d-proton-2.6-1-5b73139? Having the commit sha could be interesting if looking for a particular feature introduced or bug fix.
It would be really great, I was so focused on incremental builds that I didn't even think the same process could be done for official release!
Even now, once installed it is forever retained until manually deleted (by clicking on the trash icon in the UI) so we don't need to worry about this part, but you're right the 1 million dollar question is : how many experimental builds is too many experimental builds? 😳 This poll would probably gives some insights. |
Hi,
And experimental version of:
An example of pull request created by the CI here. You'll see that the The only downside is that it requires a major rewrite of the Bottle source code... Just kidding (:sweat_smile:), it is working outside of the box for every listed component, except for Wine-GE which needs a minor change in preferences.py: replacing occurences of The CI is generic enough so that virtually any component can be added if it could be described in the following format: {repo : "doitsujin/dxvk", workflow: "artifacts.yml", branch: "master", name-prefix: "dxvk-", version-prefix: "v", Category: "dxvk", Sub-category: "", yaml-file: "14-dxvk.yml" }, The reason why The next steps would be:
Maintainers, please tell me if it's something worth keeping working on it, just so I don't invest more time in it if it's not. For the record, I currently spent one week worth of work in it. |
Nice job! I would prefer to keep wine-ge in lowercase if possible, for consistency with the other runners (GE-Proton will be renamed too) |
Thanks! Well if |
@mirkobrombin I've updated the workflow and it now supports both However I've spotted an issue that I didn't see before: it seems that Post:
- action: rename
source: lutris-GE-Proton7-34
dest: wine-ge-7-34 In your opinion what would be the most simple way to support it without resorting to |
I think we can't escape from this workaround, since wine-ge changed its name months ago from GE-Wine to Wine-GE, plus the project name is Wine GE but the archive is wine-ge-lutris which may confuse users a lot |
Ok, I'll add it in the next revision |
Is it in the cards to set up an auto approve action? It's wonderful the PRs are automated, but the cherry on top would be auto-merging. It's probably wise to see the CI in action for a few cycles before setting up auto-approve, though. |
I agree |
Sure, I need to open a PR and get it merged for dawidd6/action-download-artifact#210 (otherwise perfectly valid runs like this won't pass the CI), but after that it should be easy to implement as the action you linked seems really straightforward to use |
My PR for dawidd6/action-download-artifact#210 got accepted, so as requested I implemented the auto-merging feature: it uses the native auto-merge GitHub feature (so it will not conflict with any other checks if more are added in the future) in conjunction with the auto-approve action that @keenanweaver linked It needs:
|
The pull request is now live 🎉 |
As you all know, Proton Experimental as well as ProtonGE both ship the bleeding edge git versions of dxvk and vkd3d, which benefit from latest developments regarding compatibility for new game releases as well as new features. These versions being bleeding edge also have the downsides of potentially breaking games.
Considering all this a poll is being created to decide whether those versions should be available for installing directly from within Bottles for people who want test newer versions.
Those versions won't be downloaded by default and users who want to try them have to do so by manually installing them from components page.
Please upvote or downvote depending on your preference.
The text was updated successfully, but these errors were encountered: