-
Notifications
You must be signed in to change notification settings - Fork 1.1k
[d3d12 wgl] Upgrade to windows 0.62 crates
#6876
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
Conversation
| return Ok(()); | ||
| } | ||
| unsafe { OpenGL::wglMakeCurrent(None, None) } | ||
| unsafe { OpenGL::wglMakeCurrent(Default::default(), Default::default()) } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kennykerr can you help us here? I did not do my due diligence this time to search through windows-rs and win32metadata for relevant changes, but while most handles have been made optional (see other Some() wrapping changes in this PR), quite strangely these parameters are no longer optional in wglMakeCurrent() where they have a specific use-case to uncurrent the context.
Is this change intended or accidental? We can clearly get around it by passing a defaulted HDC/HGLRC, but it seems strange when compared to other functions where None can be passed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code generator now faithfully honors the metadata's [Optional] attribute - in the case of wglMakeCurrent the handle parameters are not optional whereas in the case of CreateSwapChainForCompositionSurfaceHandle the handle parameter is optional.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @kennykerr. So this'll take another trip through win32metadata to annotate correctly.
7841fa7 to
d9cd506
Compare
|
Just to set expectations here, we likely can't merge this for a bit, as firefox is currently on 0.58 and migration will be a bit of a thing. @ErichDonGubler will take charge of this. I don't expect there to be a ton of problems with this PR just hanging out for a while. I'm going to mark this as draft as we can't merge it, but @Wumpf will review it still. |
|
@cwfitzgerald that's all good, I don't expect this to be merged until the upgrade has fully trickled through the ecosystem. Just making sure we have a PR open with all the necessary changes that I couldn't make in the original |
This comment was marked as outdated.
This comment was marked as outdated.
|
Regarding |
Under the assumption that windows-sys = { version = ">=0.58, <=0.59"See quinn-rs/quinn#2021 as an example from one of our upstream dependencies. @ErichDonGubler let me know what works best for you. |
This comment was marked as resolved.
This comment was marked as resolved.
Wumpf
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fwiw code lgtm and took it on a spin running examples locally
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
d9cd506 to
d44db74
Compare
@ErichDonGubler I think we can arrange this pretty quickly, let us know when the time is there (and you haven't yet upgraded to |
d44db74 to
77cef5a
Compare
This comment was marked as resolved.
This comment was marked as resolved.
|
Sorry I completely dropped the ball on this and there are quite a few new versions already. I'll get back to the second bump ASAP, as long as Mozilla is okay with the next bumps? |
|
@MarijnS95: The way to keep this tractable is almost certainly to keep uograde steps incremental, so don't feel like you need to throw away efforts to target 0.59 without a strong concrete blocker. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
We tend not to repeatedly vet these crates, with the recent move in wgpu from Dependabot to Renovate. It was awful before that point. Those specific dependencies are getting updated in that patches series because IIRC some other crate required a new minimum version on the road to getting upgraded to support |
|
RE: the set of PRs to keep open: I think consolidating everything into this PR would make things significantly easier to follow for everyone. We don't actually intend to land things incrementally, so multiple PRs sound only like additional complication. |
This was mostly in respect to first being on one end of the spectrum (no response for weeks) to then jumping all the way to the other with force-pushes and respin PRs (something I tend to use sparingly when a contributor hasn't responded for weeks and I really want to get their change in after some minor CI/review fixups).
Does that mean you're now skipping certain patch releases or just postponing the Renovate PRs until a vet is possible/completed?
Ah, yup, https://github.com/gfx-rs/wgpu/pull/8013/files#diff-13ee4b2252c9e516a0547f2891aa2105c3ca71c6d7a1e682c69be97998dfc87e hits quite a lot of transitive bumps. Wish those were (mostly) unnecessary 😓 |
windows 0.59 crateswindows 0.62 crates
Ah, that wasn't intended as a respin, sorry! I had pushed branches and a temp PR already so I had a stable point of reference for making sure things were viable in Firefox. I had no illusions that I'd get that through without working with you. The force-pushes were mostly so I could keep 0.62 changes on top of a rebased set of your patches. I promise I didn't change anything substantially! But then again...force-pushes on others' stuff still usually deserves more explanation than a ETA: Oh, yeah, I had also force-pushed to take care of a TOML formatting failure. |
Actually, we can have our cake and eat it, too. Renovate actually implements bumping |
|
I've dropped all transitive dependency upgrades now, the revert seems to mostly contain Some |
|
We'll also need microsoft/windows-rs#3785; having case-insensitive collisions b/w |
231387f to
ce97257
Compare
|
Oh noes, cased files on a case-insensitive filesystem. /me shudders in |
1736a0f to
6d4bc75
Compare
|
I'm making a new index comment here for the set of dependencies that need an upgrade before Mozilla can consume this. Fortunately, it's a rather small list! |
https://github.com/microsoft/windows-rs/releases/tag/0.61.0 The latest `windows 0.59` and `windows-core 0.59` crates were just released (strangely tagged `0.61`), including some minor code improvements for us. The MSRV has been bumped to `1.74`, but `wgpu` is already on `1.76` anyway.
6d4bc75 to
58c9e29
Compare
|
I'm going to merge this, because the last straggler for upgrade in Firefox (CC @larseggert) has an approved PR, and it's fairly easy to backport that PR to whatever revision base that |
|
On behalf of the entire wgpu maintainership in a meeting just now, I'd like to thank @MarijnS95 for the tireless work in this PR to keep things coordinated, and patience with my (sometimes conflicting) efforts to shepherd this forward. It's not easy to move forward an entire software ecosystem, but you've done just that. ❤️ |
|
Notes from today's maintainers' meeting:
|
* [d3d12 wgl] Upgrade to `windows 0.59` crates https://github.com/microsoft/windows-rs/releases/tag/0.61.0 The latest `windows 0.59` and `windows-core 0.59` crates were just released (strangely tagged `0.61`), including some minor code improvements for us. The MSRV has been bumped to `1.74`, but `wgpu` is already on `1.76` anyway. * [d3d12 wgl] Upgrade to `windows 0.61` crates https://github.com/microsoft/windows-rs/releases/tag/63 * [d3d12 wgl] Upgrade to windows 0.62 crates https://github.com/microsoft/windows-rs/releases/tag/69
This required a coordinated upgrade of several crates at the same time: - Backports in `third_party/rust/`, which have been merged upstream, and should pose no conflict when next integrated from mainline history: - `midir`: [Boddlnagg/midir#178](Boddlnagg/midir#178) - `neqo`: [mozilla/neqo#3091](mozilla/neqo#3091) - `memtest`: [mozilla/memtest#18](mozilla/memtest#18) - Consumed by `toolkit/crashreporter/client/app/`. - `wgpu*` and `naga` crates: [wgpu#6876](gfx-rs/wgpu#6876) - This is consumed by `gfx/wgpu_bindings/`. - Includes an upgrade to `gpu_allocator` 0.27.0 → 0.28.0. This could have been an incremental migration first, but I missed it while figuring out what supporting work to break out. Fortunately, this isn't difficult to review. - `widget/windows/rust/` needed some migration in its direct dependencies, too. All backports have already been merged upstream, and so should pose on conflict when next integrated. Differential Revision: https://phabricator.services.mozilla.com/D266878
Connections
https://github.com/microsoft/windows-rs/releases/tag/0.61.0
https://github.com/microsoft/windows-rs/releases/tag/63
https://github.com/microsoft/windows-rs/releases/tag/69
Description
Uses the latest
windows 0.62andwindows-core 0.62releases, including some minor code improvements for us. The MSRV has been bumped to1.74, butwgpuis already on1.76anyway.Testing
Checklist
cargo fmt.taplo format.cargo clippy. If applicable, add:--target wasm32-unknown-unknown--target wasm32-unknown-emscriptencargo xtask testto run tests.CHANGELOG.md. See simple instructions inside file.