[llvm] [OFFLOAD][L0] Don't return error on initImpl if library/drivers are missing (PR #210083)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 16 08:28:02 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-offload

Author: Alex Duran (adurang)

<details>
<summary>Changes</summary>

When a Level Zero driver is not present in the environment the current behavior makes olInit fail if the level_zero plugin is requested. This changes the behavior to match other plugins where it doesn't fail but return 0 supported devices.

---
Full diff: https://github.com/llvm/llvm-project/pull/210083.diff


1 Files Affected:

- (modified) offload/plugins-nextgen/level_zero/src/L0Plugin.cpp (+14-2) 


``````````diff
diff --git a/offload/plugins-nextgen/level_zero/src/L0Plugin.cpp b/offload/plugins-nextgen/level_zero/src/L0Plugin.cpp
index c5688e574254c..85733255cebd1 100644
--- a/offload/plugins-nextgen/level_zero/src/L0Plugin.cpp
+++ b/offload/plugins-nextgen/level_zero/src/L0Plugin.cpp
@@ -26,9 +26,21 @@ using namespace llvm::omp::target;
 using namespace error;
 
 Expected<int32_t> LevelZeroPluginTy::findDevices() {
-  CALL_ZE_RET_ERROR(zeInit, ZE_INIT_FLAG_GPU_ONLY);
+  ze_result_t RC;
+  CALL_ZE(RC, zeInit, ZE_INIT_FLAG_GPU_ONLY);
+  if (RC != ZE_RESULT_SUCCESS) {
+    ODBG(OLDT_Init) << "Cannot initialize Level Zero library. Error: "
+                    << getZeErrorName(RC);
+    return 0;
+  }
+
   uint32_t NumDrivers = 0;
-  CALL_ZE_RET_ERROR(zeDriverGet, &NumDrivers, nullptr);
+  CALL_ZE(RC, zeDriverGet, &NumDrivers, nullptr);
+  if (RC != ZE_RESULT_SUCCESS) {
+    ODBG(OLDT_Init) << "Error getting number of drivers. Error: "
+                    << getZeErrorName(RC);
+    return 0;
+  }
   if (NumDrivers == 0) {
     ODBG(OLDT_Init) << "Cannot find any drivers.";
     return 0;

``````````

</details>


https://github.com/llvm/llvm-project/pull/210083


More information about the llvm-commits mailing list