diff --git a/OpenCL_C.txt b/OpenCL_C.txt index bfd658f92..613fe86b1 100644 --- a/OpenCL_C.txt +++ b/OpenCL_C.txt @@ -246,6 +246,12 @@ clock shared by all work-items executing in the same work-group. clock shared by all work-items executing in the same sub-group. endif::cl_khr_kernel_clock[] +ifdef::cl_ext_image_unorm_int_2_101010[] +| {opencl_c_ext_image_unorm_int_2_101010} +| The OpenCL C compiler supports returning `CLK_UNORM_INT_2_101010_EXT` from +`get_image_channel_data_type`. +endif::cl_ext_image_unorm_int_2_101010[] + |==== In OpenCL C 3.0 or newer, feature macros must expand to the value `1` if the @@ -12483,6 +12489,14 @@ endif::cl_khr_gl_msaa_sharing[] `CLK_UNORM_INT_101010_2` footnote:[{fn-CLK_UNORM_INT_101010_2}] +ifdef::cl_ext_image_unorm_int_2_101010[] + Additionally, if the {opencl_c_ext_image_unorm_int_2_101010} feature macro is + supported: + + `CLK_UNORM_INT_2_101010_EXT` + +endif::cl_ext_image_unorm_int_2_101010[] + | int *get_image_channel_order*(_aQual_ image2d_t _image_) + int *get_image_channel_order*(_aQual_ image3d_t _image_) diff --git a/api/cl_ext_image_unorm_int_2_101010.asciidoc b/api/cl_ext_image_unorm_int_2_101010.asciidoc new file mode 100644 index 000000000..1320526df --- /dev/null +++ b/api/cl_ext_image_unorm_int_2_101010.asciidoc @@ -0,0 +1,39 @@ +// Copyright 2020-2024 The Khronos Group Inc. +// SPDX-License-Identifier: CC-BY-4.0 + +include::{generated}/meta/{refprefix}cl_ext_image_unorm_int_2_101010.txt[] + +=== Other Extension Metadata + +*Last Modified Date*:: + 2024-05-10 +*IP Status*:: + No known IP claims. +*Contributors*:: + - Kévin Petit, Arm Ltd. + +=== Description + +{cl_ext_image_unorm_int_2_101010_EXT} adds support for the {CL_UNORM_INT_2_101010_EXT} +image format. + +OpenCL C compilers supporting this extension will define the +{opencl_c_ext_image_unorm_int_2_101010} feature macro. + +=== New feature macro + + * {opencl_c_ext_image_unorm_int_2_101010} + +=== New Enums + + * {cl_channel_type_TYPE} + ** {CL_UNORM_INT_2_101010_EXT} + +=== New OpenCL C channel data type + + * `CLK_UNORM_INT_2_101010_EXT` + +=== Version History + + * Revision 1.0.0, 2024-05-10 + ** Initial version diff --git a/api/opencl_runtime_layer.asciidoc b/api/opencl_runtime_layer.asciidoc index 263ca1854..cef5e7085 100644 --- a/api/opencl_runtime_layer.asciidoc +++ b/api/opencl_runtime_layer.asciidoc @@ -2474,6 +2474,15 @@ include::{generated}/api/version-notes/CL_UNORM_INT_101010_2.asciidoc[] include::{generated}/api/version-notes/CL_SIGNED_INT8.asciidoc[] | Each channel component is an unnormalized signed 8-bit integer value + +ifdef::cl_ext_image_unorm_int_2_101010[] +| {CL_UNORM_INT_2_101010_EXT_anchor} + +include::{generated}/api/version-notes/CL_UNORM_INT_2_101010_EXT.asciidoc[] + | Represents a normalized 2-10-10-10 four-channel ABGR image. + The channel order must be {CL_ABGR}. +endif::cl_ext_image_unorm_int_2_101010[] + | {CL_SIGNED_INT16_anchor} include::{generated}/api/version-notes/CL_SIGNED_INT16.asciidoc[] @@ -2565,6 +2574,10 @@ For {CL_UNORM_INT_101010}, bits 31:30 are undefined, R is in bits 29:20, G in bits 19:10 and B in bits 9:0. For {CL_UNORM_INT_101010_2}, R is in bits 31:22, G in bits 21:12, B in bits 11:2 and A in bits 1:0. +ifdef::cl_ext_image_unorm_int_2_101010[] +For {CL_UNORM_INT_2_101010_EXT}, A is in bits 31:30, B in bits 29:20, G in bits +19:10 and R in bits 9:0. +endif::cl_ext_image_unorm_int_2_101010[] OpenCL implementations must maintain the minimum precision specified by the number of bits in `image_channel_data_type`. diff --git a/c/features.txt b/c/features.txt index b7e636dda..35a649c8c 100644 --- a/c/features.txt +++ b/c/features.txt @@ -18,3 +18,4 @@ __opencl_c_integer_dot_product_input_4x8bit_packed __opencl_c_kernel_clock_scope_device __opencl_c_kernel_clock_scope_work_group __opencl_c_kernel_clock_scope_sub_group +__opencl_c_ext_image_unorm_int_2_101010 diff --git a/env/common_properties.asciidoc b/env/common_properties.asciidoc index 8019b751d..2b732c78c 100644 --- a/env/common_properties.asciidoc +++ b/env/common_properties.asciidoc @@ -384,6 +384,11 @@ channel data types. | *UnormInt101010_2* | {CL_UNORM_INT_101010_2} +ifdef::cl_ext_image_unorm_int_2_101010[] +| 21 +| *UnormInt2_101010EXT* +| {CL_UNORM_INT_2_101010_EXT} +endif::cl_ext_image_unorm_int_2_101010[] |==== [NOTE] diff --git a/env/image_addressing_and_filtering.asciidoc b/env/image_addressing_and_filtering.asciidoc index bd9be74de..c6f4f1fd9 100644 --- a/env/image_addressing_and_filtering.asciidoc +++ b/env/image_addressing_and_filtering.asciidoc @@ -1030,6 +1030,12 @@ to the data vector component type or scalar type: `UnormInt24`, + `HalfFloat`, + `Float` + + +ifdef::cl_ext_image_unorm_int_2_101010[] +Additionally if the {cl_ext_image_unorm_int_2_101010_EXT} extension is +supported: `UnormInt2_101010EXT` +endif::cl_ext_image_unorm_int_2_101010[] + |*OpTypeFloat*, with _Width_ equal to 16 or 32. |`SignedInt8`, diff --git a/xml/cl.xml b/xml/cl.xml index e07843004..12ff3d09a 100644 --- a/xml/cl.xml +++ b/xml/cl.xml @@ -1608,7 +1608,8 @@ server's OpenCL/api-docs repository. - + + @@ -7475,5 +7476,10 @@ server's OpenCL/api-docs repository. + + + + +