Add cl_arm_job_slot_selection extension (#67)
Signed-off-by: Kevin Petit <kevin.petit@arm.com>
diff --git a/extensions/arm/cl_arm_job_slot_selection.txt b/extensions/arm/cl_arm_job_slot_selection.txt
new file mode 100644
index 0000000..93f109d
--- /dev/null
+++ b/extensions/arm/cl_arm_job_slot_selection.txt
@@ -0,0 +1,72 @@
+Name
+
+ ARM_job_slot_selection
+
+Name Strings
+
+ cl_arm_job_slot_selection
+
+Contributors
+
+ Kevin Petit, Arm Ltd. (kevin.petit 'at' arm.com)
+
+Contacts
+
+ Kevin Petit, Arm Ltd. (kevin.petit 'at' arm.com)
+
+Status
+
+ Complete.
+
+Version
+
+ Revision: #1, May 20th, 2019
+
+Number
+
+ OpenCL Extension #58
+
+Dependencies
+
+ Requires OpenCL version 2.0 or later or cl_khr_create_command_queue.
+
+Overview
+
+ On devices that support work submission via job slots, this extension
+ provides a way of selecting the job slot that is used to submit work to the
+ device as well as a device info query to obtain a list of usable job slots.
+
+New Procedures and Functions
+
+ Device Info query
+
+ CL_DEVICE_JOB_SLOTS_ARM (return type cl_uint) returns a bitfield
+ listing the job slots that can be used to submit work to the device.
+ If bit i is set, then job slot i can be used to submit work.
+
+ Command queue property
+
+ CL_QUEUE_JOB_SLOT_ARM can be used when creating a command queue to
+ specify the job slot used to target the device.
+
+ Example
+
+ cl_uint available_job_slots;
+ cl_int err;
+ err = clGetDeviceInfo(device, CL_DEVICE_JOB_SLOTS_ARM,
+ sizeof(cl_uint), &available_job_slots, NULL);
+
+ // Application-specific logic to select the job slot
+ cl_uint job_slot = ...
+
+ const cl_queue_properties properties[] = {
+ CL_QUEUE_JOB_SLOT_ARM, job_slot,
+ };
+
+ cl_command_queue queue;
+ queue = clCreateCommandQueueWithProperties(context, device, properties,
+ &err);
+
+Revision History
+
+ Revision: #1, May 20th, 2019 - Initial revision
diff --git a/extensions/clext.php b/extensions/clext.php
index 92b8008..5846c5d 100644
--- a/extensions/clext.php
+++ b/extensions/clext.php
@@ -113,4 +113,6 @@
</li>
<li value=57><a href="extensions/intel/cl_intel_spirv_device_side_avc_motion_estimation.html">cl_intel_spirv_device_side_avc_motion_estimation</a>
</li>
+<li value=58><a href="extensions/arm/cl_arm_job_slot_selection.txt">cl_arm_job_slot_selection</a>
+</li>
</ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index 7489dab..38fc9ac 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -51,6 +51,11 @@
'flags' : { 'public' },
'url' : 'extensions/arm/cl_arm_import_memory.txt',
},
+ 'cl_arm_job_slot_selection' : {
+ 'number' : 58,
+ 'flags' : { 'public' },
+ 'url' : 'extensions/arm/cl_arm_job_slot_selection.txt',
+ },
'cl_arm_non_uniform_work_group_size' : {
'number' : 39,
'flags' : { 'public' },