mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 17:00:59 +08:00
performance: don't flush gpgpu if not required
Related-To: NEO-12124 If queue is OOQ and there are no cross-engine dependencies, don't flush CCS before submitting copy on BCS. Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
05b8c2ed97
commit
ace883ca55
@@ -3321,4 +3321,22 @@ HWTEST_F(CsrSelectionCommandQueueWithBlitterTests, givenImageFromBufferThenBcsAl
|
||||
} else {
|
||||
EXPECT_EQ(ccsCsr, &queue->selectCsrForBuiltinOperation(args));
|
||||
}
|
||||
}
|
||||
|
||||
HWTEST_F(CommandQueueTests, GivenOOQCommandQueueWhenIsGpgpuSubmissionForBcsRequiredCalledThenReturnCorrectValue) {
|
||||
auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(defaultHwInfo.get()));
|
||||
MockContext context(device.get());
|
||||
auto mockCmdQ = std::make_unique<MockCommandQueueHw<FamilyType>>(&context, context.getDevice(0), nullptr);
|
||||
mockCmdQ->latestSentEnqueueType = EnqueueProperties::Operation::gpuKernel;
|
||||
mockCmdQ->overrideIsCacheFlushForBcsRequired.enabled = true;
|
||||
mockCmdQ->overrideIsCacheFlushForBcsRequired.returnValue = true;
|
||||
TimestampPacketDependencies dependencies{};
|
||||
auto containsCrossEngineDependency = false;
|
||||
EXPECT_TRUE(mockCmdQ->isGpgpuSubmissionForBcsRequired(false, dependencies, containsCrossEngineDependency));
|
||||
|
||||
mockCmdQ->setOoqEnabled();
|
||||
EXPECT_FALSE(mockCmdQ->isGpgpuSubmissionForBcsRequired(false, dependencies, containsCrossEngineDependency));
|
||||
|
||||
containsCrossEngineDependency = true;
|
||||
EXPECT_TRUE(mockCmdQ->isGpgpuSubmissionForBcsRequired(false, dependencies, containsCrossEngineDependency));
|
||||
}
|
||||
Reference in New Issue
Block a user