diff --git a/unified-runtime/include/unified-runtime/ur_api.h b/unified-runtime/include/unified-runtime/ur_api.h index 3c91af5f70884..ede7e11c41a80 100644 --- a/unified-runtime/include/unified-runtime/ur_api.h +++ b/unified-runtime/include/unified-runtime/ur_api.h @@ -8735,11 +8735,12 @@ typedef struct ur_exp_kernel_arg_properties_t { /// - ::UR_RESULT_ERROR_IN_EVENT_LIST_EXEC_STATUS /// + An event in `phEventWaitList` has ::UR_EVENT_STATUS_ERROR. /// - ::UR_RESULT_ERROR_INVALID_WORK_DIMENSION -/// + `pGlobalWorkSize[0] == 0 || pGlobalWorkSize[1] == 0 || -/// pGlobalWorkSize[2] == 0` +/// + `pGlobalWorkSize[0] == 0 || (workDim >= 2 && pGlobalWorkSize[1] == +/// 0) || (workDim >= 3 && pGlobalWorkSize[2] == 0)` /// - ::UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE -/// + `pLocalWorkSize && (pLocalWorkSize[0] == 0 || pLocalWorkSize[1] == -/// 0 || pLocalWorkSize[2] == 0)` +/// + `pLocalWorkSize && (pLocalWorkSize[0] == 0 || (workDim >= 2 && +/// pLocalWorkSize[1] == 0) || (workDim >= 3 && pLocalWorkSize[2] == +/// 0))` /// - ::UR_RESULT_ERROR_INVALID_VALUE /// - ::UR_RESULT_ERROR_INVALID_KERNEL_ARGS - "The kernel argument values /// have not been specified." diff --git a/unified-runtime/scripts/core/exp-enqueue-kernel-launch-with-args.yml b/unified-runtime/scripts/core/exp-enqueue-kernel-launch-with-args.yml index a6bd36d53f375..f75b3bdcc584f 100644 --- a/unified-runtime/scripts/core/exp-enqueue-kernel-launch-with-args.yml +++ b/unified-runtime/scripts/core/exp-enqueue-kernel-launch-with-args.yml @@ -152,9 +152,9 @@ returns: - $X_RESULT_ERROR_IN_EVENT_LIST_EXEC_STATUS: - "An event in `phEventWaitList` has $X_EVENT_STATUS_ERROR." - $X_RESULT_ERROR_INVALID_WORK_DIMENSION: - - "`pGlobalWorkSize[0] == 0 || pGlobalWorkSize[1] == 0 || pGlobalWorkSize[2] == 0`" + - "`pGlobalWorkSize[0] == 0 || (workDim >= 2 && pGlobalWorkSize[1] == 0) || (workDim >= 3 && pGlobalWorkSize[2] == 0)`" - $X_RESULT_ERROR_INVALID_WORK_GROUP_SIZE: - - "`pLocalWorkSize && (pLocalWorkSize[0] == 0 || pLocalWorkSize[1] == 0 || pLocalWorkSize[2] == 0)`" + - "`pLocalWorkSize && (pLocalWorkSize[0] == 0 || (workDim >= 2 && pLocalWorkSize[1] == 0) || (workDim >= 3 && pLocalWorkSize[2] == 0))`" - $X_RESULT_ERROR_INVALID_VALUE - $X_RESULT_ERROR_INVALID_KERNEL_ARGS - "The kernel argument values have not been specified." diff --git a/unified-runtime/source/loader/layers/validation/ur_valddi.cpp b/unified-runtime/source/loader/layers/validation/ur_valddi.cpp index b2aba0fd677b9..7283fd3db0cff 100644 --- a/unified-runtime/source/loader/layers/validation/ur_valddi.cpp +++ b/unified-runtime/source/loader/layers/validation/ur_valddi.cpp @@ -6196,12 +6196,13 @@ __urdlllocal ur_result_t UR_APICALL urEnqueueKernelLaunchWithArgsExp( if (phEventWaitList != NULL && numEventsInWaitList == 0) return UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST; - if (pGlobalWorkSize[0] == 0 || pGlobalWorkSize[1] == 0 || - pGlobalWorkSize[2] == 0) + if (pGlobalWorkSize[0] == 0 || (workDim >= 2 && pGlobalWorkSize[1] == 0) || + (workDim >= 3 && pGlobalWorkSize[2] == 0)) return UR_RESULT_ERROR_INVALID_WORK_DIMENSION; - if (pLocalWorkSize && (pLocalWorkSize[0] == 0 || pLocalWorkSize[1] == 0 || - pLocalWorkSize[2] == 0)) + if (pLocalWorkSize && + (pLocalWorkSize[0] == 0 || (workDim >= 2 && pLocalWorkSize[1] == 0) || + (workDim >= 3 && pLocalWorkSize[2] == 0))) return UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE; if (phEventWaitList != NULL && numEventsInWaitList > 0) { diff --git a/unified-runtime/source/loader/ur_libapi.cpp b/unified-runtime/source/loader/ur_libapi.cpp index b60aee9dda424..ef437b1bc3dc5 100644 --- a/unified-runtime/source/loader/ur_libapi.cpp +++ b/unified-runtime/source/loader/ur_libapi.cpp @@ -6166,11 +6166,12 @@ ur_result_t UR_APICALL urEnqueueWriteHostPipe( /// - ::UR_RESULT_ERROR_IN_EVENT_LIST_EXEC_STATUS /// + An event in `phEventWaitList` has ::UR_EVENT_STATUS_ERROR. /// - ::UR_RESULT_ERROR_INVALID_WORK_DIMENSION -/// + `pGlobalWorkSize[0] == 0 || pGlobalWorkSize[1] == 0 || -/// pGlobalWorkSize[2] == 0` +/// + `pGlobalWorkSize[0] == 0 || (workDim >= 2 && pGlobalWorkSize[1] == +/// 0) || (workDim >= 3 && pGlobalWorkSize[2] == 0)` /// - ::UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE -/// + `pLocalWorkSize && (pLocalWorkSize[0] == 0 || pLocalWorkSize[1] == -/// 0 || pLocalWorkSize[2] == 0)` +/// + `pLocalWorkSize && (pLocalWorkSize[0] == 0 || (workDim >= 2 && +/// pLocalWorkSize[1] == 0) || (workDim >= 3 && pLocalWorkSize[2] == +/// 0))` /// - ::UR_RESULT_ERROR_INVALID_VALUE /// - ::UR_RESULT_ERROR_INVALID_KERNEL_ARGS - "The kernel argument values /// have not been specified." diff --git a/unified-runtime/source/ur_api.cpp b/unified-runtime/source/ur_api.cpp index e35b55bc3cdb9..2e55fe4e03076 100644 --- a/unified-runtime/source/ur_api.cpp +++ b/unified-runtime/source/ur_api.cpp @@ -5441,11 +5441,12 @@ ur_result_t UR_APICALL urEnqueueWriteHostPipe( /// - ::UR_RESULT_ERROR_IN_EVENT_LIST_EXEC_STATUS /// + An event in `phEventWaitList` has ::UR_EVENT_STATUS_ERROR. /// - ::UR_RESULT_ERROR_INVALID_WORK_DIMENSION -/// + `pGlobalWorkSize[0] == 0 || pGlobalWorkSize[1] == 0 || -/// pGlobalWorkSize[2] == 0` +/// + `pGlobalWorkSize[0] == 0 || (workDim >= 2 && pGlobalWorkSize[1] == +/// 0) || (workDim >= 3 && pGlobalWorkSize[2] == 0)` /// - ::UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE -/// + `pLocalWorkSize && (pLocalWorkSize[0] == 0 || pLocalWorkSize[1] == -/// 0 || pLocalWorkSize[2] == 0)` +/// + `pLocalWorkSize && (pLocalWorkSize[0] == 0 || (workDim >= 2 && +/// pLocalWorkSize[1] == 0) || (workDim >= 3 && pLocalWorkSize[2] == +/// 0))` /// - ::UR_RESULT_ERROR_INVALID_VALUE /// - ::UR_RESULT_ERROR_INVALID_KERNEL_ARGS - "The kernel argument values /// have not been specified."