Dont defer BCS context initialization
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
parent
8d0e2034fe
commit
907dec5f11
|
@ -1645,20 +1645,3 @@ HWTEST_F(CommandQueueOnSpecificEngineTests, givenNotInitializedCcsOsContextWhenC
|
||||||
ASSERT_EQ(&osContext, queue.gpgpuEngine->osContext);
|
ASSERT_EQ(&osContext, queue.gpgpuEngine->osContext);
|
||||||
EXPECT_TRUE(osContext.isInitialized());
|
EXPECT_TRUE(osContext.isInitialized());
|
||||||
}
|
}
|
||||||
|
|
||||||
HWTEST_F(CommandQueueOnSpecificEngineTests, givenNotInitializedBcsOsContextWhenCreatingQueueThenInitializeOsContext) {
|
|
||||||
DebugManagerStateRestore restore{};
|
|
||||||
DebugManager.flags.DeferOsContextInitialization.set(1);
|
|
||||||
|
|
||||||
auto raiiHwHelper = overrideHwHelper<FamilyType, MockHwHelper<FamilyType, 1, 1, 1>>();
|
|
||||||
MockContext context{};
|
|
||||||
cl_command_queue_properties properties[5] = {};
|
|
||||||
|
|
||||||
OsContext &osContext = *context.getDevice(0)->getEngine(aub_stream::ENGINE_BCS, EngineUsage::Regular).osContext;
|
|
||||||
EXPECT_FALSE(osContext.isInitialized());
|
|
||||||
|
|
||||||
fillProperties(properties, 2, 0);
|
|
||||||
MockCommandQueueHw<FamilyType> queue(&context, context.getDevice(0), properties);
|
|
||||||
ASSERT_EQ(&osContext, queue.bcsEngine->osContext);
|
|
||||||
EXPECT_TRUE(osContext.isInitialized());
|
|
||||||
}
|
|
||||||
|
|
|
@ -81,6 +81,7 @@ struct DeferredOsContextCreationTests : ::testing::Test {
|
||||||
std::unique_ptr<MockDevice> device;
|
std::unique_ptr<MockDevice> device;
|
||||||
static inline const EngineTypeUsage engineTypeUsageRegular{aub_stream::ENGINE_RCS, EngineUsage::Regular};
|
static inline const EngineTypeUsage engineTypeUsageRegular{aub_stream::ENGINE_RCS, EngineUsage::Regular};
|
||||||
static inline const EngineTypeUsage engineTypeUsageInternal{aub_stream::ENGINE_RCS, EngineUsage::Internal};
|
static inline const EngineTypeUsage engineTypeUsageInternal{aub_stream::ENGINE_RCS, EngineUsage::Internal};
|
||||||
|
static inline const EngineTypeUsage engineTypeUsageBlitter{aub_stream::ENGINE_BCS, EngineUsage::Regular};
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(DeferredOsContextCreationTests, givenRegularEngineWhenCreatingOsContextThenOsContextIsInitializedDeferred) {
|
TEST_F(DeferredOsContextCreationTests, givenRegularEngineWhenCreatingOsContextThenOsContextIsInitializedDeferred) {
|
||||||
|
@ -119,6 +120,18 @@ TEST_F(DeferredOsContextCreationTests, givenInternalEngineWhenCreatingOsContextT
|
||||||
expectImmediateContextCreation(engineTypeUsageInternal, false);
|
expectImmediateContextCreation(engineTypeUsageInternal, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(DeferredOsContextCreationTests, givenBlitterEngineWhenCreatingOsContextThenOsContextIsInitializedImmediately) {
|
||||||
|
DebugManagerStateRestore restore{};
|
||||||
|
|
||||||
|
expectImmediateContextCreation(engineTypeUsageBlitter, false);
|
||||||
|
|
||||||
|
DebugManager.flags.DeferOsContextInitialization.set(1);
|
||||||
|
expectImmediateContextCreation(engineTypeUsageBlitter, false);
|
||||||
|
|
||||||
|
DebugManager.flags.DeferOsContextInitialization.set(0);
|
||||||
|
expectImmediateContextCreation(engineTypeUsageBlitter, false);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(DeferredOsContextCreationTests, givenEnsureContextInitializeCalledMultipleTimesWhenOsContextIsCreatedThenInitializeOnlyOnce) {
|
TEST_F(DeferredOsContextCreationTests, givenEnsureContextInitializeCalledMultipleTimesWhenOsContextIsCreatedThenInitializeOnlyOnce) {
|
||||||
struct MyOsContext : OsContext {
|
struct MyOsContext : OsContext {
|
||||||
MyOsContext(uint32_t contextId,
|
MyOsContext(uint32_t contextId,
|
||||||
|
|
|
@ -35,6 +35,10 @@ bool OsContext::isImmediateContextInitializationEnabled(bool isDefaultEngine) co
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (engineType == aub_stream::EngineType::ENGINE_BCS) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue