Why does it pull in wgpu if it's a software renderer?
In this case wgpu is just providing the surface texture for the window that the software rendered pixels are drawn into.
You do often need a graphics context to create the surface that displays the framebuffer.
In this case wgpu is just providing the surface texture for the window that the software rendered pixels are drawn into.