Rather than creating a new device info tree for each call to `olGetDeviceInfo`, we instead do it on device initialisation. As well as improving performance, this fixes a few lifetime issues with returned strings. This does unfortunately mean that device information is immutable, but hopefully that shouldn't be a problem for any queries we want to implement. This also meant allowing offload initialization to fail, which it can now do.
Offload New API
This directory contains the implementation of the experimental work-in-progress new API for Offload. It builds on top of the existing plugin implementations but provides a single level of abstraction suitable for runtimes for languages other than OpenMP to be built on top of.
See the API definition readme for implementation details.