diff --git a/projects/clr/rocclr/device/pal/palkernel.cpp b/projects/clr/rocclr/device/pal/palkernel.cpp index c9bd217fbd..19c6d9fe79 100644 --- a/projects/clr/rocclr/device/pal/palkernel.cpp +++ b/projects/clr/rocclr/device/pal/palkernel.cpp @@ -409,7 +409,7 @@ hsa_kernel_dispatch_packet_t* HSAILKernel::loadArguments(VirtualGPU& gpu, const } break; case amd::KernelParameterDescriptor::HiddenRemainderX: - WriteAqlArgAt(hidden_arguments, static_cast(global[0] % local[0]), + WriteAqlArgAt(hidden_arguments, static_cast(global[0] % local[0]), it.size_, it.offset_); break; case amd::KernelParameterDescriptor::HiddenRemainderY: @@ -447,7 +447,8 @@ hsa_kernel_dispatch_packet_t* HSAILKernel::loadArguments(VirtualGPU& gpu, const // Load all kernel arguments if (signature.version() == kernel.signature().version()) { - memcpy(aqlArgBuf, parameters, argsBufferSize()); + memcpy(aqlArgBuf, parameters, std::min(static_cast(argsBufferSize()), + signature.paramsSize())); } // hsa_kernel_dispatch_packet_t disp; diff --git a/projects/clr/rocclr/device/rocm/rocvirtual.cpp b/projects/clr/rocclr/device/rocm/rocvirtual.cpp index 9f0d2b9c75..7e74db32a6 100644 --- a/projects/clr/rocclr/device/rocm/rocvirtual.cpp +++ b/projects/clr/rocclr/device/rocm/rocvirtual.cpp @@ -2964,7 +2964,8 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes, argBuffer = reinterpret_cast
(allocKernArg(gpuKernel.KernargSegmentByteSize(), gpuKernel.KernargSegmentAlignment())); // Load all kernel arguments - memcpy(argBuffer, parameters, gpuKernel.KernargSegmentByteSize()); + memcpy(argBuffer, parameters, std::min(gpuKernel.KernargSegmentByteSize(), + signature.paramsSize())); } // Check for group memory overflow