SWDEV-521011 - Allow max stack size as per ISA. (#73)

This commit is contained in:
Patel, Jaydeepkumar
2025-04-07 21:45:38 -07:00
zatwierdzone przez GitHub
rodzic e974f7fde1
commit 9e7248aa36
4 zmienionych plików z 51 dodań i 9 usunięć
+12 -3
Wyświetl plik
@@ -3585,9 +3585,18 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes,
dispatchPacket.private_segment_size = devKernel->workGroupInfo()->privateMemSize_;
if ((devKernel->workGroupInfo()->usedStackSize_ & 0x1) == 0x1) {
dispatchPacket.private_segment_size = std::min<uint64_t>(
std::max<uint64_t>(dev().StackSize(), dispatchPacket.private_segment_size),
Device::kMaxStackSize);
dispatchPacket.private_segment_size = std::max<uint64_t>(dev().StackSize(),
dispatchPacket.private_segment_size);
// Validate privateMemSize is more than max allowed.
size_t maxStackSize = dev().MaxStackSize();
if (dispatchPacket.private_segment_size > maxStackSize) {
ClPrint(amd::LOG_INFO, amd::LOG_KERN,
"Scratch size (%u) exceeds max allowed (%zu) for kernel : %s",
dispatchPacket.private_segment_size, maxStackSize,
gpuKernel.getDemangledName().c_str());
LogError("Scratch size exceeds max allowed.");
return false;
}
}
// Pass the header accordingly