@@ -509,10 +509,6 @@ namespace loader
509509 if ( NULL != handle )
510510 {
511511 driver.handle = handle;
512- loader::zeloaderInitDriverDDITables (&driver);
513- loader::zesloaderInitDriverDDITables (&driver);
514- loader::zetloaderInitDriverDDITables (&driver);
515- loader::zerloaderInitDriverDDITables (&driver);
516512 } else {
517513 std::string loadLibraryErrorValue;
518514 GET_LIBRARY_ERROR (loadLibraryErrorValue);
@@ -524,6 +520,42 @@ namespace loader
524520 }
525521 }
526522
523+ if (driver.handle && !driver.ddiInitialized ) {
524+ auto res = loader::zeloaderInitDriverDDITables (&driver);
525+ if (res != ZE_RESULT_SUCCESS) {
526+ if (debugTraceEnabled) {
527+ std::string message = " init driver " + driver.name + " failed, zeloaderInitDriverDDITables returned " ;
528+ debug_trace_message (message, loader::to_string (res));
529+ }
530+ return res;
531+ }
532+ res = loader::zesloaderInitDriverDDITables (&driver);
533+ if (res != ZE_RESULT_SUCCESS) {
534+ if (debugTraceEnabled) {
535+ std::string message = " init driver " + driver.name + " failed, zesloaderInitDriverDDITables returned " ;
536+ debug_trace_message (message, loader::to_string (res));
537+ }
538+ return res;
539+ }
540+ res = loader::zetloaderInitDriverDDITables (&driver);
541+ if (res != ZE_RESULT_SUCCESS) {
542+ if (debugTraceEnabled) {
543+ std::string message = " init driver " + driver.name + " failed, zetloaderInitDriverDDITables returned " ;
544+ debug_trace_message (message, loader::to_string (res));
545+ }
546+ return res;
547+ }
548+ res = loader::zerloaderInitDriverDDITables (&driver);
549+ if (res != ZE_RESULT_SUCCESS) {
550+ if (debugTraceEnabled) {
551+ std::string message = " init driver " + driver.name + " failed, zerloaderInitDriverDDITables returned " ;
552+ debug_trace_message (message, loader::to_string (res));
553+ }
554+ return res;
555+ }
556+ driver.ddiInitialized = true ;
557+ }
558+
527559 return ZE_RESULT_SUCCESS;
528560 }
529561
0 commit comments