2
0

SWDEV-430911 - Force SDMA only if explicitly specified & pick appropriate engine.

Change-Id: Ib34fa6b2782f74b753899fa8fddff646dc60c8ce


[ROCm/clr commit: 3daf8b334a]
Este cometimento está contido em:
Jaydeep Patel
2023-12-04 18:37:10 +00:00
cometido por Jaydeepkumar Patel
ascendente 73c249bb59
cometimento 0d74d8b187
+6 -1
Ver ficheiro
@@ -691,7 +691,7 @@ bool DmaBlitManager::hsaCopy(const Memory& srcMemory, const Memory& dstMemory,
// Determine engine and assign a copy mask for the new versatile ROCr API
// If engine preferred is SDMA, assign the SdmaWrite path
if ((srcAgent.handle == dev().getCpuAgent().handle) &&
(dstAgent.handle != dev().getCpuAgent().handle) || forceSDMA) {
(dstAgent.handle != dev().getCpuAgent().handle)) {
engine = HwQueueEngine::SdmaWrite;
copyMask = kUseRegularCopyApi ? 0 : dev().fetchSDMAMask(this, false);
} else if ((srcAgent.handle != dev().getCpuAgent().handle) &&
@@ -700,6 +700,11 @@ bool DmaBlitManager::hsaCopy(const Memory& srcMemory, const Memory& dstMemory,
copyMask = kUseRegularCopyApi ? 0 : dev().fetchSDMAMask(this, true);
}
if (engine == HwQueueEngine::Unknown && forceSDMA) {
engine = HwQueueEngine::SdmaRead;
copyMask = kUseRegularCopyApi ? 0 : dev().fetchSDMAMask(this, true);
}
// Check if host wait has to be forced
bool forceHostWait = forceHostWaitFunc(size[0]);