Add helper function to detect if hw mode is selected
Related-To: NEO-4208 Change-Id: Iac34e9e9cea36d7ab354d7d5b5c716e8ea3a483d Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
parent
2343cd72c3
commit
5f4f1eb55a
|
@ -64,4 +64,15 @@ bool DeviceFactory::getDevicesForProductFamilyOverride(size_t &numDevices, Execu
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DeviceFactory::isHwModeSelected() {
|
||||||
|
int32_t csr = DebugManager.flags.SetCommandStreamReceiver.get();
|
||||||
|
switch (csr) {
|
||||||
|
case CSR_AUB:
|
||||||
|
case CSR_TBX:
|
||||||
|
case CSR_TBX_WITH_AUB:
|
||||||
|
return false;
|
||||||
|
default:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|
|
@ -17,6 +17,7 @@ class DeviceFactory {
|
||||||
static bool getDevices(size_t &numDevices, ExecutionEnvironment &executionEnvironment);
|
static bool getDevices(size_t &numDevices, ExecutionEnvironment &executionEnvironment);
|
||||||
static bool getDevicesForProductFamilyOverride(size_t &numDevices, ExecutionEnvironment &executionEnvironment);
|
static bool getDevicesForProductFamilyOverride(size_t &numDevices, ExecutionEnvironment &executionEnvironment);
|
||||||
static void releaseDevices();
|
static void releaseDevices();
|
||||||
|
static bool isHwModeSelected();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static size_t numDevices;
|
static size_t numDevices;
|
||||||
|
|
|
@ -48,25 +48,10 @@ CommandStreamReceiver *createCommandStreamImpl(ExecutionEnvironment &executionEn
|
||||||
}
|
}
|
||||||
|
|
||||||
bool getDevicesImpl(size_t &numDevicesReturned, ExecutionEnvironment &executionEnvironment) {
|
bool getDevicesImpl(size_t &numDevicesReturned, ExecutionEnvironment &executionEnvironment) {
|
||||||
bool result;
|
if (DeviceFactory::isHwModeSelected()) {
|
||||||
int32_t csr = DebugManager.flags.SetCommandStreamReceiver.get();
|
|
||||||
if (csr < 0) {
|
|
||||||
csr = CommandStreamReceiverType::CSR_HW;
|
|
||||||
}
|
|
||||||
switch (csr) {
|
|
||||||
case CSR_HW:
|
|
||||||
result = DeviceFactory::getDevices(numDevicesReturned, executionEnvironment);
|
|
||||||
DEBUG_BREAK_IF(!result);
|
|
||||||
return result;
|
|
||||||
case CSR_AUB:
|
|
||||||
case CSR_TBX:
|
|
||||||
case CSR_TBX_WITH_AUB:
|
|
||||||
return DeviceFactory::getDevicesForProductFamilyOverride(numDevicesReturned, executionEnvironment);
|
|
||||||
case CSR_HW_WITH_AUB:
|
|
||||||
return DeviceFactory::getDevices(numDevicesReturned, executionEnvironment);
|
return DeviceFactory::getDevices(numDevicesReturned, executionEnvironment);
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
return DeviceFactory::getDevicesForProductFamilyOverride(numDevicesReturned, executionEnvironment);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|
|
@ -227,3 +227,21 @@ TEST_F(DeviceFactoryTest, givenGetDevicesCallWhenItIsDoneThenOsInterfaceIsAlloca
|
||||||
EXPECT_TRUE(success);
|
EXPECT_TRUE(success);
|
||||||
EXPECT_NE(nullptr, executionEnvironment->rootDeviceEnvironments[0]->osInterface);
|
EXPECT_NE(nullptr, executionEnvironment->rootDeviceEnvironments[0]->osInterface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(DeviceFactory, givenHwModeSelectedWhenIsHwModeSelectedIsCalledThenTrueIsReturned) {
|
||||||
|
DebugManagerStateRestore stateRestore;
|
||||||
|
constexpr int32_t hwModes[] = {-1, CommandStreamReceiverType::CSR_HW, CommandStreamReceiverType::CSR_HW_WITH_AUB};
|
||||||
|
for (const auto &hwMode : hwModes) {
|
||||||
|
DebugManager.flags.SetCommandStreamReceiver.set(hwMode);
|
||||||
|
EXPECT_TRUE(DeviceFactory::isHwModeSelected());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(DeviceFactory, givenNonHwModeSelectedWhenIsHwModeSelectedIsCalledThenFalseIsReturned) {
|
||||||
|
DebugManagerStateRestore stateRestore;
|
||||||
|
constexpr int32_t nonHwModes[] = {CommandStreamReceiverType::CSR_AUB, CommandStreamReceiverType::CSR_TBX, CommandStreamReceiverType::CSR_TBX_WITH_AUB};
|
||||||
|
for (const auto &nonHwMode : nonHwModes) {
|
||||||
|
DebugManager.flags.SetCommandStreamReceiver.set(nonHwMode);
|
||||||
|
EXPECT_FALSE(DeviceFactory::isHwModeSelected());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue