OpenCL portability is a significant part of this work. In particular, image support is not guaranteed across all OpenCL devices, so relying on image2d_t can make the implementation fail on otherwise valid devices.
The implementation should provide a portable buffer-based fallback and use OpenCL images only when the device explicitly supports the required image features and formats.
This is a huge task and will likely require changes across the OpenCL memory abstraction and a significant number of kernels, so it should be treated as a substantial refactoring rather than a small compatibility fix.
OpenCL portability is a significant part of this work. In particular, image support is not guaranteed across all OpenCL devices, so relying on image2d_t can make the implementation fail on otherwise valid devices.
The implementation should provide a portable buffer-based fallback and use OpenCL images only when the device explicitly supports the required image features and formats.
This is a huge task and will likely require changes across the OpenCL memory abstraction and a significant number of kernels, so it should be treated as a substantial refactoring rather than a small compatibility fix.