@@ -526,10 +526,6 @@ namespace loader
526526 if ( NULL != handle )
527527 {
528528 driver.handle = handle;
529- loader::zeloaderInitDriverDDITables (&driver);
530- loader::zesloaderInitDriverDDITables (&driver);
531- loader::zetloaderInitDriverDDITables (&driver);
532- loader::zerloaderInitDriverDDITables (&driver);
533529 } else {
534530 std::string loadLibraryErrorValue;
535531 GET_LIBRARY_ERROR (loadLibraryErrorValue);
@@ -541,6 +537,42 @@ namespace loader
541537 }
542538 }
543539
540+ if (driver.handle && !driver.ddiInitialized ) {
541+ auto res = loader::zeloaderInitDriverDDITables (&driver);
542+ if (res != ZE_RESULT_SUCCESS ) {
543+ if (debugTraceEnabled) {
544+ std::string message = " init driver " + driver.name + " failed, zeloaderInitDriverDDITables returned " ;
545+ debug_trace_message (message, loader::to_string (res));
546+ }
547+ return res;
548+ }
549+ res = loader::zesloaderInitDriverDDITables (&driver);
550+ if (res != ZE_RESULT_SUCCESS ) {
551+ if (debugTraceEnabled) {
552+ std::string message = " init driver " + driver.name + " failed, zesloaderInitDriverDDITables returned " ;
553+ debug_trace_message (message, loader::to_string (res));
554+ }
555+ return res;
556+ }
557+ res = loader::zetloaderInitDriverDDITables (&driver);
558+ if (res != ZE_RESULT_SUCCESS ) {
559+ if (debugTraceEnabled) {
560+ std::string message = " init driver " + driver.name + " failed, zetloaderInitDriverDDITables returned " ;
561+ debug_trace_message (message, loader::to_string (res));
562+ }
563+ return res;
564+ }
565+ res = loader::zerloaderInitDriverDDITables (&driver);
566+ if (res != ZE_RESULT_SUCCESS ) {
567+ if (debugTraceEnabled) {
568+ std::string message = " init driver " + driver.name + " failed, zerloaderInitDriverDDITables returned " ;
569+ debug_trace_message (message, loader::to_string (res));
570+ }
571+ return res;
572+ }
573+ driver.ddiInitialized = true ;
574+ }
575+
544576 return ZE_RESULT_SUCCESS ;
545577 }
546578
0 commit comments