@@ -63,7 +63,7 @@ namespace loader
6363 if (!loader::context->sortingInProgress.exchange(true) && !loader::context->instrumentationEnabled) {
6464 std::call_once(loader::context->coreDriverSortOnce, []() {
6565 loader::context->driverSorting(&loader::context->zeDrivers, nullptr, false);
66- loader::context->defaultZerDriverHandle = & loader::context->zeDrivers.front().zerDriverHandle;
66+ loader::context->defaultZerDriverHandle = loader::context->zeDrivers.front().zerDriverHandle;
6767 loader::defaultZerDdiTable = &loader::context->zeDrivers.front().dditable.zer;
6868 });
6969 loader::context->sortingInProgress.store(false);
@@ -156,6 +156,10 @@ namespace loader
156156 }
157157 phDrivers[ driver_index ] = reinterpret_cast<ze_driver_handle_t>(
158158 context->ze_driver_factory.getInstance( phDrivers[ driver_index ], &drv.dditable ) );
159+ if (drv.zerDriverHandle != nullptr) {
160+ drv.zerDriverHandle = reinterpret_cast<ze_driver_handle_t>(
161+ context->ze_driver_factory.getInstance( drv.zerDriverHandle, &drv.dditable ) );
162+ }
159163 } else if (drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) {
160164 if (loader::context->debugTraceEnabled) {
161165 std::string message = "Driver DDI Handles Supported for " + drv.name;
@@ -208,7 +212,7 @@ namespace loader
208212 if (!loader::context->sortingInProgress.exchange(true) && !loader::context->instrumentationEnabled) {
209213 std::call_once(loader::context->coreDriverSortOnce, [desc]() {
210214 loader::context->driverSorting(&loader::context->zeDrivers, desc, false);
211- loader::context->defaultZerDriverHandle = & loader::context->zeDrivers.front().zerDriverHandle;
215+ loader::context->defaultZerDriverHandle = loader::context->zeDrivers.front().zerDriverHandle;
212216 loader::defaultZerDdiTable = &loader::context->zeDrivers.front().dditable.zer;
213217 });
214218 loader::context->sortingInProgress.store(false);
@@ -303,6 +307,10 @@ namespace loader
303307 }
304308 phDrivers[ driver_index ] = reinterpret_cast<ze_driver_handle_t>(
305309 context->ze_driver_factory.getInstance( phDrivers[ driver_index ], &drv.dditable ) );
310+ if (drv.zerDriverHandle != nullptr) {
311+ drv.zerDriverHandle = reinterpret_cast<ze_driver_handle_t>(
312+ context->ze_driver_factory.getInstance( drv.zerDriverHandle, &drv.dditable ) );
313+ }
306314 } else if (drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) {
307315 if (loader::context->debugTraceEnabled) {
308316 std::string message = "Driver DDI Handles Supported for " + drv.name;
0 commit comments