@@ -756,6 +756,17 @@ typedef cl_int (CL_API_CALL* clTerminateContextKHR_clextfn)(
756
756
#pragma message("Define for cl_khr_terminate_context was not found! Please update your headers.")
757
757
#endif // defined(cl_khr_terminate_context)
758
758
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
+
759
770
#if defined(cl_ext_device_fission)
760
771
761
772
typedef cl_int (CL_API_CALL* clReleaseDeviceEXT_clextfn)(
@@ -1445,6 +1456,10 @@ struct openclext_dispatch_table {
1445
1456
clTerminateContextKHR_clextfn clTerminateContextKHR;
1446
1457
#endif // defined(cl_khr_terminate_context)
1447
1458
1459
+ #if defined(cl_ext_buffer_device_address)
1460
+ clSetKernelArgDevicePointerEXT_clextfn clSetKernelArgDevicePointerEXT;
1461
+ #endif // defined(cl_ext_buffer_device_address)
1462
+
1448
1463
#if defined(cl_ext_device_fission)
1449
1464
clReleaseDeviceEXT_clextfn clReleaseDeviceEXT;
1450
1465
clRetainDeviceEXT_clextfn clRetainDeviceEXT;
@@ -1721,6 +1736,10 @@ static void _init(cl_platform_id platform, openclext_dispatch_table* dispatch_pt
1721
1736
CLEXT_GET_EXTENSION (clTerminateContextKHR);
1722
1737
#endif // defined(cl_khr_terminate_context)
1723
1738
1739
+ #if defined(cl_ext_buffer_device_address)
1740
+ CLEXT_GET_EXTENSION (clSetKernelArgDevicePointerEXT);
1741
+ #endif // defined(cl_ext_buffer_device_address)
1742
+
1724
1743
#if defined(cl_ext_device_fission)
1725
1744
CLEXT_GET_EXTENSION (clReleaseDeviceEXT);
1726
1745
CLEXT_GET_EXTENSION (clRetainDeviceEXT);
@@ -3414,6 +3433,25 @@ cl_int CL_API_CALL clTerminateContextKHR(
3414
3433
3415
3434
#endif // defined(cl_khr_terminate_context)
3416
3435
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
+
3417
3455
#if defined(cl_ext_device_fission)
3418
3456
3419
3457
cl_int CL_API_CALL clReleaseDeviceEXT (
0 commit comments