@@ -84,6 +84,46 @@ HWTEST2_F(CommandQueuePvcAndLaterTests, givenAdditionalBcsWhenCreatingCommandQue
84
84
EXPECT_EQ (1u , queue->countBcsEngines ());
85
85
}
86
86
87
+ HWTEST2_F (CommandQueuePvcAndLaterTests, givenDeferCmdQBcsInitializationEnabledWhenCreateCommandQueueThenBcsCountIsZero, IsAtLeastXeHpcCore) {
88
+ DebugManagerStateRestore restorer;
89
+ DebugManager.flags .DeferCmdQBcsInitialization .set (1u );
90
+
91
+ HardwareInfo hwInfo = *defaultHwInfo;
92
+ hwInfo.featureTable .ftrBcsInfo = maxNBitValue (9 );
93
+ hwInfo.capabilityTable .blitterOperationsSupported = true ;
94
+ MockDevice *device = MockDevice::createWithNewExecutionEnvironment<MockDevice>(&hwInfo, 0 );
95
+ MockClDevice clDevice{device};
96
+ cl_device_id clDeviceId = static_cast <cl_device_id >(&clDevice);
97
+ ClDeviceVector clDevices{&clDeviceId, 1u };
98
+ cl_int retVal{};
99
+ auto context = std::unique_ptr<Context>{Context::create<Context>(nullptr , clDevices, nullptr , nullptr , retVal)};
100
+ EXPECT_EQ (CL_SUCCESS, retVal);
101
+
102
+ auto queue = std::make_unique<MockCommandQueue>(*context);
103
+
104
+ EXPECT_EQ (0u , queue->countBcsEngines ());
105
+ }
106
+
107
+ HWTEST2_F (CommandQueuePvcAndLaterTests, givenDeferCmdQBcsInitializationDisabledWhenCreateCommandQueueThenBcsIsInitialized, IsAtLeastXeHpcCore) {
108
+ DebugManagerStateRestore restorer;
109
+ DebugManager.flags .DeferCmdQBcsInitialization .set (0u );
110
+
111
+ HardwareInfo hwInfo = *defaultHwInfo;
112
+ hwInfo.featureTable .ftrBcsInfo = maxNBitValue (9 );
113
+ hwInfo.capabilityTable .blitterOperationsSupported = true ;
114
+ MockDevice *device = MockDevice::createWithNewExecutionEnvironment<MockDevice>(&hwInfo, 0 );
115
+ MockClDevice clDevice{device};
116
+ cl_device_id clDeviceId = static_cast <cl_device_id >(&clDevice);
117
+ ClDeviceVector clDevices{&clDeviceId, 1u };
118
+ cl_int retVal{};
119
+ auto context = std::unique_ptr<Context>{Context::create<Context>(nullptr , clDevices, nullptr , nullptr , retVal)};
120
+ EXPECT_EQ (CL_SUCCESS, retVal);
121
+
122
+ auto queue = std::make_unique<MockCommandQueue>(*context);
123
+
124
+ EXPECT_NE (0u , queue->countBcsEngines ());
125
+ }
126
+
87
127
HWTEST2_F (CommandQueuePvcAndLaterTests, givenQueueWithMainBcsIsReleasedWhenNewQueueIsCreatedThenMainBcsCanBeUsedAgain, IsAtLeastXeHpcCore) {
88
128
HardwareInfo hwInfo = *defaultHwInfo;
89
129
hwInfo.featureTable .ftrBcsInfo = maxNBitValue (9 );
@@ -102,9 +142,9 @@ HWTEST2_F(CommandQueuePvcAndLaterTests, givenQueueWithMainBcsIsReleasedWhenNewQu
102
142
auto queue4 = std::make_unique<MockCommandQueue>(*context);
103
143
104
144
EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS, queue1->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS)->getOsContext ().getEngineType ());
105
- EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS1 , queue2->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS1 )->getOsContext ().getEngineType ());
106
- EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS2 , queue3->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS2 )->getOsContext ().getEngineType ());
107
- EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS1 , queue4->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS1 )->getOsContext ().getEngineType ());
145
+ EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS2 , queue2->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS2 )->getOsContext ().getEngineType ());
146
+ EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS1 , queue3->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS1 )->getOsContext ().getEngineType ());
147
+ EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS2 , queue4->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS2 )->getOsContext ().getEngineType ());
108
148
109
149
// Releasing main BCS. Next creation should be able to grab it
110
150
queue1.reset ();
@@ -114,7 +154,7 @@ HWTEST2_F(CommandQueuePvcAndLaterTests, givenQueueWithMainBcsIsReleasedWhenNewQu
114
154
// Releasing link BCS. Shouldn't change anything
115
155
queue2.reset ();
116
156
queue2 = std::make_unique<MockCommandQueue>(*context);
117
- EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS2 , queue2->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS2 )->getOsContext ().getEngineType ());
157
+ EXPECT_EQ (aub_stream::EngineType::ENGINE_BCS1 , queue2->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS1 )->getOsContext ().getEngineType ());
118
158
}
119
159
120
160
HWTEST2_F (CommandQueuePvcAndLaterTests, givenCooperativeEngineUsageHintAndCcsWhenCreatingCommandQueueThenCreateQueueWithCooperativeEngine, IsAtLeastXeHpcCore) {
@@ -491,10 +531,10 @@ HWTEST2_F(BcsCsrSelectionCommandQueueTests, givenMultipleEnginesInQueueWhenSelec
491
531
aub_stream::ENGINE_BCS7,
492
532
aub_stream::ENGINE_BCS8,
493
533
});
494
- EXPECT_EQ (queue->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS1), &queue->selectCsrForBuiltinOperation (args));
495
534
EXPECT_EQ (queue->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS2), &queue->selectCsrForBuiltinOperation (args));
496
535
EXPECT_EQ (queue->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS1), &queue->selectCsrForBuiltinOperation (args));
497
536
EXPECT_EQ (queue->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS2), &queue->selectCsrForBuiltinOperation (args));
537
+ EXPECT_EQ (queue->getBcsCommandStreamReceiver (aub_stream::ENGINE_BCS1), &queue->selectCsrForBuiltinOperation (args));
498
538
}
499
539
}
500
540
0 commit comments