diff --git a/projects/rocr-runtime/include/hsakmttypes.h b/projects/rocr-runtime/include/hsakmttypes.h index f74641d181..06d650c5e8 100644 --- a/projects/rocr-runtime/include/hsakmttypes.h +++ b/projects/rocr-runtime/include/hsakmttypes.h @@ -617,9 +617,10 @@ typedef enum _HSA_QUEUE_PRIORITY typedef enum _HSA_QUEUE_TYPE { HSA_QUEUE_COMPUTE = 1, // AMD PM4 compatible Compute Queue - HSA_QUEUE_SDMA = 2, // SDMA Queue, used for data transport and format conversion (e.g. (de-)tiling, etc). + HSA_QUEUE_SDMA = 2, // PCIe optimized SDMA Queue, used for data transport and format conversion (e.g. (de-)tiling, etc). HSA_QUEUE_MULTIMEDIA_DECODE = 3, // reserved, for HSA multimedia decode queue HSA_QUEUE_MULTIMEDIA_ENCODE = 4, // reserved, for HSA multimedia encode queue + HSA_QUEUE_SDMA_XGMI = 5, // XGMI optimized SDMA Queue // the following values indicate a queue type permitted to reference OS graphics // resources through the interoperation API. See [5] "HSA Graphics Interoperation @@ -632,6 +633,7 @@ typedef enum _HSA_QUEUE_TYPE HSA_QUEUE_COMPUTE_AQL = 21, // HSA AQL packet compatible Compute Queue HSA_QUEUE_DMA_AQL = 22, // HSA AQL packet compatible DMA Queue + HSA_QUEUE_DMA_AQL_XGMI = 23, // HSA AQL packet compatible XGMI optimized DMA Queue // more types in the future diff --git a/projects/rocr-runtime/src/queues.c b/projects/rocr-runtime/src/queues.c index 98869c57ac..aaee01cb83 100644 --- a/projects/rocr-runtime/src/queues.c +++ b/projects/rocr-runtime/src/queues.c @@ -465,7 +465,8 @@ static int handle_concrete_asic(struct queue *q, const struct device_info *dev_info = q->dev_info; bool ret; - if (!dev_info || args->queue_type == KFD_IOC_QUEUE_TYPE_SDMA) + if (!dev_info || args->queue_type == KFD_IOC_QUEUE_TYPE_SDMA || + args->queue_type == KFD_IOC_QUEUE_TYPE_SDMA_XGMI) return HSAKMT_STATUS_SUCCESS; if (dev_info->eop_buffer_size > 0) { @@ -574,6 +575,9 @@ HSAKMT_STATUS HSAKMTAPI hsaKmtCreateQueue(HSAuint32 NodeId, case HSA_QUEUE_SDMA: args.queue_type = KFD_IOC_QUEUE_TYPE_SDMA; break; + case HSA_QUEUE_SDMA_XGMI: + args.queue_type = KFD_IOC_QUEUE_TYPE_SDMA_XGMI; + break; case HSA_QUEUE_COMPUTE_AQL: args.queue_type = KFD_IOC_QUEUE_TYPE_COMPUTE_AQL; break;