Skip to content

Commit 4474761

Browse files
authored
Add specification for cl_ext_immutable_memory_objects (KhronosGroup#1280)
Fixes KhronosGroup#1110 Change-Id: I120f66ad20f977c251b77cc42a32021cb407518e Signed-off-by: Kevin Petit <kevin.petit@arm.com>
1 parent 9b1d67d commit 4474761

4 files changed

Lines changed: 225 additions & 5 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Copyright 2024 The Khronos Group Inc.
2+
// SPDX-License-Identifier: CC-BY-4.0
3+
4+
include::{generated}/meta/{refprefix}cl_ext_immutable_memory_objects.txt[]
5+
6+
=== Other Extension Metadata
7+
8+
*Last Modified Date*::
9+
2024-11-06
10+
*IP Status*::
11+
No known IP claims.
12+
*Contributors*::
13+
- Kevin Petit, Arm Ltd.
14+
- Ahmed Hesham, Arm Ltd.
15+
- Michael Rizkalla, Arm Ltd.
16+
*Interactions*::
17+
- This extension interacts with {cl_khr_egl_image_EXT}.
18+
19+
=== Description
20+
21+
{cl_ext_immutable_memory_objects_EXT} provides a mechanism to create memory
22+
objects that cannot be modified by the implementation after creation. This,
23+
for example, enables implementation to support image formats for which no write
24+
operations can be supported.
25+
26+
=== New Enums
27+
28+
* {cl_mem_flags_TYPE}
29+
** {CL_MEM_IMMUTABLE_EXT}
30+
31+
=== Issues
32+
33+
1) Can {CL_MEM_READ_ONLY} be used instead of {CL_MEM_IMMUTABLE_EXT}?
34+
--
35+
*RESOLVED*: No. Memory objects created with {CL_MEM_READ_ONLY} can be modified
36+
by copy or fill commands and this behaviour cannot be changed without breaking
37+
backwards compatibility.
38+
--
39+
40+
=== Version History
41+
42+
* Revision 1.0.0, 2024-11-06
43+
** Initial version

api/glossary.asciidoc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,16 @@ The elements of an image are selected from a list of predefined image
336336
formats.
337337
--
338338

339+
ifdef::cl_ext_immutable_memory_objects[]
340+
Immutable Memory Object ::
341+
A _memory object_ whose contents cannot be altered by the implementation
342+
after creation.
343+
ifdef::cl_khr_external_memory[]
344+
External entities may change the contents of
345+
_immutable memory objects_ created from external handles.
346+
endif::cl_khr_external_memory[]
347+
endif::cl_ext_immutable_memory_objects[]
348+
339349
Implementation-Defined ::
340350
Behavior that is explicitly allowed to vary between conforming
341351
implementations of OpenCL.

0 commit comments

Comments
 (0)