Adding support for get_image_num_mip_levels

* patch token decoding
* crossthread data patching

* additionally, fixing nasty ODR violation in VA tests
  (note : ODR = One Definition Rule)

Change-Id: I9803ed599826c97359349d2b8fa0d86e46cb33ea
This commit is contained in:
Chodor, Jaroslaw
2018-04-05 17:14:12 +02:00
committed by sys_ocldev
parent f6a9e3f6f3
commit 614b69a3bf
12 changed files with 283 additions and 199 deletions

View File

@@ -1235,6 +1235,7 @@ cl_int Kernel::setArgImageWithMipLevel(uint32_t argIndex,
patch<uint32_t, cl_channel_type>(imageFormat.image_channel_data_type, crossThreadData, kernelArgInfo.offsetChannelDataType);
patch<uint32_t, cl_channel_order>(imageFormat.image_channel_order, crossThreadData, kernelArgInfo.offsetChannelOrder);
patch<uint32_t, uint32_t>(kernelArgInfo.offsetHeap, crossThreadData, kernelArgInfo.offsetObjectId);
patch<uint32_t, cl_uint>(imageDesc.num_mip_levels, crossThreadData, kernelArgInfo.offsetNumMipLevels);
retVal = CL_SUCCESS;
}

View File

@@ -67,6 +67,7 @@ struct KernelArgInfo {
uint32_t offsetVmeSearchPathType = undefinedOffset;
uint32_t offsetObjectId = undefinedOffset;
uint32_t offsetBufferOffset = undefinedOffset;
uint32_t offsetNumMipLevels = undefinedOffset;
bool needPatch = false;
bool isTransformable = false;

View File

@@ -430,6 +430,11 @@ cl_int Program::parsePatchList(KernelInfo &kernelInfo) {
break;
case DATA_PARAMETER_IMAGE_NUM_MIP_LEVELS:
DBG_LOG(LogPatchTokens, "\n .Type", "IMAGE_NUM_MIP_LEVELS");
kernelInfo.resizeKernelArgInfoAndRegisterParameter(argNum);
kernelInfo.kernelArgInfo[argNum].offsetNumMipLevels = pDataParameterBuffer->Offset;
DEBUG_BREAK_IF(pDataParameterBuffer->DataSize != sizeof(uint32_t));
break;
case DATA_PARAMETER_IMAGE_SRGB_CHANNEL_ORDER:
case DATA_PARAMETER_STAGE_IN_GRID_ORIGIN:
case DATA_PARAMETER_STAGE_IN_GRID_SIZE: