Skip to content

Commit f85ee5b

Browse files
authored
Merge pull request #564 from callumfare/callum/allow_null_mem_obj_arg
[ur] Make hArgValue optional again in urKernelSetMemObj
2 parents f2f47db + e0a944b commit f85ee5b

File tree

9 files changed

+11
-21
lines changed

9 files changed

+11
-21
lines changed

include/ur_api.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3850,13 +3850,12 @@ urKernelSetArgSampler(
38503850
/// - ::UR_RESULT_ERROR_DEVICE_LOST
38513851
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
38523852
/// + `NULL == hKernel`
3853-
/// + `NULL == hArgValue`
38543853
/// - ::UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX
38553854
UR_APIEXPORT ur_result_t UR_APICALL
38563855
urKernelSetArgMemObj(
38573856
ur_kernel_handle_t hKernel, ///< [in] handle of the kernel object
38583857
uint32_t argIndex, ///< [in] argument index in range [0, num args - 1]
3859-
ur_mem_handle_t hArgValue ///< [in] handle of Memory object.
3858+
ur_mem_handle_t hArgValue ///< [in][optional] handle of Memory object.
38603859
);
38613860

38623861
///////////////////////////////////////////////////////////////////////////////

scripts/core/kernel.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ params:
374374
desc: "[in] argument index in range [0, num args - 1]"
375375
- type: "$x_mem_handle_t"
376376
name: hArgValue
377-
desc: "[in] handle of Memory object."
377+
desc: "[in][optional] handle of Memory object."
378378
returns:
379379
- $X_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX
380380
--- #--------------------------------------------------------------------------

source/adapters/null/ur_nullddi.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1951,7 +1951,7 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgSampler(
19511951
__urdlllocal ur_result_t UR_APICALL urKernelSetArgMemObj(
19521952
ur_kernel_handle_t hKernel, ///< [in] handle of the kernel object
19531953
uint32_t argIndex, ///< [in] argument index in range [0, num args - 1]
1954-
ur_mem_handle_t hArgValue ///< [in] handle of Memory object.
1954+
ur_mem_handle_t hArgValue ///< [in][optional] handle of Memory object.
19551955
) try {
19561956
ur_result_t result = UR_RESULT_SUCCESS;
19571957

source/loader/layers/tracing/ur_trcddi.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2223,7 +2223,7 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgSampler(
22232223
__urdlllocal ur_result_t UR_APICALL urKernelSetArgMemObj(
22242224
ur_kernel_handle_t hKernel, ///< [in] handle of the kernel object
22252225
uint32_t argIndex, ///< [in] argument index in range [0, num args - 1]
2226-
ur_mem_handle_t hArgValue ///< [in] handle of Memory object.
2226+
ur_mem_handle_t hArgValue ///< [in][optional] handle of Memory object.
22272227
) {
22282228
auto pfnSetArgMemObj = context.urDdiTable.Kernel.pfnSetArgMemObj;
22292229

source/loader/layers/validation/ur_valddi.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2725,7 +2725,7 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgSampler(
27252725
__urdlllocal ur_result_t UR_APICALL urKernelSetArgMemObj(
27262726
ur_kernel_handle_t hKernel, ///< [in] handle of the kernel object
27272727
uint32_t argIndex, ///< [in] argument index in range [0, num args - 1]
2728-
ur_mem_handle_t hArgValue ///< [in] handle of Memory object.
2728+
ur_mem_handle_t hArgValue ///< [in][optional] handle of Memory object.
27292729
) {
27302730
auto pfnSetArgMemObj = context.urDdiTable.Kernel.pfnSetArgMemObj;
27312731

@@ -2737,10 +2737,6 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgMemObj(
27372737
if (NULL == hKernel) {
27382738
return UR_RESULT_ERROR_INVALID_NULL_HANDLE;
27392739
}
2740-
2741-
if (NULL == hArgValue) {
2742-
return UR_RESULT_ERROR_INVALID_NULL_HANDLE;
2743-
}
27442740
}
27452741

27462742
ur_result_t result = pfnSetArgMemObj(hKernel, argIndex, hArgValue);

source/loader/ur_ldrddi.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2560,7 +2560,7 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgSampler(
25602560
__urdlllocal ur_result_t UR_APICALL urKernelSetArgMemObj(
25612561
ur_kernel_handle_t hKernel, ///< [in] handle of the kernel object
25622562
uint32_t argIndex, ///< [in] argument index in range [0, num args - 1]
2563-
ur_mem_handle_t hArgValue ///< [in] handle of Memory object.
2563+
ur_mem_handle_t hArgValue ///< [in][optional] handle of Memory object.
25642564
) {
25652565
ur_result_t result = UR_RESULT_SUCCESS;
25662566

@@ -2575,7 +2575,9 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgMemObj(
25752575
hKernel = reinterpret_cast<ur_kernel_object_t *>(hKernel)->handle;
25762576

25772577
// convert loader handle to platform handle
2578-
hArgValue = reinterpret_cast<ur_mem_object_t *>(hArgValue)->handle;
2578+
hArgValue = (hArgValue)
2579+
? reinterpret_cast<ur_mem_object_t *>(hArgValue)->handle
2580+
: nullptr;
25792581

25802582
// forward to device-platform
25812583
result = pfnSetArgMemObj(hKernel, argIndex, hArgValue);

source/loader/ur_libapi.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3016,12 +3016,11 @@ ur_result_t UR_APICALL urKernelSetArgSampler(
30163016
/// - ::UR_RESULT_ERROR_DEVICE_LOST
30173017
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
30183018
/// + `NULL == hKernel`
3019-
/// + `NULL == hArgValue`
30203019
/// - ::UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX
30213020
ur_result_t UR_APICALL urKernelSetArgMemObj(
30223021
ur_kernel_handle_t hKernel, ///< [in] handle of the kernel object
30233022
uint32_t argIndex, ///< [in] argument index in range [0, num args - 1]
3024-
ur_mem_handle_t hArgValue ///< [in] handle of Memory object.
3023+
ur_mem_handle_t hArgValue ///< [in][optional] handle of Memory object.
30253024
) try {
30263025
auto pfnSetArgMemObj = ur_lib::context->urDdiTable.Kernel.pfnSetArgMemObj;
30273026
if (nullptr == pfnSetArgMemObj) {

source/ur_api.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2522,12 +2522,11 @@ ur_result_t UR_APICALL urKernelSetArgSampler(
25222522
/// - ::UR_RESULT_ERROR_DEVICE_LOST
25232523
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
25242524
/// + `NULL == hKernel`
2525-
/// + `NULL == hArgValue`
25262525
/// - ::UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX
25272526
ur_result_t UR_APICALL urKernelSetArgMemObj(
25282527
ur_kernel_handle_t hKernel, ///< [in] handle of the kernel object
25292528
uint32_t argIndex, ///< [in] argument index in range [0, num args - 1]
2530-
ur_mem_handle_t hArgValue ///< [in] handle of Memory object.
2529+
ur_mem_handle_t hArgValue ///< [in][optional] handle of Memory object.
25312530
) {
25322531
ur_result_t result = UR_RESULT_SUCCESS;
25332532
return result;

test/conformance/kernel/urKernelSetArgMemObj.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,3 @@ TEST_P(urKernelSetArgMemObjTest, InvalidKernelArgumentIndex) {
4242
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX,
4343
urKernelSetArgMemObj(kernel, num_kernel_args + 1, buffer));
4444
}
45-
46-
TEST_P(urKernelSetArgMemObjTest, InvalidNullPointer) {
47-
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_POINTER,
48-
urKernelSetArgMemObj(kernel, 0, nullptr));
49-
}

0 commit comments

Comments
 (0)