@@ -2288,7 +2288,10 @@ inline pi_result piKernelSetArgPointer(pi_kernel Kernel, pi_uint32 ArgIndex,
2288
2288
size_t ArgSize, const void *ArgValue) {
2289
2289
std::ignore = ArgSize;
2290
2290
ur_kernel_handle_t UrKernel = reinterpret_cast <ur_kernel_handle_t >(Kernel);
2291
- HANDLE_ERRORS (urKernelSetArgPointer (UrKernel, ArgIndex, nullptr , ArgValue));
2291
+ // The old PI interface was expecting a pointer to the pointer obtained via
2292
+ // usm/virtual memory, UR now consumes that pointer directly.
2293
+ const void *Arg = *static_cast <const void *const *>(ArgValue);
2294
+ HANDLE_ERRORS (urKernelSetArgPointer (UrKernel, ArgIndex, nullptr , Arg));
2292
2295
2293
2296
return PI_SUCCESS;
2294
2297
}
@@ -2552,7 +2555,10 @@ inline pi_result piProgramRelease(pi_program Program) {
2552
2555
inline pi_result piextKernelSetArgPointer (pi_kernel Kernel, pi_uint32 ArgIndex,
2553
2556
size_t , const void *ArgValue) {
2554
2557
ur_kernel_handle_t UrKernel = reinterpret_cast <ur_kernel_handle_t >(Kernel);
2555
- HANDLE_ERRORS (urKernelSetArgPointer (UrKernel, ArgIndex, nullptr , ArgValue));
2558
+ // The old PI interface was expecting a pointer to the pointer obtained via
2559
+ // usm/virtual memory, UR now consumes that pointer directly.
2560
+ const void *Arg = *static_cast <const void *const *>(ArgValue);
2561
+ HANDLE_ERRORS (urKernelSetArgPointer (UrKernel, ArgIndex, nullptr , Arg));
2556
2562
2557
2563
return PI_SUCCESS;
2558
2564
}
0 commit comments