Skip to content

Commit c90dab7

Browse files
feature: introduce highPriority engine usage
Related-To: NEO-7824 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
1 parent 3867e44 commit c90dab7

File tree

6 files changed

+10
-2
lines changed

6 files changed

+10
-2
lines changed

level_zero/core/source/cmdlist/cmdlist_imp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ CommandList *CommandList::createImmediate(uint32_t productFamily, Device *device
152152
engineGroupType = deviceImp->getInternalEngineGroupType();
153153
}
154154
} else {
155-
returnValue = device->getCsrForOrdinalAndIndex(&csr, desc->ordinal, desc->index);
155+
returnValue = device->getCsrForOrdinalAndIndexWithPriority(&csr, desc->ordinal, desc->index, desc->priority);
156156
if (returnValue != ZE_RESULT_SUCCESS) {
157157
return commandList;
158158
}

level_zero/core/source/device/device.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ struct Device : _ze_device_handle_t {
139139
virtual void setSysmanHandle(SysmanDevice *pSysmanDevice) = 0;
140140
virtual SysmanDevice *getSysmanHandle() = 0;
141141
virtual ze_result_t getCsrForOrdinalAndIndex(NEO::CommandStreamReceiver **csr, uint32_t ordinal, uint32_t index) = 0;
142+
virtual ze_result_t getCsrForOrdinalAndIndexWithPriority(NEO::CommandStreamReceiver **csr, uint32_t ordinal, uint32_t index, ze_command_queue_priority_t priority) = 0;
142143
virtual ze_result_t getCsrForLowPriority(NEO::CommandStreamReceiver **csr) = 0;
143144
virtual NEO::GraphicsAllocation *obtainReusableAllocation(size_t requiredSize, NEO::AllocationType type) = 0;
144145
virtual void storeReusableAllocation(NEO::GraphicsAllocation &alloc) = 0;

level_zero/core/source/device/device_imp.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ ze_result_t DeviceImp::createCommandQueue(const ze_command_queue_desc_t *desc,
306306
if (commandQueueDesc.priority == ZE_COMMAND_QUEUE_PRIORITY_PRIORITY_LOW && !isCopyOnly) {
307307
getCsrForLowPriority(&csr);
308308
} else {
309-
auto ret = getCsrForOrdinalAndIndex(&csr, commandQueueDesc.ordinal, commandQueueDesc.index);
309+
auto ret = getCsrForOrdinalAndIndexWithPriority(&csr, commandQueueDesc.ordinal, commandQueueDesc.index, commandQueueDesc.priority);
310310
if (ret != ZE_RESULT_SUCCESS) {
311311
return ret;
312312
}
@@ -1632,6 +1632,10 @@ ze_result_t DeviceImp::getCsrForOrdinalAndIndex(NEO::CommandStreamReceiver **csr
16321632
return ZE_RESULT_SUCCESS;
16331633
}
16341634

1635+
ze_result_t DeviceImp::getCsrForOrdinalAndIndexWithPriority(NEO::CommandStreamReceiver **csr, uint32_t ordinal, uint32_t index, ze_command_queue_priority_t priority) {
1636+
return getCsrForOrdinalAndIndex(csr, ordinal, index);
1637+
}
1638+
16351639
ze_result_t DeviceImp::getCsrForLowPriority(NEO::CommandStreamReceiver **csr) {
16361640
NEO::Device *activeDevice = getActiveDevice();
16371641
if (this->implicitScalingCapable) {

level_zero/core/source/device/device_imp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ struct DeviceImp : public Device, NEO::NonCopyableOrMovableClass {
112112
void setSysmanHandle(SysmanDevice *pSysman) override;
113113
SysmanDevice *getSysmanHandle() override;
114114
ze_result_t getCsrForOrdinalAndIndex(NEO::CommandStreamReceiver **csr, uint32_t ordinal, uint32_t index) override;
115+
ze_result_t getCsrForOrdinalAndIndexWithPriority(NEO::CommandStreamReceiver **csr, uint32_t ordinal, uint32_t index, ze_command_queue_priority_t priority) override;
115116
ze_result_t getCsrForLowPriority(NEO::CommandStreamReceiver **csr) override;
116117
NEO::GraphicsAllocation *obtainReusableAllocation(size_t requiredSize, NEO::AllocationType type) override;
117118
void storeReusableAllocation(NEO::GraphicsAllocation &alloc) override;

level_zero/core/test/unit_tests/mocks/mock_device.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ struct MockDevice : public Device {
7575
ADDMETHOD_NOBASE_VOIDRETURN(setSysmanHandle, (SysmanDevice *));
7676
ADDMETHOD_NOBASE(getSysmanHandle, SysmanDevice *, nullptr, ());
7777
ADDMETHOD_NOBASE(getCsrForOrdinalAndIndex, ze_result_t, ZE_RESULT_SUCCESS, (NEO::CommandStreamReceiver * *csr, uint32_t ordinal, uint32_t index));
78+
ADDMETHOD_NOBASE(getCsrForOrdinalAndIndexWithPriority, ze_result_t, ZE_RESULT_SUCCESS, (NEO::CommandStreamReceiver * *csr, uint32_t ordinal, uint32_t index, ze_command_queue_priority_t priority));
7879
ADDMETHOD_NOBASE(getCsrForLowPriority, ze_result_t, ZE_RESULT_SUCCESS, (NEO::CommandStreamReceiver * *csr));
7980
ADDMETHOD_NOBASE(getDebugProperties, ze_result_t, ZE_RESULT_SUCCESS, (zet_device_debug_properties_t * properties));
8081
ADDMETHOD_NOBASE(getDebugSession, DebugSession *, nullptr, (const zet_debug_config_t &config));

shared/source/helpers/engine_node_helper.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ struct RootDeviceEnvironment;
2323
enum class EngineUsage : uint32_t {
2424
regular,
2525
lowPriority,
26+
highPriority,
2627
internal,
2728
cooperative,
2829

0 commit comments

Comments
 (0)