Add ze_init_flag_t check to zeInit()

Return an error and don't init if flag is non-zero and GPU_ONLY flag is not set

Signed-off-by: Brandon Yates <brandon.yates@intel.com>
This commit is contained in:
Brandon Yates
2021-08-04 17:27:08 -04:00
committed by Compute-Runtime-Automation
parent ec18046f24
commit 1980edd05b
2 changed files with 22 additions and 3 deletions

View File

@@ -115,6 +115,10 @@ ze_result_t driverHandleGet(uint32_t *pCount, ze_driver_handle_t *phDriverHandle
static DriverImp driverImp;
Driver *Driver::driver = &driverImp;
ze_result_t init(ze_init_flags_t flags) { return Driver::get()->driverInit(flags); }
ze_result_t init(ze_init_flags_t flags) {
if (flags && !(flags & ZE_INIT_FLAG_GPU_ONLY))
return ZE_RESULT_ERROR_UNINITIALIZED;
else
return Driver::get()->driverInit(flags);
}
} // namespace L0

View File

@@ -34,10 +34,25 @@ TEST(zeInit, whenCallingZeInitThenInitializeOnDriverIsCalled) {
auto result = zeInit(ZE_INIT_FLAG_GPU_ONLY);
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
EXPECT_EQ(1u, driver.initCalledCount);
}
TEST(zeInit, whenCallingZeInitWithNoFlagsThenInitializeOnDriverIsCalled) {
Mock<Driver> driver;
auto result = zeInit(0);
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
EXPECT_EQ(1u, driver.initCalledCount);
}
TEST(zeInit, whenCallingZeInitWithoutGpuOnlyFlagThenInitializeOnDriverIsNotCalled) {
Mock<Driver> driver;
auto result = zeInit(ZE_INIT_FLAG_VPU_ONLY);
EXPECT_EQ(ZE_RESULT_ERROR_UNINITIALIZED, result);
EXPECT_EQ(0u, driver.initCalledCount);
}
using DriverVersionTest = Test<DeviceFixture>;
TEST_F(DriverVersionTest, givenCallToGetExtensionPropertiesThenSupportedExtensionsAreReturned) {