Open
Description
Closely related to:
- spawned by Improve graphics device capability detection, warn on old devices, early error on unsupported render targets #8476
- Improve error message (and investigate causes) for unsuitable GL adapter #6581
- Startup issues due to missing gpu/driver features (hard to read errors, unclear action) #7385
Today, we (that's egui) use request_adapter
to pick a graphics device. That's fine for many usecases, but it would be better if we went through all available adapters one by one using enumerate_adapters
and list out the reasons why we didn't pick each of them.
The result should be available both on failure case (none is suitable) and on success case (in debug log and upon request in the viewer)
It's tempting to pull out adapter creation entirely out of egui and into re_renderer. However we need to take into account the surface as well:
- this is a strict requirement when using WebGL
- on OpenGL & Linux it helps to know the surface because either Vulkan or OpenGL may not be happy with all surfaces
and by doing so we're still bound to surface creation which in turn is tied to window creation