Skip to content

Commit 1c7d0c7

Browse files
committed
Update adapters to reflect the spec change.
1 parent 226dfa7 commit 1c7d0c7

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
@@ -282,7 +282,8 @@ urKernelSetArgPointer(ur_kernel_handle_t hKernel, uint32_t argIndex,
282282
const ur_kernel_arg_pointer_properties_t *pProperties,
283283
const void *pArgValue) {
284284
std::ignore = pProperties;
285-
hKernel->setKernelArg(argIndex, sizeof(pArgValue), pArgValue);
285+
// setKernelArg is expecting a pointer to our argument
286+
hKernel->setKernelArg(argIndex, sizeof(pArgValue), &pArgValue);
286287
return UR_RESULT_SUCCESS;
287288
}
288289

source/adapters/hip/kernel.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,8 @@ urKernelGetSubGroupInfo(ur_kernel_handle_t hKernel, ur_device_handle_t hDevice,
259259
UR_APIEXPORT ur_result_t UR_APICALL urKernelSetArgPointer(
260260
ur_kernel_handle_t hKernel, uint32_t argIndex,
261261
const ur_kernel_arg_pointer_properties_t *, const void *pArgValue) {
262-
hKernel->setKernelArg(argIndex, sizeof(pArgValue), pArgValue);
262+
// setKernelArg is expecting a pointer to our argument
263+
hKernel->setKernelArg(argIndex, sizeof(pArgValue), &pArgValue);
263264
return UR_RESULT_SUCCESS;
264265
}
265266

source/adapters/level_zero/kernel.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -622,8 +622,9 @@ UR_APIEXPORT ur_result_t UR_APICALL urKernelSetArgPointer(
622622
) {
623623
std::ignore = Properties;
624624

625+
// KernelSetArgValue is expecting a pointer to the argument
625626
UR_CALL(urKernelSetArgValue(Kernel, ArgIndex, sizeof(const void *), nullptr,
626-
ArgValue));
627+
&ArgValue));
627628
return UR_RESULT_SUCCESS;
628629
}
629630

source/adapters/native_cpu/kernel.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,7 @@ urKernelSetArgPointer(ur_kernel_handle_t hKernel, uint32_t argIndex,
205205
UR_ASSERT(hKernel, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
206206
UR_ASSERT(pArgValue, UR_RESULT_ERROR_INVALID_NULL_POINTER);
207207

208-
auto ptrToPtr = reinterpret_cast<const intptr_t *>(pArgValue);
209-
auto derefPtr = reinterpret_cast<void *>(*ptrToPtr);
210-
hKernel->_args.push_back(derefPtr);
208+
hKernel->_args.push_back(const_cast<void *>(pArgValue));
211209

212210
return UR_RESULT_SUCCESS;
213211
}

source/adapters/opencl/kernel.cpp

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

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

370366
return UR_RESULT_SUCCESS;

0 commit comments

Comments
 (0)