@@ -756,6 +756,17 @@ typedef cl_int (CL_API_CALL* clTerminateContextKHR_clextfn)(
756756#pragma message("Define for cl_khr_terminate_context was not found! Please update your headers.")
757757#endif // defined(cl_khr_terminate_context)
758758
759+ #if defined(cl_ext_buffer_device_address)
760+
761+ typedef cl_int (CL_API_CALL* clSetKernelArgDevicePointerEXT_clextfn)(
762+ cl_kernel kernel,
763+ cl_uint arg_index,
764+ cl_mem_device_address_ext arg_value);
765+
766+ #else
767+ #pragma message("Define for cl_ext_buffer_device_address was not found! Please update your headers.")
768+ #endif // defined(cl_ext_buffer_device_address)
769+
759770#if defined(cl_ext_device_fission)
760771
761772typedef cl_int (CL_API_CALL* clReleaseDeviceEXT_clextfn)(
@@ -1445,6 +1456,10 @@ struct openclext_dispatch_table {
14451456 clTerminateContextKHR_clextfn clTerminateContextKHR;
14461457#endif // defined(cl_khr_terminate_context)
14471458
1459+ #if defined(cl_ext_buffer_device_address)
1460+ clSetKernelArgDevicePointerEXT_clextfn clSetKernelArgDevicePointerEXT;
1461+ #endif // defined(cl_ext_buffer_device_address)
1462+
14481463#if defined(cl_ext_device_fission)
14491464 clReleaseDeviceEXT_clextfn clReleaseDeviceEXT;
14501465 clRetainDeviceEXT_clextfn clRetainDeviceEXT;
@@ -1721,6 +1736,10 @@ static void _init(cl_platform_id platform, openclext_dispatch_table* dispatch_pt
17211736 CLEXT_GET_EXTENSION (clTerminateContextKHR);
17221737#endif // defined(cl_khr_terminate_context)
17231738
1739+ #if defined(cl_ext_buffer_device_address)
1740+ CLEXT_GET_EXTENSION (clSetKernelArgDevicePointerEXT);
1741+ #endif // defined(cl_ext_buffer_device_address)
1742+
17241743#if defined(cl_ext_device_fission)
17251744 CLEXT_GET_EXTENSION (clReleaseDeviceEXT);
17261745 CLEXT_GET_EXTENSION (clRetainDeviceEXT);
@@ -3414,6 +3433,25 @@ cl_int CL_API_CALL clTerminateContextKHR(
34143433
34153434#endif // defined(cl_khr_terminate_context)
34163435
3436+ #if defined(cl_ext_buffer_device_address)
3437+
3438+ cl_int CL_API_CALL clSetKernelArgDevicePointerEXT (
3439+ cl_kernel kernel,
3440+ cl_uint arg_index,
3441+ cl_mem_device_address_ext arg_value)
3442+ {
3443+ struct openclext_dispatch_table * dispatch_ptr = _get_dispatch (kernel);
3444+ if (dispatch_ptr == nullptr || dispatch_ptr->clSetKernelArgDevicePointerEXT == nullptr ) {
3445+ return CL_INVALID_OPERATION;
3446+ }
3447+ return dispatch_ptr->clSetKernelArgDevicePointerEXT (
3448+ kernel,
3449+ arg_index,
3450+ arg_value);
3451+ }
3452+
3453+ #endif // defined(cl_ext_buffer_device_address)
3454+
34173455#if defined(cl_ext_device_fission)
34183456
34193457cl_int CL_API_CALL clReleaseDeviceEXT (
0 commit comments