sotrh/learn-wgpu

wgpu and winit update tracker

ifsheldon opened this issue · 13 comments

Hey! Here is just a heads-up that wgpu 0.18 and winit 0.29.2 came up recently with a lot breaking changes.

For the breaking changes from wgpu, please see https://github.com/gfx-rs/wgpu/releases/tag/v0.18.0. I think these are easy to be fixed when upgrading from 0.17.

However, for the newer winit, it brings a LOT API changes. See https://github.com/rust-windowing/winit/releases/tag/v0.29.2

I think virtually a rewrite on sections about windowing is needed.

If it helps, I just did the upgrade to winit 0.29.2 for my wgpu DVR renderer in this commit. In short, we need to:

  • enable a feature rwh_05 of winit for raw-window-handle traits
  • checkout (a lot) breaking changes about window events and key events
  • handle subtle changes to redrawing behavior

But wait, why do we need to upgrade winit?

I don't know honestly, because when I upgraded wgpu from 0.17 to 0.18 while keeping winit as 0.27, my code weirdly breaks because an abnormal resize event which gives a new window size to (u32::max, u32::max). I thought that should be a bug from winit so I upgraded winit as well. Probably winit 0.27 does not work with macOS Sonoma, I don't know, but now the problem is gone, so I don't want to dig deeper.

sotrh commented

I've already upgraded to 0.18, but an upgrade to winit 0.29 might take a little longer. I created different demo using winit 0.29 so hopefully it shouldn't be too painful.