C Specification

The cl_mutable_dispatch_arg_khr structure is passed to clUpdateMutableCommandsKHR to set the kernel configuration of a mutable clCommandNDRangeKernelKHR command, and is defined as:

// Provided by cl_khr_command_buffer_mutable_dispatch
typedef struct cl_mutable_dispatch_config_khr {
    cl_mutable_command_khr                      command;
    cl_uint                                     num_args;
    cl_uint                                     num_svm_args;
    cl_uint                                     num_exec_infos;
    cl_uint                                     work_dim;
    const cl_mutable_dispatch_arg_khr*          arg_list;
    const cl_mutable_dispatch_arg_khr*          arg_svm_list;
    const cl_mutable_dispatch_exec_info_khr*    exec_info_list;
    const size_t*                               global_work_offset;
    const size_t*                               global_work_size;
    const size_t*                               local_work_size;
} cl_mutable_dispatch_config_khr;

Members

  • command is a mutable-command object returned by clCommandNDRangeKernelKHR representing a kernel execution as part of a command-buffer.

  • num_args is the number of kernel arguments being changed.

  • num_svm_args is the number of SVM kernel arguments being changed.

  • num_exec_infos is the number of kernel execution info objects to set for this dispatch.

  • work_dim is the number of dimensions used to specify the global work-items and work-items in the work-group. May be set to zero to signify the number of dimensions is not changed. See clEnqueueNDRangeKernel for valid usage.

  • arg_list is an array describing the new kernel arguments for this enqueue. It must contain num_args array elements, each of which encapsulates parameters passed to clSetKernelArg. See clSetKernelArg for usage of cl_mutable_dispatch_arg_khr members.

  • arg_svm_list is an array describing the new SVM kernel arguments for this enqueue. It must contain num_svm_args array elements, each of which encapsulates parameters passed to clSetKernelArgSVMPointer. See clSetKernelArgSVMPointer for usage of cl_mutable_dispatch_arg_khr members, arg_size is ignored.

  • exec_info_list is an array containing num_exec_infos elements specifying the list of execution info objects use for this command-buffer enqueue. See clSetKernelExecInfo for usage of cl_mutable_dispatch_exec_info_khr members.

  • global_work_offset can be used to specify an array of work_dim unsigned values that describe the offset used to calculate the global ID of a work-item. If global_work_offset is NULL then the global offset of the dispatch is not changed. See clEnqueueNDRangeKernel for valid usage.

  • global_work_size points to an array of work_dim unsigned values that describe the number of global work-items in work_dim dimensions that will execute the kernel function. If global_work_size is NULL then the number of global work-items in the dispatch is not changed. See clEnqueueNDRangeKernel for valid usage.

  • local_work_size points to an array of work_dim unsigned values that describe the number of work-items that make up a work-group that will execute the kernel. If local_work_size is NULL then the number of local work-items in the dispatch is not changed.

Description

See {clEnqueueNDRangeKernel} for valid usage.

See Also

Document Notes

For more information, see the OpenCL Specification

This page is extracted from the OpenCL Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0