Skip to content

Commit 62afd10

Browse files
authored
add a specification change log (#718)
* added change log for v3.0.6 * added change log for v3.0.7 * added change log for other OpenCL versions * move build option change to the API spec
1 parent 309e99f commit 62afd10

5 files changed

Lines changed: 159 additions & 2 deletions

File tree

OpenCL_C.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12968,6 +12968,10 @@ one of the integers 0, 1, ... h~t~ - 1.
1296812968
References are to sections of this specific version, referred to as the
1296912969
"`Embedded C Specification`", although other versions exist.
1297012970

12971+
:numbered!:
12972+
12973+
include::c/appendix_a.asciidoc[]
12974+
1297112975
// This is generatig asciidoctor errors:
1297212976
// OpenCL_C.txt: Failed to load AsciiDoc document - undefined method `+' for nil:NilClass
1297312977
// Disabling acknowledgements for now. We have them in the API spec already.

OpenCL_Env.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,8 @@ include::env/numerical_compliance.asciidoc[]
4343
include::env/image_addressing_and_filtering.asciidoc[]
4444

4545
include::env/references.asciidoc[]
46+
47+
:numbered!:
48+
:leveloffset: 1
49+
50+
include::env/appendix_a.asciidoc[]

api/appendix_e.asciidoc

Lines changed: 71 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
[[changes_to_opencl]]
77
= Changes to OpenCL
88

9-
Changes to the OpenCL API and OpenCL C between successive versions are
10-
summarized below.
9+
Changes to the OpenCL API and OpenCL C specifications between successive
10+
versions are summarized below.
1111

1212
// (Jon) Are these section and table numbers for the current spec, in which
1313
// case they should turn into asciidoctor xrefs, or to older specs?
@@ -457,3 +457,72 @@ test suite that the device has fully passed in accordance with the official
457457
conformance process:
458458

459459
* {CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED}
460+
461+
== Summary of changes from OpenCL 3.0
462+
463+
The first non-provisional version of the OpenCL 3.0 specifications was *v3.0.5*.
464+
465+
Changes from *v3.0.5*:
466+
467+
* Fixed the calculation in "mapping work-items onto an NDRange".
468+
* Added new extensions:
469+
** `cl_khr_extended_versioning`
470+
** `cl_khr_subgroup_extended_types`
471+
** `cl_khr_subgroup_non_uniform_vote`
472+
** `cl_khr_subgroup_ballot`
473+
** `cl_khr_subgroup_non_uniform_arithmetic`
474+
** `cl_khr_subgroup_shuffle`
475+
** `cl_khr_subgroup_shuffle_relative`
476+
** `cl_khr_subgroup_clustered_reduce`
477+
478+
Changes from *v3.0.6*:
479+
480+
* Removed erroneous condition for {CL_INVALID_KERNEL_ARGS}.
481+
* Fixed the spelling of `-cl-no-signed-zeros`.
482+
* Clarified the table structure in the backwards compatibility appendix.
483+
* Clarified that `-cl-unsafe-math-optimizations` also implies `-cl-denorms-are-zero`.
484+
* Added new extensions:
485+
** `cl_khr_extended_bit_ops`
486+
** `cl_khr_pci_bus_info`
487+
** `cl_khr_spirv_extended_debug_info`
488+
** `cl_khr_spirv_linkonce_odr`
489+
** `cl_khr_suggested_local_work_size`
490+
491+
Changes from *v3.0.7*:
492+
493+
* Clarified optionality support for double-precision literals.
494+
* Removed unnecessary phrase from subgroup mask function descriptions.
495+
* Added _input_slice_pitch_ error condition for read and write image APIs.
496+
* Added new extension:
497+
** `cl_khr_integer_dot_product`
498+
499+
Changes from *v3.0.8*:
500+
501+
* Added a missing error condition for {clGetKernelSuggestedLocalWorkSizeKHR}.
502+
* Clarified requirements for {CL_DEVICE_DOUBLE_FP_CONFIG} prior to OpenCL 2.0.
503+
* Clarified the behavior of ballot operations for remainder subgroups.
504+
* Added new extensions:
505+
** `cl_khr_integer_dot_product` (version 2)
506+
** `cl_khr_semaphore` (provisional)
507+
** `cl_khr_external_semaphore` (provisional)
508+
** `cl_khr_external_semaphore_dx_fence` (provisional)
509+
** `cl_khr_external_semaphore_opaque_fd` (provisional)
510+
** `cl_khr_external_semaphore_sync_fd` (provisional)
511+
** `cl_khr_external_semaphore_win32` (provisional)
512+
** `cl_khr_external_memory` (provisional)
513+
** `cl_khr_external_memory_dma_buf` (provisional)
514+
** `cl_khr_external_memory_dx` (provisional)
515+
** `cl_khr_external_memory_opaque_fd` (provisional)
516+
** `cl_khr_external_memory_win32` (provisional)
517+
518+
Changes from *v3.0.9*:
519+
520+
* Relaxed memory object acquire error checking requirements for OpenGL, EGL, and DirectX interop extensions.
521+
* Added a missing error condition for {clGetSemaphoreHandleForTypeKHR}.
522+
* Clarified that {clCompileProgram} is valid for programs created from SPIR.
523+
* Documented the possible state of a kernel object after a failed call to {clSetKernelArg}.
524+
* Added new extensions:
525+
** `cl_khr_async_copy_fence` (final)
526+
** `cl_khr_extended_async_copies` (final)
527+
** `cl_khr_expect_assume`
528+
** `cl_khr_command_buffer` (provisional)

c/appendix_a.asciidoc

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Copyright 2017-2021 The Khronos Group. This work is licensed under a
2+
// Creative Commons Attribution 4.0 International License; see
3+
// http://creativecommons.org/licenses/by/4.0/
4+
5+
[appendix]
6+
[[changes_to_opencl]]
7+
= Changes to OpenCL
8+
9+
Changes to the OpenCL C specifications between successive versions are
10+
summarized below.
11+
12+
== Summary of changes from OpenCL 3.0
13+
14+
The first non-provisional version of the OpenCL 3.0 specifications was *v3.0.5*.
15+
16+
Changes from *v3.0.5*:
17+
18+
* Clarified that `memory_scope_all_devices` is supported only for OpenCL C 3.0 or newer.
19+
* Defined ULP overflow leniency.
20+
* Removed a confusing phrase about kernel argument pointer types.
21+
* Clarified usage of feature test macros pre-OpenCL C 3.0.
22+
* Clarified relationship between optional core features and extensions.
23+
* Deprecated the `+__OPENCL_C_VERSION__+` predefined macro and clarified possible values of the macro for different versions of OpenCL.
24+
25+
Changes from *v3.0.6*:
26+
27+
* Clarified the argument to *vec_step* is not evaluated.
28+
* Improved description for pipe specifier.
29+
* Fixed parameter name in *work_group_broadcast* description.
30+
* Clarified that the size of a pipe is implementation-defined.
31+
* Moved descriptions of the identify value for exclusive scans.
32+
* Fixed several bugs and formatting in the fast math ULP tables.
33+
* Clarified the behavior of *work_group_broadcast*.
34+
* Clarified the minimum OpenCL C version for the `opencl_unroll_hint` attribute.
35+
36+
Changes from *v3.0.7*:
37+
38+
* Clarified optionality support for double-precision literals.

env/appendix_a.asciidoc

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Copyright 2017-2021 The Khronos Group. This work is licensed under a
2+
// Creative Commons Attribution 4.0 International License; see
3+
// http://creativecommons.org/licenses/by/4.0/
4+
5+
[appendix]
6+
[[changes_to_opencl]]
7+
= Changes to OpenCL
8+
9+
Changes to the OpenCL SPIR-V Environment specifications between successive
10+
versions are summarized below.
11+
12+
== Summary of changes from OpenCL 3.0
13+
14+
The first non-provisional version of the OpenCL 3.0 specifications was *v3.0.5*.
15+
16+
Changes from *v3.0.5*:
17+
18+
* Clarified subgroup barrier behavior in non-uniform control flow.
19+
* Added required alignment of types.
20+
* Added new extensions:
21+
** `cl_khr_subgroup_extended_types`
22+
** `cl_khr_subgroup_non_uniform_vote`
23+
** `cl_khr_subgroup_ballot`
24+
** `cl_khr_subgroup_non_uniform_arithmetic`
25+
** `cl_khr_subgroup_shuffle`
26+
** `cl_khr_subgroup_shuffle_relative`
27+
** `cl_khr_subgroup_clustered_reduce`
28+
29+
Changes from *v3.0.6*:
30+
31+
* Explicitly say that *OpTypeSampledImage* may be used in an OpenCL environment.
32+
* Added the required type for SPIR-V built-in variables.
33+
* Fixed several bugs and formatting in the fast math ULP tables.
34+
* Added new extensions:
35+
** `cl_khr_extended_bit_ops`
36+
** `cl_khr_spirv_extended_debug_info`
37+
** `cl_khr_spirv_linkonce_odr`
38+
39+
Changes from *v3.0.8*:
40+
41+
* Clarified that some OpenCL `khr` extensions also require SPIR-V extensions.

0 commit comments

Comments
 (0)