Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Level zero loader changelog

## v1.23.1
* Fix Sysman only DDI Init for zesDriver compatability
## v1.23.0
* fix build for certification checker
* Fix missing code gen and add check in sysman device get for context
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ if(MSVC AND (MSVC_VERSION LESS 1900))
endif()

# This project follows semantic versioning (https://semver.org/)
project(level-zero VERSION 1.23.0)
project(level-zero VERSION 1.23.1)

include(GNUInstallDirs)

Expand Down
4 changes: 2 additions & 2 deletions PRODUCT_GUID.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
1.23.0
146652e2-0b5a-4461-b176-800135676a46
1.23.1
fd1c864d-4ba3-4321-bdfc-66f50cf6b6bf
14 changes: 14 additions & 0 deletions scripts/templates/ldrddi.cpp.mako
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ namespace loader
{
for( uint32_t i = 0; i < library_driver_handle_count; ++i ) {
uint32_t driver_index = total_driver_handle_count + i;
%if namespace != "zes":
if (drv.driverDDIHandleSupportQueried == false) {
drv.properties = {};
drv.properties.stype = ZE_STRUCTURE_TYPE_DRIVER_DDI_HANDLES_EXT_PROPERTIES;
Expand All @@ -185,9 +186,22 @@ namespace loader
drv.driverDDIHandleSupportQueried = true;
}
if (!(drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) || !loader::context->driverDDIPathDefault) {
if (loader::context->debugTraceEnabled) {
std::string message = "Driver DDI Handles Not Supported for " + drv.name;
loader::context->debug_trace_message(message, "");
}
${obj['params'][1]['name']}[ driver_index ] = reinterpret_cast<${n}_driver_handle_t>(
context->${n}_driver_factory.getInstance( ${obj['params'][1]['name']}[ driver_index ], &drv.dditable ) );
} else if (drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) {
if (loader::context->debugTraceEnabled) {
std::string message = "Driver DDI Handles Supported for " + drv.name;
loader::context->debug_trace_message(message, "");
}
}
%else:
${obj['params'][1]['name']}[ driver_index ] = reinterpret_cast<${n}_driver_handle_t>(
context->${n}_driver_factory.getInstance( ${obj['params'][1]['name']}[ driver_index ], &drv.dditable ) );
%endif
}
}
catch( std::bad_alloc& )
Expand Down
18 changes: 18 additions & 0 deletions source/loader/ze_ldrddi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,17 @@ namespace loader
drv.driverDDIHandleSupportQueried = true;
}
if (!(drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) || !loader::context->driverDDIPathDefault) {
if (loader::context->debugTraceEnabled) {
std::string message = "Driver DDI Handles Not Supported for " + drv.name;
loader::context->debug_trace_message(message, "");
}
phDrivers[ driver_index ] = reinterpret_cast<ze_driver_handle_t>(
context->ze_driver_factory.getInstance( phDrivers[ driver_index ], &drv.dditable ) );
} else if (drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) {
if (loader::context->debugTraceEnabled) {
std::string message = "Driver DDI Handles Supported for " + drv.name;
loader::context->debug_trace_message(message, "");
}
}
}
}
Expand Down Expand Up @@ -228,8 +237,17 @@ namespace loader
drv.driverDDIHandleSupportQueried = true;
}
if (!(drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) || !loader::context->driverDDIPathDefault) {
if (loader::context->debugTraceEnabled) {
std::string message = "Driver DDI Handles Not Supported for " + drv.name;
loader::context->debug_trace_message(message, "");
}
phDrivers[ driver_index ] = reinterpret_cast<ze_driver_handle_t>(
context->ze_driver_factory.getInstance( phDrivers[ driver_index ], &drv.dditable ) );
} else if (drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) {
if (loader::context->debugTraceEnabled) {
std::string message = "Driver DDI Handles Supported for " + drv.name;
loader::context->debug_trace_message(message, "");
}
}
}
}
Expand Down
25 changes: 3 additions & 22 deletions source/loader/ze_loader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,29 +77,10 @@ namespace loader
permissiveDesc.stype = ZE_STRUCTURE_TYPE_INIT_DRIVER_TYPE_DESC;
permissiveDesc.pNext = nullptr;
permissiveDesc.flags = UINT32_MAX;
if (sysmanOnly) {
return true; // Sorting not fully supported by the spec due to missing zesDriverGetProperties for sysman drivers.
}
for (auto &driver : *drivers) {
if (sysmanOnly) {
for (auto &coreDriver : this->zeDrivers) {
if (coreDriver.name == driver.name) {
if (!driver.dditable.ze.Global.pfnInitDrivers) {
driver.dditable.ze.Global.pfnInitDrivers = coreDriver.dditable.ze.Global.pfnInitDrivers;
}
if (!driver.dditable.ze.Driver.pfnGet) {
driver.dditable.ze.Driver.pfnGet = coreDriver.dditable.ze.Driver.pfnGet;
}
if (!driver.dditable.ze.Driver.pfnGetProperties) {
driver.dditable.ze.Driver.pfnGetProperties = coreDriver.dditable.ze.Driver.pfnGetProperties;
}
if (!driver.dditable.ze.Device.pfnGet) {
driver.dditable.ze.Device.pfnGet = coreDriver.dditable.ze.Device.pfnGet;
}
if (!driver.dditable.ze.Device.pfnGetProperties) {
driver.dditable.ze.Device.pfnGetProperties = coreDriver.dditable.ze.Device.pfnGetProperties;
}
break;
}
}
}
uint32_t pCount = 0;
std::vector<ze_driver_handle_t> driverHandles;
ze_result_t res = ZE_RESULT_SUCCESS;
Expand Down
24 changes: 2 additions & 22 deletions source/loader/zes_ldrddi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,28 +105,8 @@ namespace loader
{
for( uint32_t i = 0; i < library_driver_handle_count; ++i ) {
uint32_t driver_index = total_driver_handle_count + i;
if (drv.driverDDIHandleSupportQueried == false) {
drv.properties = {};
drv.properties.stype = ZE_STRUCTURE_TYPE_DRIVER_DDI_HANDLES_EXT_PROPERTIES;
drv.properties.pNext = nullptr;
ze_driver_properties_t driverProperties = {};
driverProperties.stype = ZE_STRUCTURE_TYPE_DRIVER_PROPERTIES;
driverProperties.pNext = nullptr;
driverProperties.pNext = &drv.properties;
ze_result_t res = drv.dditable.ze.Driver.pfnGetProperties(phDrivers[ driver_index ], &driverProperties);
if (res != ZE_RESULT_SUCCESS) {
if (loader::context->debugTraceEnabled) {
std::string message = drv.name + " failed zeDriverGetProperties query, returned ";
loader::context->debug_trace_message(message, loader::to_string(res));
}
return res;
}
drv.driverDDIHandleSupportQueried = true;
}
if (!(drv.properties.flags & ZE_DRIVER_DDI_HANDLE_EXT_FLAG_DDI_HANDLE_EXT_SUPPORTED) || !loader::context->driverDDIPathDefault) {
phDrivers[ driver_index ] = reinterpret_cast<zes_driver_handle_t>(
context->zes_driver_factory.getInstance( phDrivers[ driver_index ], &drv.dditable ) );
}
phDrivers[ driver_index ] = reinterpret_cast<zes_driver_handle_t>(
context->zes_driver_factory.getInstance( phDrivers[ driver_index ], &drv.dditable ) );
}
}
catch( std::bad_alloc& )
Expand Down
Loading