Create SDMA queue on specific engine

Change-Id: Iece03795510d66b03324174203faa0ac9eb4fb7d
Signed-off-by: Oak Zeng <ozeng@amd.com>
Этот коммит содержится в:
Oak Zeng
2018-11-12 16:06:57 -06:00
родитель 8d65e72045
Коммит acb80d7583
2 изменённых файлов: 7 добавлений и 2 удалений
+5 -1
Просмотреть файл
@@ -36,7 +36,7 @@ BaseQueue::~BaseQueue(void) {
Destroy();
}
HSAKMT_STATUS BaseQueue::Create(unsigned int NodeId, unsigned int size, HSAuint64 *pointers) {
HSAKMT_STATUS BaseQueue::Create(unsigned int NodeId, unsigned int size, HSAuint64 *pointers, int sdmaEngineId) {
HSAKMT_STATUS status;
HSA_QUEUE_TYPE type = GetQueueType();
@@ -54,6 +54,10 @@ HSAKMT_STATUS BaseQueue::Create(unsigned int NodeId, unsigned int size, HSAuint6
m_Resources.Queue_write_ptr_aql = &pointers[1];
}
//TODO: How to get number of SDMA engine?
if (type == HSA_QUEUE_SDMA && sdmaEngineId >= 0 && sdmaEngineId < 8)
type = (HSA_QUEUE_TYPE) (HSA_QUEUE_SDMA_ENGINE0 + sdmaEngineId);
status = hsaKmtCreateQueue(NodeId,
type,
DEFAULT_QUEUE_PERCENTAGE,