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

Update to latest wgpu-native #359

Closed
15 of 16 tasks
almarklein opened this issue May 12, 2023 · 11 comments
Closed
15 of 16 tasks

Update to latest wgpu-native #359

almarklein opened this issue May 12, 2023 · 11 comments

Comments

@almarklein
Copy link
Member

almarklein commented May 12, 2023

For context, the last update was #289 and finished January 2023.

Preparations:

  • Any outstanding issues or PR's in wgpu-py or pygfx that we want to apply first? -> Nope!
  • Make a release of wgpu-py: Bump version #368
  • Make a release of pygfx against the latest wgpu-py version before the update: Bump version pygfx#593
  • Update wgpu-native to lates wgpu-core, if necessary. (done 2 days ago)
  • Update wgpu-native to lates webgpu.h, if necessary. (no need, is just about 2 weeks old)
  • Release wgpu-native, if necessary. Latest release (0.17.0.2) is from 25-07-2023. -> Already done: 0.17.2.1

Updating:

More improvements after-care:

  • Any outstanding issues that make sense to apply now? Perhaps implement some of the stuff that is available in wgpu-native but not yet in wgpu-py?

wgpu-native versions

  • 0.14.2.3 (25-01-2023) This is what we're currently at.
  • 0.14.2.4 (30-01-2023)
  • 0.15.1.1 (14-02-2023)
  • 0.15.1.2 (27-02-2023)
  • 0.16.0.1 (28-04-2023)
  • 0.16.1.1 (06-06-2023)
  • 0.16.2.1 (12-07-2023)
  • 0.17.0.1 (24-07-2023)
  • 0.17.0.2 (25-07-2023)
  • 0.17.2.1 (06-10-2023
@zk-tarts
Copy link

Hey! I'm interested in having wgpu-py working with the latest version of wgpu-native.

I tried running the update script(s), Ran into another issue that needed fixing.
This pr gfx-rs/wgpu-native#243 changed the api for getting present modes.

Also its worth noting somewhere that the WGSL language has changed since the release
type became alias and top level let is disallowed in favour of const https://github.com/gfx-rs/wgpu/releases

@almarklein
Copy link
Member Author

Yeah, the update process typically comes with added complexities :) - We have the update planned after the current work on mesh morphing.

@hmaarrfk
Copy link
Contributor

I would be interesting in helping out to some extent. I've managed to compile wgpu-native for conda forge so hopefully this should make this a "python only exercise".

https://github.com/conda-forge/wgpu-native-feedstock/

I'm happy to compile a few intermediate versions as well if that helps.

Second, there would be the challenge of updating your CIs for PyPI. I know that isn't always trivial.

@almarklein
Copy link
Member Author

Thanks. Well one thing that would be great, since the wgpu-native binaries are now on conda, is to enable wgpu-py to use these. I.e. check whether the binary is bundled or detectable on conda, and select one.

Second, there would be the challenge of updating your CIs for PyPI.

Sorry, what do you mean? We already publish binary wheels to pypi. Not sure if its related to your comment, but the wgpu-native repo has CD setup to produce binaries (using manylinux).

@hmaarrfk
Copy link
Contributor

wgpu-py to use these

wgpu-py, as installed from conda-forge will use these today. it will pin to the specific version you use since there were some breaks when i tried to use version 0.17

Second, there would be the challenge of updating your CIs for PyPI.

I mean that there work going from version 0.14 to 0.17 and sometimes compilation fails. Not sure if it really is as easy as updating a single line in a configuration file.

@Korijn
Copy link
Collaborator

Korijn commented Sep 18, 2023

You appear to misunderstand the setup here. Let me try to clarify:

So updating wgpu-py to a newer version of wgpu-native is a three step process:

  • Pinning to a new version of wgpu-native
  • Determining what portion of the wrappers need to be updated
  • Updating and testing the wrappers

@almarklein
Copy link
Member Author

Not sure if it really is as easy as updating a single line in a configuration file.

Hihi, I was it was 😄 But the "Determining what portion of the wrappers need to be updated" step that Korijn mentions above is a pretty big step that will cost me multiple days, especially now that we're behind wgpu-native by quite a bit.

@hmaarrfk
Copy link
Contributor

Thanks for the explanation. In your experience, would it make sense to update from

  • 0.14 to 0.15, then from 0.15 to 0.16, then from 0.16 to 0.17

or to just try to do the leap from

  • 0.14 to 0.17

Is there a blocker, perhaps meshmorphing, that you still want to accomplish before this work is undertaken (potentially by others)

@almarklein
Copy link
Member Author

almarklein commented Sep 18, 2023

It depends on the situation, i.e. what changes are made in each release. But it might indeed be easier to do it in 2 steps (or more).

Is there a blocker, perhaps meshmorphing, that you still want to accomplish before this work is undertaken

Yeah, I'm still wrapping up the meshmorphing now.

@Korijn
Copy link
Collaborator

Korijn commented Oct 3, 2023

Just letting all the subscribers here know @almarklein is working on this now, see #370

If you're curious to see what the work entails, this is your moment to observe

@almarklein
Copy link
Member Author

Also see the top post in this issue, that I use for planning the update.

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

4 participants