Why is window.request_redraw() invoked when handling Event::AboutToWait? I believe it would be better done when handling WindowEvent::RedrawRequested.
According to the winit docs on AboutToWait:
This is not an ideal event to drive application rendering from and instead applications should render in response to WindowEvent::RedrawRequested events.
Moreover, the wgpu examples seem to follow this advice.