Capability to exclude Engine on SubDevice

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2021-03-03 14:26:16 +00:00
committed by Compute-Runtime-Automation
parent 047a93fde6
commit 8b89fb8541
5 changed files with 85 additions and 2 deletions

View File

@@ -70,11 +70,16 @@ CommandQueue::CommandQueue(Context *context, ClDevice *device, const cl_queue_pr
if (device) {
auto hwInfo = device->getHardwareInfo();
auto &hwHelper = HwHelper::get(hwInfo.platform.eRenderCoreFamily);
gpgpuEngine = &device->getDefaultEngine();
if (hwInfo.capabilityTable.blitterOperationsSupported || gpgpuEngine->commandStreamReceiver->peekTimestampPacketWriteEnabled()) {
bool bcsAllowed = hwInfo.capabilityTable.blitterOperationsSupported &&
hwHelper.isSubDeviceEngineSupported(hwInfo, device->getDeviceBitfield(), aub_stream::EngineType::ENGINE_BCS);
if (bcsAllowed || gpgpuEngine->commandStreamReceiver->peekTimestampPacketWriteEnabled()) {
timestampPacketContainer = std::make_unique<TimestampPacketContainer>();
}
if (hwInfo.capabilityTable.blitterOperationsSupported) {
if (bcsAllowed) {
auto &selectorCopyEngine = device->getDeviceById(0)->getSelectorCopyEngine();
bcsEngine = &device->getDeviceById(0)->getEngine(EngineHelpers::getBcsEngineType(hwInfo, selectorCopyEngine), false, false);
}