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;