SWDEV-545273 - Respect HIP_LAUNCH_PARAM_BUFFER_SIZE (#770)
Este cometimento está contido em:
cometido por
GitHub
ascendente
1492328894
cometimento
2a02d2c2f3
@@ -104,21 +104,20 @@ address KernelParameters::alloc(device::VirtualDevice& vDev) {
|
||||
}
|
||||
|
||||
// =================================================================================================
|
||||
bool KernelParameters::captureAndSet(void** kernelParams, address kernArgs, address mem) {
|
||||
|
||||
bool KernelParameters::captureAndSet(void** kernelParams, address kernArgs, size_t kernArgsSize,
|
||||
address mem) {
|
||||
amd::Memory** memories = reinterpret_cast<amd::Memory**>(mem + memoryObjOffset());
|
||||
for (size_t idx = 0; idx < signature_.numParameters(); ++idx) {
|
||||
KernelParameterDescriptor& desc = signature_.params()[idx];
|
||||
void* value = nullptr;
|
||||
if (kernelParams != nullptr) {
|
||||
value = kernelParams[idx];
|
||||
} else {
|
||||
value = kernArgs + desc.offset_;
|
||||
}
|
||||
void* value = kernelParams ? kernelParams[idx] : kernArgs + desc.offset_;
|
||||
void* param = mem + desc.offset_;
|
||||
uint32_t uint32_value = 0;
|
||||
uint64_t uint64_value = 0;
|
||||
// if using the 'extra' path and this parameter lies beyond supplied size, write zero
|
||||
if (kernelParams == nullptr && ((desc.offset_ + desc.size_) > kernArgsSize)) {
|
||||
value = &uint64_value;
|
||||
}
|
||||
Memory* memArg = nullptr;
|
||||
amd::Memory** memories = reinterpret_cast<amd::Memory**>(mem + memoryObjOffset());
|
||||
if (desc.type_ == T_POINTER && (desc.addressQualifier_ != CL_KERNEL_ARG_ADDRESS_LOCAL)) {
|
||||
LP64_SWITCH(uint32_value, uint64_value) = *(LP64_SWITCH(uint32_t*, uint64_t*))value;
|
||||
memArg = amd::MemObjMap::FindMemObj(*reinterpret_cast<const void* const*>(value));
|
||||
|
||||
Criar uma nova questão referindo esta
Bloquear um utilizador