Skip to content

Commit 6d49475

Browse files
committed
Merge branch 'main' into cl_khr_unified_svm
2 parents 1587555 + 75f061b commit 6d49475

17 files changed

Lines changed: 1149 additions & 531 deletions

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
python3 makeSpec -clean -spec khr+ext OUTDIR=out.release -j 5 api c env ext cxx4opencl
4747
4848
- name: Release Specs
49-
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
49+
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
5050
with:
5151
draft: true
5252
files: |

OpenCL_C.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5634,7 +5634,7 @@ endif::cl_khr_fp16[]
56345634
The following table describes the following functions:
56355635

56365636
* A subset of functions from <<table-builtin-math,Built-in Scalar and Vector
5637-
Argument Math Functions>> that are defined with the half_ prefix .
5637+
Argument Math Functions>> that are defined with the half_ prefix.
56385638
These functions are implemented with a minimum of 10-bits of accuracy,
56395639
i.e. the maximum error value \<= 8192 ulp.
56405640
* A subset of functions from <<table-builtin-math,Built-in Scalar and Vector
@@ -6779,7 +6779,7 @@ ifdef::cl_khr_fp16[]
67796779
int *islessgreater*(half _x_, half _y_) +
67806780
short__n__ *islessgreater*(half__n__ _x_, half__n__ _y_)
67816781
endif::cl_khr_fp16[]
6782-
| Returns the component-wise compare of (_x_ < _y_) \|\| (_x_ > _y_) .
6782+
| Returns the component-wise compare of (_x_ < _y_) \|\| (_x_ > _y_).
67836783
| |
67846784
| int *isfinite*(float) +
67856785
int__n__ *isfinite*(float__n__) +
@@ -13595,7 +13595,7 @@ host enqueues the first instance of the nd-range kernel (dp_func_A).
1359513595
The kernel dp_func_A will launch a kernel (evaluate_dp_work_A) that will
1359613596
determine if new nd-range work needs to be performed.
1359713597
If new nd-range work does need to be performed, then evaluate_dp_work_A will
13598-
enqueue a new instance of dp_func_A .
13598+
enqueue a new instance of dp_func_A.
1359913599
This process is repeated until all the work is completed.
1360013600

1360113601
[source,opencl_c]

api/appendix_e.asciidoc

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -457,11 +457,11 @@ conformance process:
457457

458458
* {CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED}
459459

460-
== Summary of Changes from OpenCL 3.0
460+
== Summary of Changes to OpenCL 3.0
461461

462462
The first non-experimental version of the OpenCL 3.0 specifications was *v3.0.5*.
463463

464-
Changes from *v3.0.5*:
464+
Changes from *v3.0.5* to *v3.0.6*:
465465

466466
* Fixed the calculation in "mapping work-items onto an ND-range".
467467
* Added new extensions:
@@ -474,7 +474,7 @@ Changes from *v3.0.5*:
474474
** {cl_khr_subgroup_shuffle_relative_EXT}
475475
** {cl_khr_subgroup_clustered_reduce_EXT}
476476

477-
Changes from *v3.0.6*:
477+
Changes from *v3.0.6* to *v3.0.7*:
478478

479479
* Removed erroneous condition for {CL_INVALID_KERNEL_ARGS}.
480480
* Fixed the spelling of `-cl-no-signed-zeros`.
@@ -487,15 +487,15 @@ Changes from *v3.0.6*:
487487
** {cl_khr_spirv_linkonce_odr_EXT}
488488
** {cl_khr_suggested_local_work_size_EXT}
489489

490-
Changes from *v3.0.7*:
490+
Changes from *v3.0.7* to *v3.0.8*:
491491

492492
* Clarified optionality support for double-precision literals.
493493
* Removed unnecessary phrase from sub-group mask function descriptions.
494494
* Added _input_slice_pitch_ error condition for read and write image APIs.
495495
* Added new extension:
496496
** {cl_khr_integer_dot_product_EXT}
497497

498-
Changes from *v3.0.8*:
498+
Changes from *v3.0.8* to *v3.0.9*:
499499

500500
* Added a missing error condition for {clGetKernelSuggestedLocalWorkSizeKHR}.
501501
* Clarified requirements for {CL_DEVICE_DOUBLE_FP_CONFIG} prior to OpenCL 2.0.
@@ -504,7 +504,7 @@ Changes from *v3.0.8*:
504504
** {cl_khr_integer_dot_product_EXT} (version 2)
505505
** {cl_khr_semaphore_EXT} (experimental)
506506
** {cl_khr_external_semaphore_EXT} (experimental)
507-
** `cl_khr_external_semaphore_dx_fence` (experimental)
507+
** {cl_khr_external_semaphore_dx_fence_EXT} (experimental)
508508
** {cl_khr_external_semaphore_opaque_fd_EXT} (experimental)
509509
** {cl_khr_external_semaphore_sync_fd_EXT} (experimental)
510510
** {cl_khr_external_semaphore_win32_EXT} (experimental)
@@ -514,7 +514,7 @@ Changes from *v3.0.8*:
514514
** {cl_khr_external_memory_opaque_fd_EXT} (experimental)
515515
** {cl_khr_external_memory_win32_EXT} (experimental)
516516

517-
Changes from *v3.0.9*:
517+
Changes from *v3.0.9* to *v3.0.10*:
518518

519519
* Relaxed memory object acquire error checking requirements for OpenGL, EGL, and DirectX interop extensions.
520520
* Added a missing error condition for {clGetSemaphoreHandleForTypeKHR}.
@@ -526,7 +526,7 @@ Changes from *v3.0.9*:
526526
** {cl_khr_expect_assume_EXT}
527527
** {cl_khr_command_buffer_EXT} (experimental)
528528

529-
Changes from *v3.0.10*:
529+
Changes from *v3.0.10* to *v3.0.11*:
530530

531531
* Added a requirement for implementations supporting device-side enqueue to also support program scope global variables.
532532
* Added missing device scope atomic feature guards to several atomic function overloads.
@@ -540,7 +540,7 @@ Changes from *v3.0.10*:
540540
** {cl_khr_subgroup_rotate_EXT}
541541
** {cl_khr_work_group_uniform_arithmetic_EXT}
542542

543-
Changes from *v3.0.11*:
543+
Changes from *v3.0.11* to *v3.0.12*:
544544

545545
* Added a definition for a valid object and requirements for testing for valid objects.
546546
* Added a maximum limit for the number of arguments supported by a kernel.
@@ -551,7 +551,7 @@ Changes from *v3.0.11*:
551551
* Added new extension:
552552
** {cl_khr_command_buffer_mutable_dispatch_EXT} (experimental)
553553

554-
Changes from *v3.0.12*:
554+
Changes from *v3.0.12* to *v3.0.13*:
555555

556556
* Fixed the accuracy requirements description for half-precision math functions (those prefixed by `half_`).
557557
* Clarified that the semaphore type must always be provided when creating a semaphore.
@@ -561,7 +561,7 @@ Changes from *v3.0.12*:
561561
* Fixed a copy-paste error in the extensions quick reference appendix.
562562
* Fixed typos and improved formatting consistency in the extensions spec.
563563

564-
Changes from *v3.0.13*:
564+
Changes from *v3.0.13* to *v3.0.14*:
565565

566566
* Corrected the precision for `cross` and `dot` to be based on `HALF_EPSILON` in {cl_khr_fp16_EXT}, see {khronos-opencl-pr}/893[#893].
567567
* Added a context query for command-buffers to {cl_khr_command_buffer_EXT}, see {khronos-opencl-pr}/899[#899].
@@ -570,7 +570,7 @@ Changes from *v3.0.13*:
570570
* Added new extension:
571571
** {cl_khr_command_buffer_multi_device_EXT} (experimental)
572572

573-
Changes from *v3.0.14*:
573+
Changes from *v3.0.14* to *v3.0.15*:
574574

575575
* Clarified which error code should be returned when calling {clCreateBuffer} with a pointer to an SVM allocation that is too small, see {khronos-opencl-pr}/879[#879].
576576
* Improved capitalization and hyphenation consistency throughout the specs, see {khronos-opencl-pr}/902[#902].
@@ -599,7 +599,7 @@ Changes from *v3.0.14*:
599599
* {cl_khr_subgroup_rotate_EXT}:
600600
** Clarified that only rotating within a subgroup is supported, see {khronos-opencl-pr}/967[#967].
601601

602-
Changes from *v3.0.15*:
602+
Changes from *v3.0.15* to *v3.0.16*:
603603

604604
* Moved all KHR extension text out of the OpenCL Extension specification and into the main specifications.
605605
The OpenCL Extension specification will be removed in a subsequent revision.
@@ -623,7 +623,7 @@ Changes from *v3.0.15*:
623623
* Added new extension:
624624
** {cl_khr_kernel_clock_EXT} (experimental)
625625

626-
Changes from *v3.0.16*:
626+
Changes from *v3.0.16* to *v3.0.17*:
627627

628628
* Clarified the definition of command prerequisites, see {khronos-opencl-pr}/923[#923].
629629
* Clarified the behavior of {CL_DEVICE_TYPE_DEFAULT} and {CL_DEVICE_TYPE_ALL} for custom devices, see {khronos-opencl-pr}/1117[#1117].
@@ -660,10 +660,10 @@ Changes from *v3.0.16*:
660660
* {cl_khr_semaphore_EXT}:
661661
** Clarified external semaphore behavior, removing references to permanence, see {khronos-opencl-pr}/938[#938].
662662
* Removed experimental extensions due to lack of implementations and tests, see {khronos-opencl-pr}/1160[#1160].
663-
** `cl_khr_external_semaphore_dx_fence` (experimental)
663+
** {cl_khr_external_semaphore_dx_fence_EXT} (experimental)
664664
** `cl_khr_external_memory_dx` (experimental)
665665

666-
Changes from *v3.0.17*:
666+
Changes from *v3.0.17* to *v3.0.18*:
667667

668668
* Added version 2.0 of the {cl_khr_icd} extension for loader-managed dispatch, see {khronos-opencl-pr}/1005[#1005].
669669
* Added the {cl_ext_buffer_device_address_EXT} extension, see {khronos-opencl-pr}/1159[#1159].
@@ -688,3 +688,24 @@ Changes from *v3.0.17*:
688688
** Improved documentation for {clEnqueueReleaseExternalMemObjectsKHR}, see {khronos-opencl-pr}/1332[#1332].
689689
* {cl_khr_external_memory_dma_buf_EXT}:
690690
** Clarified usage, see {khronos-opencl-pr}/1335[#1335].
691+
692+
Changes from *v3.0.18* to *v3.0.19*:
693+
694+
* Moved description of restrictions for image kernel arguments to {clSetKernelArg}, see {khronos-opencl-pr}/1346[#1346].
695+
* Fixed document linking for several extension APIs and enums, see {khronos-opencl-pr}/1360[#1360].
696+
* Fixed a wording inconsistency for device and host timer synchronization, see {khronos-opencl-pr}/1364[#1364].
697+
* Clarified the conditions when the global work size may be null or zero, see {khronos-opencl-pr}/1381[#1381].
698+
* Switched to the term "experimental" to describe extensions that are subject to change, see {khronos-opencl-pr}/1383[#1383].
699+
* Removed specific restrictions for custom devices, see {khronos-opencl-pr}/1388[#1388].
700+
* Clarified {CL_FP_FMA} description to avoid ambiguity, see {khronos-opencl-pr}/1391[#1391].
701+
* {cl_khr_command_buffer_mutable_dispatch_EXT} (experimental):
702+
** Clarified that the mutable dispatch work dimension may be set to zero to indicate that it is unchanged, see {khronos-opencl-pr}/1395[#1395].
703+
* {cl_khr_external_semaphore_EXT}:
704+
** Clarified semaphore behavior when payloads are required, see {khronos-opencl-pr}/1362[#1362].
705+
* Re-added a previously removed experimental extension, see {khronos-opencl-pr}/1359[#1359].
706+
** {cl_khr_external_semaphore_dx_fence_EXT} (experimental)
707+
* The following extension has been finalized and is no longer experimental:
708+
** {cl_khr_kernel_clock_EXT}
709+
* Added new extensions:
710+
** {cl_khr_external_memory_android_hardware_buffer_EXT}
711+
** {cl_khr_spirv_queries_EXT}

api/cl_khr_command_buffer.asciidoc

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,14 @@
33

44
include::{generated}/meta/{refprefix}cl_khr_command_buffer.txt[]
55

6-
// *Revision*::
7-
// 0.9.6
86
// *Extension and Version Dependencies*::
97
// This extension requires OpenCL 1.2 or later.
108
// Buffering of SVM commands requires OpenCL 2.0 or later.
119

1210
=== Other Extension Metadata
1311

1412
*Last Modified Date*::
15-
2024-12-13
13+
2025-07-10
1614
*IP Status*::
1715
No known IP claims.
1816
*Contributors*::
@@ -124,14 +122,6 @@ There are no gurantees made around the values of sync-points returned from
124122
adding commands to a command-buffer. Any semantics that a could be inferred
125123
from the sync-point values returned is implementation defined.
126124

127-
==== Simultaneous Use
128-
129-
The optional simultaneous use capability was added to the extension so that
130-
vendors can support pipelined workflows, where command-buffers are repeatedly
131-
enqueued without blocking in user code. However, simultaneous use may result in
132-
command-buffers being more expensive to enqueue than in a sequential model, so
133-
the capability is optional to enable optimizations on command-buffer recording.
134-
135125
=== Interactions With Other Extensions
136126

137127
The introduction of the command-buffer abstraction enables functionality
@@ -242,11 +232,8 @@ features:
242232
* {cl_device_command_buffer_capabilities_khr_TYPE}
243233
** {CL_COMMAND_BUFFER_CAPABILITY_KERNEL_PRINTF_KHR}
244234
** {CL_COMMAND_BUFFER_CAPABILITY_DEVICE_SIDE_ENQUEUE_KHR}
245-
** {CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR}
246235
* {cl_command_buffer_properties_khr_TYPE}
247236
** {CL_COMMAND_BUFFER_FLAGS_KHR}
248-
* {cl_command_buffer_flags_khr_TYPE}
249-
** {CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR}
250237
* {cl_command_buffer_info_khr_TYPE}
251238
** {CL_COMMAND_BUFFER_QUEUES_KHR}
252239
** {CL_COMMAND_BUFFER_NUM_QUEUES_KHR}
@@ -257,7 +244,6 @@ features:
257244
* {cl_command_buffer_state_khr_TYPE}
258245
** {CL_COMMAND_BUFFER_STATE_RECORDING_KHR}
259246
** {CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR}
260-
** {CL_COMMAND_BUFFER_STATE_PENDING_KHR}
261247
* {cl_command_type_TYPE}
262248
** {CL_COMMAND_COMMAND_BUFFER_KHR}
263249
* New Error Codes
@@ -470,3 +456,6 @@ features:
470456
* 0.9.7, 2024-12-13
471457
** Refactor queue compatability between command-buffer creation and enqueue
472458
(experimental).
459+
* 0.9.8, 2025-07-10
460+
** Rework simultaneous use definition and remove pending state
461+
(experimental).

api/cl_khr_command_buffer_mutable_dispatch.asciidoc

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ include::{generated}/meta/{refprefix}cl_khr_command_buffer_mutable_dispatch.txt[
66
=== Other Extension Metadata
77

88
*Last Modified Date*::
9-
2024-09-05
9+
2025-08-08
1010
*IP Status*::
1111
No known IP claims.
1212
*Contributors*::
@@ -41,6 +41,15 @@ This allows inputs and outputs to the kernel, as well as work-item sizes and
4141
offsets, to change without having to re-record the entire command sequence
4242
in a new command-buffer.
4343

44+
==== Simultaneous Use
45+
46+
The optional <<simultaneous-use, simultaneous use>> capability was added to the
47+
extension so that vendors could support concurrent execution of the same
48+
command-buffer object which has been updated between submissions. However,
49+
simultaneous use may result in command-buffers having a larger overhead to
50+
implement, so the capability is optional to enable optimizations when this
51+
usage isn't required by a user.
52+
4453
=== Interactions With Other Extensions
4554

4655
The {clUpdateMutableCommandsKHR} entry-point has been designed for the purpose
@@ -72,6 +81,8 @@ void pointer using {cl_command_buffer_update_type_khr_TYPE}.
7281

7382
* {cl_device_info_TYPE}
7483
** {CL_DEVICE_MUTABLE_DISPATCH_CAPABILITIES_KHR}
84+
* {cl_device_command_buffer_capabilities_khr_TYPE}
85+
** {CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR}
7586
* {cl_command_properties_khr_TYPE}
7687
** {CL_MUTABLE_DISPATCH_ASSERTS_KHR}
7788
** {CL_MUTABLE_DISPATCH_UPDATABLE_FIELDS_KHR}
@@ -95,6 +106,7 @@ void pointer using {cl_command_buffer_update_type_khr_TYPE}.
95106
** {CL_MUTABLE_COMMAND_COMMAND_TYPE_KHR}
96107
* {cl_command_buffer_flags_khr_TYPE}
97108
** {CL_COMMAND_BUFFER_MUTABLE_KHR}
109+
** {CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR}
98110
* {cl_command_buffer_properties_khr_TYPE}
99111
** {CL_COMMAND_BUFFER_MUTABLE_DISPATCH_ASSERTS_KHR}
100112
* {cl_command_buffer_update_type_khr_TYPE}
@@ -363,3 +375,7 @@ may be a introduced as a stand alone extension.
363375
* Revision 0.9.3, 2024-09-05
364376
** Rename `CL_MUTABLE_DISPATCH_PROPERTIES_ARRAY_KHR` to
365377
`CL_MUTABLE_COMMAND_PROPERTIES_ARRAY_KHR` (experimental).
378+
* Revision 0.9.4, 2025-08-08
379+
** Move `CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR` and
380+
`CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR` in this
381+
extension from the base extension (experimental).

0 commit comments

Comments
 (0)