@@ -276,9 +276,9 @@ struct image_mem_handle {
276
276
class image_mem {
277
277
public:
278
278
image_mem();
279
- image_mem(const image_mem &) = delete;
280
-
279
+ image_mem(const image_mem &rhs);
281
280
image_mem(image_mem &&rhs) noexcept;
281
+
282
282
image_mem(const image_descriptor &imageDesc,
283
283
const sycl::device &syclDevice,
284
284
const sycl::context &syclContext);
@@ -287,8 +287,11 @@ public:
287
287
288
288
~image_mem();
289
289
290
- image_mem &operator=(image_mem &&);
291
- image_mem &operator=(image_mem &) = delete;
290
+ image_mem &operator=(image_mem &rhs);
291
+ image_mem &operator=(image_mem &&rhs) noexcept;
292
+
293
+ bool operator==(const image_mem &rhs) const;
294
+ bool operator!=(const image_mem &rhs) const;
292
295
293
296
image_mem_handle get_handle() const;
294
297
image_descriptor get_descriptor() const;
@@ -354,13 +357,10 @@ Note that the handle type `image_mem_handle::raw_handle_type` is an opaque type,
354
357
and the handle cannot be dereferenced on the host. The layout of the memory is
355
358
backend-specific, and may be an optimized layout, e.g. tile swizzle patterns.
356
359
357
- `image_mem` shall not be copy-constructible, copy-assignable, or
358
- device-copyable.
359
- `image_mem` shall be default-constructible, move-constructible, as well as
360
- provide a move-assignment operator.
360
+ The `image_mem` class must follow Common Reference Semantics as outlined by the
361
+ core SYCL 2020 specification.
361
362
362
- `image_mem_handle` shall be default-constructible and copy-constructible.
363
- `image_mem_handle` shall not be device-copyable.
363
+ The `image_mem` class is not a valid kernel argument.
364
364
365
365
If the construction of the `image_mem` class fails, a
366
366
`sycl::exception` with error code `sycl::errc::memory_allocation` will be
@@ -1964,7 +1964,10 @@ These features still need to be handled:
1964
1964
specified that the implementation should relay the reason
1965
1965
for the failure back to the user.
1966
1966
1967
- - Added a `bindless_image_sampler` struct
1967
+ - Added a `bindless_image_sampler` struct.
1968
+
1969
+ - Specified that `image_mem` must follow Common Reference
1970
+ Semantics.
1968
1971
1969
- - Updated code samples
1972
+ - Updated code samples.
1970
1973
|======================
0 commit comments