@@ -1856,6 +1856,18 @@ class accessor<DataT, Dimensions, AccessMode, access::target::local,
1856
1856
}
1857
1857
#endif
1858
1858
1859
+ template <int Dims = Dimensions, typename = detail::enable_if_t <Dims == 0 >>
1860
+ accessor (handler &, const property_list &propList)
1861
+ #ifdef __SYCL_DEVICE_ONLY__
1862
+ : impl(range<AdjustedDim>{1 }) {
1863
+ (void )propList;
1864
+ }
1865
+ #else
1866
+ : LocalAccessorBaseHost(range<3 >{1 , 1 , 1 }, AdjustedDim, sizeof (DataT)) {
1867
+ (void )propList;
1868
+ }
1869
+ #endif
1870
+
1859
1871
template <int Dims = Dimensions, typename = detail::enable_if_t <(Dims > 0 )>>
1860
1872
accessor (range<Dimensions> AllocationSize, handler &)
1861
1873
#ifdef __SYCL_DEVICE_ONLY__
@@ -1867,6 +1879,20 @@ class accessor<DataT, Dimensions, AccessMode, access::target::local,
1867
1879
}
1868
1880
#endif
1869
1881
1882
+ template <int Dims = Dimensions, typename = detail::enable_if_t <(Dims > 0 )>>
1883
+ accessor (range<Dimensions> AllocationSize, handler &,
1884
+ const property_list &propList)
1885
+ #ifdef __SYCL_DEVICE_ONLY__
1886
+ : impl(AllocationSize) {
1887
+ (void )propList;
1888
+ }
1889
+ #else
1890
+ : LocalAccessorBaseHost(detail::convertToArrayOfN<3 , 1 >(AllocationSize),
1891
+ AdjustedDim, sizeof (DataT)) {
1892
+ (void )propList;
1893
+ }
1894
+ #endif
1895
+
1870
1896
size_t get_size () const { return getSize ().size () * sizeof (DataT); }
1871
1897
1872
1898
size_t get_count () const { return getSize ().size (); }
@@ -1954,6 +1980,20 @@ class accessor<DataT, Dimensions, AccessMode, access::target::image,
1954
1980
#ifndef __SYCL_DEVICE_ONLY__
1955
1981
detail::associateWithHandler (CommandGroupHandler, this ,
1956
1982
access::target::image);
1983
+ #endif
1984
+ }
1985
+
1986
+ template <typename AllocatorT>
1987
+ accessor (cl::sycl::image<Dimensions, AllocatorT> &Image,
1988
+ handler &CommandGroupHandler, const property_list &propList)
1989
+ : detail::image_accessor<DataT, Dimensions, AccessMode,
1990
+ access::target::image, IsPlaceholder>(
1991
+ Image, CommandGroupHandler,
1992
+ (detail::getSyclObjImpl(Image))->getElementSize()) {
1993
+ (void )propList;
1994
+ #ifndef __SYCL_DEVICE_ONLY__
1995
+ detail::associateWithHandler (CommandGroupHandler, this ,
1996
+ access::target::image);
1957
1997
#endif
1958
1998
}
1959
1999
#ifdef __SYCL_DEVICE_ONLY__
@@ -1994,6 +2034,15 @@ class accessor<DataT, Dimensions, AccessMode, access::target::host_image,
1994
2034
: detail::image_accessor<DataT, Dimensions, AccessMode,
1995
2035
access::target::host_image, IsPlaceholder>(
1996
2036
Image, (detail::getSyclObjImpl(Image))->getElementSize ()) {}
2037
+
2038
+ template <typename AllocatorT>
2039
+ accessor (cl::sycl::image<Dimensions, AllocatorT> &Image,
2040
+ const property_list &propList)
2041
+ : detail::image_accessor<DataT, Dimensions, AccessMode,
2042
+ access::target::host_image, IsPlaceholder>(
2043
+ Image, (detail::getSyclObjImpl(Image))->getElementSize()) {
2044
+ (void )propList;
2045
+ }
1997
2046
};
1998
2047
1999
2048
// / Image array accessor.
@@ -2041,6 +2090,20 @@ class accessor<DataT, Dimensions, AccessMode, access::target::image_array,
2041
2090
#endif
2042
2091
}
2043
2092
2093
+ template <typename AllocatorT>
2094
+ accessor (cl::sycl::image<Dimensions + 1 , AllocatorT> &Image,
2095
+ handler &CommandGroupHandler, const property_list &propList)
2096
+ : detail::image_accessor<DataT, Dimensions + 1, AccessMode,
2097
+ access::target::image, IsPlaceholder>(
2098
+ Image, CommandGroupHandler,
2099
+ (detail::getSyclObjImpl(Image))->getElementSize()) {
2100
+ (void )propList;
2101
+ #ifndef __SYCL_DEVICE_ONLY__
2102
+ detail::associateWithHandler (CommandGroupHandler, this ,
2103
+ access::target::image_array);
2104
+ #endif
2105
+ }
2106
+
2044
2107
detail::__image_array_slice__<DataT, Dimensions, AccessMode, IsPlaceholder>
2045
2108
operator [](size_t Index) const {
2046
2109
return detail::__image_array_slice__<DataT, Dimensions, AccessMode,
0 commit comments