Skip to content

Commit d20dd60

Browse files
aarongreigkbenzie
authored andcommitted
Update adapters to reflect the spec change.
1 parent 86e2fb3 commit d20dd60

File tree

5 files changed

+8
-11
lines changed

5 files changed

+8
-11
lines changed

source/adapters/cuda/kernel.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,8 @@ urKernelSetArgPointer(ur_kernel_handle_t hKernel, uint32_t argIndex,
287287
const ur_kernel_arg_pointer_properties_t *pProperties,
288288
const void *pArgValue) {
289289
std::ignore = pProperties;
290-
hKernel->setKernelArg(argIndex, sizeof(pArgValue), pArgValue);
290+
// setKernelArg is expecting a pointer to our argument
291+
hKernel->setKernelArg(argIndex, sizeof(pArgValue), &pArgValue);
291292
return UR_RESULT_SUCCESS;
292293
}
293294

source/adapters/hip/kernel.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,8 @@ urKernelGetSubGroupInfo(ur_kernel_handle_t hKernel, ur_device_handle_t hDevice,
273273
UR_APIEXPORT ur_result_t UR_APICALL urKernelSetArgPointer(
274274
ur_kernel_handle_t hKernel, uint32_t argIndex,
275275
const ur_kernel_arg_pointer_properties_t *, const void *pArgValue) {
276-
hKernel->setKernelArg(argIndex, sizeof(pArgValue), pArgValue);
276+
// setKernelArg is expecting a pointer to our argument
277+
hKernel->setKernelArg(argIndex, sizeof(pArgValue), &pArgValue);
277278
return UR_RESULT_SUCCESS;
278279
}
279280

source/adapters/level_zero/kernel.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1004,8 +1004,9 @@ UR_APIEXPORT ur_result_t UR_APICALL urKernelSetArgPointer(
10041004
) {
10051005
std::ignore = Properties;
10061006

1007+
// KernelSetArgValue is expecting a pointer to the argument
10071008
UR_CALL(urKernelSetArgValue(Kernel, ArgIndex, sizeof(const void *), nullptr,
1008-
ArgValue));
1009+
&ArgValue));
10091010
return UR_RESULT_SUCCESS;
10101011
}
10111012

source/adapters/native_cpu/kernel.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,7 @@ urKernelSetArgPointer(ur_kernel_handle_t hKernel, uint32_t argIndex,
213213
UR_ASSERT(hKernel, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
214214
UR_ASSERT(pArgValue, UR_RESULT_ERROR_INVALID_NULL_POINTER);
215215

216-
auto ptrToPtr = reinterpret_cast<const intptr_t *>(pArgValue);
217-
auto derefPtr = reinterpret_cast<void *>(*ptrToPtr);
218-
hKernel->_args.push_back(derefPtr);
216+
hKernel->_args.push_back(const_cast<void *>(pArgValue));
219217

220218
return UR_RESULT_SUCCESS;
221219
}

source/adapters/opencl/kernel.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -359,13 +359,9 @@ UR_APIEXPORT ur_result_t UR_APICALL urKernelSetArgPointer(
359359
cl_ext::SetKernelArgMemPointerName, &FuncPtr));
360360

361361
if (FuncPtr) {
362-
/* OpenCL passes pointers by value not by reference. This means we need to
363-
* deref the arg to get the pointer value */
364-
auto PtrToPtr = reinterpret_cast<const intptr_t *>(pArgValue);
365-
auto DerefPtr = reinterpret_cast<void *>(*PtrToPtr);
366362
CL_RETURN_ON_FAILURE(FuncPtr(cl_adapter::cast<cl_kernel>(hKernel),
367363
cl_adapter::cast<cl_uint>(argIndex),
368-
DerefPtr));
364+
pArgValue));
369365
}
370366

371367
return UR_RESULT_SUCCESS;

0 commit comments

Comments
 (0)