SWDEV-376453 - Changes to fix crash seen with HIP and recent compiler change with -O0

Change-Id: I37de83b7449461ce2378741e97ff8fb8da736523


[ROCm/clr commit: c585aefdb7]
This commit is contained in:
Jatin Chaudhary
2023-04-25 23:57:51 +01:00
کامیت شده توسط Jatin Jaikishan Chaudhary
والد ebc60d68a8
کامیت 639656a09e
3فایلهای تغییر یافته به همراه6 افزوده شده و 5 حذف شده
@@ -1343,7 +1343,8 @@ void Kernel::InitParameters(const amd_comgr_metadata_node_t kernelMD) {
// Allocate the hidden arguments, but abstraction layer will skip them
if (desc.info_.hidden_) {
if (desc.info_.oclObject_ == amd::KernelParameterDescriptor::HiddenCompletionAction) {
if (desc.info_.oclObject_ == amd::KernelParameterDescriptor::HiddenCompletionAction &&
!amd::IS_HIP) {
setDynamicParallelFlag(true);
}
if (codeObjectVer() == 2) {
@@ -348,12 +348,12 @@ hsa_kernel_dispatch_packet_t* HSAILKernel::loadArguments(VirtualGPU& gpu, const
}
break;
case amd::KernelParameterDescriptor::HiddenDefaultQueue:
if (vmDefQueue != 0) {
if (vmDefQueue != 0 && dynamicParallelism()) {
WriteAqlArgAt(hidden_arguments, vmDefQueue, it.size_, it.offset_);
}
break;
case amd::KernelParameterDescriptor::HiddenCompletionAction:
if (*vmParentWrap != 0) {
if (*vmParentWrap != 0 && dynamicParallelism()) {
WriteAqlArgAt(hidden_arguments, *vmParentWrap, it.size_, it.offset_);
}
break;
@@ -2908,7 +2908,7 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes,
case amd::KernelParameterDescriptor::HiddenDefaultQueue: {
uint64_t vqVA = 0;
amd::DeviceQueue* defQueue = kernel.program().context().defDeviceQueue(dev());
if (nullptr != defQueue) {
if (nullptr != defQueue && devKernel->dynamicParallelism()) {
if (!createVirtualQueue(defQueue->size()) || !createSchedulerParam()) {
return false;
}
@@ -2919,7 +2919,7 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes,
}
case amd::KernelParameterDescriptor::HiddenCompletionAction: {
uint64_t spVA = 0;
if (nullptr != schedulerParam_) {
if (nullptr != schedulerParam_ && devKernel->dynamicParallelism()) {
Memory* schedulerMem = dev().getRocMemory(schedulerParam_);
AmdAqlWrap* wrap = reinterpret_cast<AmdAqlWrap*>(
reinterpret_cast<uint64_t>(schedulerParam_->getHostMem()) + sizeof(SchedulerParam));