Open steffenlarsen opened 1 year ago
I wasn't around when the new multi_ptr
was added, so I'm not sure of the original intent. However, we generally do not add new APIs that support deprecated features. Therefore, I think it makes sense that the new multi_ptr
should not support the deprecated address_space::constant_space
.
2020 doesn't have a constant address space in its memory model. The underlying reason is its incompatibility in SPIR-V with generic (you can't cast from constant to/from generic) making it difficult to support in generic by default.
There is other options on the table possible for the next version though.
Legacy
refers to the 1.2.1 interface as the 2020 has breaking changes.
The specification does not explicitly state that
access::address_space::constant_space
is unsupported by non-legacymulti_ptr
, but it does specify that:Additionally it disallows
access::address_space::constant_space
in the RHS of the assignment operator overloads of non-legacymulti_ptr
andconstant_ptr
is defined as a legacymulti_ptr
. Is the intention that non-legacymulti_ptr
shouldn't supportaccess::address_space::constant_space
?