From 29a33d4eb70ef714408da7e6d85cc739f607d104 Mon Sep 17 00:00:00 2001 From: foreman Date: Wed, 18 Sep 2019 11:35:19 -0400 Subject: [PATCH] P4 to Git Change 2000368 by gandryey@gera-hip-lnx on 2019/09/18 11:16:59 SWDEV-86035 - Swtich PAL to the new interface 533 - Correct the logic for compute queues detection. Linux doesn't support realtime queues with CU reservation. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#163 edit --- rocclr/runtime/device/pal/paldevice.cpp | 38 ++++++++++++------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/rocclr/runtime/device/pal/paldevice.cpp b/rocclr/runtime/device/pal/paldevice.cpp index 7c2e71ec6c..d85a6536eb 100644 --- a/rocclr/runtime/device/pal/paldevice.cpp +++ b/rocclr/runtime/device/pal/paldevice.cpp @@ -909,29 +909,27 @@ bool Device::create(Pal::IDevice* device) { } // Find the number of available engines - if (properties().engineProperties[Pal::EngineTypeCompute].maxNumDedicatedCu > 0) { - for (uint i = 0; i < properties().engineProperties[Pal::EngineTypeCompute].engineCount; - ++i) { - if (properties().engineProperties[Pal::EngineTypeCompute].capabilities[i].flags.exclusive) { - if (properties() - .engineProperties[Pal::EngineTypeCompute] - .capabilities[i] - .queuePrioritySupport == Pal::SupportQueuePriorityRealtime) { - if (exclusiveComputeEnginesId_.find(ExclusiveQueueType::RealTime0) != + for (uint i = 0; i < properties().engineProperties[Pal::EngineTypeCompute].engineCount; ++i) { + if (properties().engineProperties[Pal::EngineTypeCompute].capabilities[i].flags.exclusive) { + if ((properties() + .engineProperties[Pal::EngineTypeCompute] + .capabilities[i] + .queuePrioritySupport == Pal::SupportQueuePriorityRealtime) && + (properties().engineProperties[Pal::EngineTypeCompute].maxNumDedicatedCu > 0)) { + if (exclusiveComputeEnginesId_.find(ExclusiveQueueType::RealTime0) != exclusiveComputeEnginesId_.end()) { - exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime1, i}); - } else { - exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime0, i}); - } - } else if (properties() - .engineProperties[Pal::EngineTypeCompute] - .capabilities[i] - .queuePrioritySupport == Pal::SupportQueuePriorityMedium) { - exclusiveComputeEnginesId_.insert({ExclusiveQueueType::Medium, i}); + exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime1, i}); + } else { + exclusiveComputeEnginesId_.insert({ExclusiveQueueType::RealTime0, i}); } - } else { - computeEnginesId_.push_back(i); + } else if (properties() + .engineProperties[Pal::EngineTypeCompute] + .capabilities[i] + .queuePrioritySupport == Pal::SupportQueuePriorityMedium) { + exclusiveComputeEnginesId_.insert({ExclusiveQueueType::Medium, i}); } + } else { + computeEnginesId_.push_back(i); } } numDmaEngines_ = properties().engineProperties[Pal::EngineTypeDma].engineCount;