@@ -114,7 +114,7 @@ namespace loader
114114 uint32_t total_driver_handle_count = 0;
115115 % if re.match(r " \w + InitDrivers$ " , th.make_func_name(n, tags, obj)):
116116 for( auto& drv : loader::context->zeDrivers ) {
117- if (!drv.handle) {
117+ if (!drv.handle || !drv.ddiInitialized ) {
118118 loader::context->init_driver( drv, 0, desc, nullptr, nullptr, false );
119119 }
120120 }
@@ -153,15 +153,16 @@ namespace loader
153153 %endif
154154 {
155155 % if not (re.match(r " \w + InitDrivers$ " , th.make_func_name(n, tags, obj))) and namespace != " zes" :
156- if(drv.initStatus != ZE_RESULT_SUCCESS)
156+ if(drv.initStatus != ZE_RESULT_SUCCESS || !drv.ddiInitialized )
157157 continue;
158158 % elif namespace == " zes" :
159- if(drv.initStatus != ZE_RESULT_SUCCESS || drv.initSysManStatus != ZE_RESULT_SUCCESS)
159+ if(drv.initStatus != ZE_RESULT_SUCCESS || drv.initSysManStatus != ZE_RESULT_SUCCESS || !drv.ddiInitialized )
160160 continue;
161161 % else :
162162 if (!drv.dditable.${ n} .${ th.get_table_name(n, tags, obj)} .${ th.make_pfn_name(n, tags, obj)} ) {
163163 % if re.match(r " \w + InitDrivers$ " , th.make_func_name(n, tags, obj)):
164164 drv.initDriversStatus = ${ X} _RESULT_ERROR_UNINITIALIZED;
165+ result = ${ X} _RESULT_ERROR_UNINITIALIZED;
165166 % else :
166167 drv.initStatus = ${ X} _RESULT_ERROR_UNINITIALIZED;
167168 %endif
0 commit comments