oneapi-src / level-zero

oneAPI Level Zero Specification Headers and Loader
https://spec.oneapi.com/versions/latest/elements/l0/source/index.html
MIT License
211 stars 90 forks source link

Convenience method for error processing #134

Open kurapov-peter opened 6 months ago

kurapov-peter commented 6 months ago

Hi!

More often than not, error handling by the returned value takes the form of some macro checks that emit an exception or similar. E.g.,

#define L0_SAFE_CALL(call)                     \
  {                                            \
    auto status = (call);                      \
    if (status) {                              \
      throw some_exception(to_string(status)); \
    }                                          \
  }

To create a meaningful message it would be convenient to have a method in the loader that would take a single parameter - an error code - and return a string with the failure name. Even exposing the already-existing to_string function (https://github.com/oneapi-src/level-zero/blob/master/source/loader/ze_loader.cpp#L23) would be nice. This will make consumers not replicate it and avoid potential mismatches in case of any changes in the future.