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:
@@ -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;
|
||||
|
||||
Viittaa uudesa ongelmassa
Block a user