What does wgpu actually *do*?
So I'm wondering about graphics. My understanding of how they work is that shaders run on the gpu, that output is used somehow to create ✨graphics✨; and I know that opengl, vulkan, etc can help with that. I would think that wgpu would be similar.
wgpu is a safe and portable graphics library for Rust based on the WebGPU API. It is suitable for general purpose graphics and compute on the GPU.
Applications using wgpu run natively on Vulkan, Metal, DirectX 12, and OpenGL ES; and browsers via WebAssembly on WebGPU and WebGL2.
but this (the description from wgpu homepage) is tripping me up. if wgpu serves the same purpose as opengl and vulkan, what does it mean for it to "run" on one of those? based on that description, presumably wgpu is more generic than opengl or vulkan, but if so, what can it actually do? and if one is trying to make an application that has graphics, would one only need wgpu? or would they need other stuff?
furthermore, what do these libraries provide beyond just shaders? do they somehow make it easier to use them? if graphics are on the gpu, then why is there a non-shader interface at all? what does that provide?