@@ -159,18 +159,6 @@ UR_APIEXPORT ur_result_t UR_APICALL urPlatformCreateWithNativeHandle(
159159}
160160
161161ur_result_t ur_platform_handle_t_::initialize () {
162- // Cache driver properties
163- ZeStruct<ze_driver_properties_t > ZeDriverProperties;
164- ZE2UR_CALL (zeDriverGetProperties, (ZeDriver, &ZeDriverProperties));
165- uint32_t DriverVersion = ZeDriverProperties.driverVersion ;
166- // Intel Level-Zero GPU driver stores version as:
167- // | 31 - 24 | 23 - 16 | 15 - 0 |
168- // | Major | Minor | Build |
169- auto VersionMajor = std::to_string ((DriverVersion & 0xFF000000 ) >> 24 );
170- auto VersionMinor = std::to_string ((DriverVersion & 0x00FF0000 ) >> 16 );
171- auto VersionBuild = std::to_string (DriverVersion & 0x0000FFFF );
172- ZeDriverVersion = VersionMajor + " ." + VersionMinor + " ." + VersionBuild;
173-
174162 ZE2UR_CALL (zeDriverGetApiVersion, (ZeDriver, &ZeApiVersion));
175163 ZeDriverApiVersion = std::to_string (ZE_MAJOR_VERSION (ZeApiVersion)) + " ." +
176164 std::to_string (ZE_MINOR_VERSION (ZeApiVersion));
@@ -211,6 +199,33 @@ ur_result_t ur_platform_handle_t_::initialize() {
211199 zeDriverExtensionMap[extension.name ] = extension.version ;
212200 }
213201
202+ ZE2UR_CALL (zelLoaderTranslateHandle, (ZEL_HANDLE_DRIVER, ZeDriver,
203+ (void **)&ZeDriverHandleExpTranslated));
204+
205+ // Check if intel Driver Version Extension is supported.
206+ ZeDriverVersionString.setZeDriverVersionString (this );
207+ // Cache driver properties
208+ ZeStruct<ze_driver_properties_t > ZeDriverProperties;
209+ ZE2UR_CALL (zeDriverGetProperties, (ZeDriver, &ZeDriverProperties));
210+ if (!ZeDriverVersionString.Supported ) {
211+ uint32_t DriverVersion = ZeDriverProperties.driverVersion ;
212+ // Intel Level-Zero GPU driver stores version as:
213+ // | 31 - 24 | 23 - 16 | 15 - 0 |
214+ // | Major | Minor | Build |
215+ auto VersionMajor = std::to_string ((DriverVersion & 0xFF000000 ) >> 24 );
216+ auto VersionMinor = std::to_string ((DriverVersion & 0x00FF0000 ) >> 16 );
217+ auto VersionBuild = std::to_string (DriverVersion & 0x0000FFFF );
218+ ZeDriverVersion = VersionMajor + " ." + VersionMinor + " ." + VersionBuild;
219+ } else {
220+ size_t sizeOfDriverString = 0 ;
221+ ZeDriverVersionString.getDriverVersionString (ZeDriverHandleExpTranslated,
222+ nullptr , &sizeOfDriverString);
223+ ZeDriverVersion.resize (sizeOfDriverString);
224+ ZeDriverVersionString.getDriverVersionString (ZeDriverHandleExpTranslated,
225+ ZeDriverVersion.data (),
226+ &sizeOfDriverString);
227+ }
228+
214229 // Check if import user ptr into USM feature has been requested.
215230 // If yes, then set up L0 API pointers if the platform supports it.
216231 ZeUSMImport.setZeUSMImport (this );
0 commit comments