P4 to Git Change 1309472 by lmoriche@lmoriche_opencl_dev on 2016/08/31 19:27:07

SWDEV-94610 - Fix the API::get_kernel_arg_info conformance test failure. The runtime metadata needs to return references from Name() and TypeName() instead of temporary strings. Name().c_str() should be valid until the program is destroyed.

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#8 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmetadata.cpp#2 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmetadata.hpp#3 edit


[ROCm/clr commit: 29a3f5d56a]
This commit is contained in:
foreman
2016-08-31 19:36:48 -04:00
vanhempi ac10a39e22
commit 0b63f2d19f
3 muutettua tiedostoa jossa 18 lisäystä ja 39 poistoa
@@ -820,16 +820,16 @@ bool Kernel::init_LC(){
}
size_t idx = runtimeMD->KernelIndexByName(name());
const RuntimeMD::Kernel::Metadata* kernelMD = runtimeMD->GetKernelMetadata(idx);
const RuntimeMD::Kernel::Metadata& kernelMD = runtimeMD->GetKernelMetadata(idx);
size_t sizeOfArgList = kernelMD->KernelArgCount();
size_t sizeOfArgList = kernelMD.KernelArgCount();
size_t kOffset = 0;
size_t pOffset = 0;
device::Kernel::parameters_t params;
for (uint32_t i=0; i < sizeOfArgList; i++) {
const RuntimeMD::KernelArg::Metadata* kernelArg = kernelMD->GetKernelArgMetadata(i);
initArgsParams(kernelArg, &kOffset, params, &pOffset);
const RuntimeMD::KernelArg::Metadata& kernelArg = kernelMD.GetKernelArgMetadata(i);
initArgsParams(&kernelArg, &kOffset, params, &pOffset);
}
createSignature(params);
@@ -840,7 +840,7 @@ bool Kernel::init_LC(){
workGroupInfo_.availableSGPRs_ = 0;
workGroupInfo_.availableVGPRs_ = 0;
const uint32_t* workGroupSizeHint = kernelMD->WorkgroupSizeHint();
const uint32_t* workGroupSizeHint = kernelMD.WorkgroupSizeHint();
size_t sizeOfWorkGroupSize = (workGroupSizeHint) ? *workGroupSizeHint : 0;
uint32_t wavefront_size = 0;