mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
feature: Make priority level in priority extension truly optional
Related-To: NEO-16102 Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
60d5484e6b
commit
a5f08b5f42
@@ -639,7 +639,7 @@ bool Device::createSecondaryEngine(CommandStreamReceiver *primaryCsr, EngineType
|
||||
return true;
|
||||
}
|
||||
|
||||
EngineControl *Device::getSecondaryEngineCsr(EngineTypeUsage engineTypeUsage, int priorityLevel, bool allocateInterrupt) {
|
||||
EngineControl *Device::getSecondaryEngineCsr(EngineTypeUsage engineTypeUsage, std::optional<int> priorityLevel, bool allocateInterrupt) {
|
||||
if (secondaryEngines.find(engineTypeUsage.first) == secondaryEngines.end()) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -1248,7 +1248,7 @@ const EngineGroupT *Device::tryGetRegularEngineGroup(EngineGroupType engineGroup
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
EngineControl *SecondaryContexts::getEngine(EngineUsage usage, int priorityLevel) {
|
||||
EngineControl *SecondaryContexts::getEngine(EngineUsage usage, std::optional<int> priorityLevel) {
|
||||
auto secondaryEngineIndex = 0;
|
||||
|
||||
std::lock_guard<std::mutex> guard(mutex);
|
||||
@@ -1301,7 +1301,9 @@ EngineControl *SecondaryContexts::getEngine(EngineUsage usage, int priorityLevel
|
||||
} else {
|
||||
DEBUG_BREAK_IF(true);
|
||||
}
|
||||
engines[secondaryEngineIndex].osContext->overridePriority(priorityLevel);
|
||||
if (priorityLevel.has_value()) {
|
||||
engines[secondaryEngineIndex].osContext->overridePriority(priorityLevel.value());
|
||||
}
|
||||
|
||||
return &engines[secondaryEngineIndex];
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ struct SecondaryContexts : NEO::NonCopyableAndNonMovableClass {
|
||||
}
|
||||
SecondaryContexts &operator=(SecondaryContexts &&other) noexcept = delete;
|
||||
|
||||
EngineControl *getEngine(const EngineUsage usage, int priority);
|
||||
EngineControl *getEngine(const EngineUsage usage, std::optional<int> priority);
|
||||
|
||||
EnginesT engines; // vector of secondary EngineControls
|
||||
std::atomic<uint8_t> regularCounter = 0; // Counter used to assign next regular EngineControl
|
||||
@@ -221,7 +221,7 @@ class Device : public ReferenceTrackedObject<Device>, NEO::NonCopyableAndNonMova
|
||||
return (getPreemptionMode() == PreemptionMode::MidThread || getDebugger() != nullptr) && getCompilerInterface();
|
||||
}
|
||||
|
||||
MOCKABLE_VIRTUAL EngineControl *getSecondaryEngineCsr(EngineTypeUsage engineTypeUsage, int priority, bool allocateInterrupt);
|
||||
MOCKABLE_VIRTUAL EngineControl *getSecondaryEngineCsr(EngineTypeUsage engineTypeUsage, std::optional<int> priority, bool allocateInterrupt);
|
||||
bool isSecondaryContextEngineType(aub_stream::EngineType type) {
|
||||
return EngineHelpers::isCcs(type) || EngineHelpers::isBcs(type);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user