@@ -276,6 +276,7 @@ class accessor_common {
276
276
constexpr static access::address_space AS = TargetToAS<AccessTarget>::AS;
277
277
278
278
constexpr static bool IsHostBuf = AccessTarget == access::target::host_buffer;
279
+ constexpr static bool IsHostTask = AccessTarget == access::target::host_task;
279
280
// SYCL2020 4.7.6.9.4.3
280
281
// IsPlaceHolder template parameter has no bearing on whether the accessor
281
282
// instance is a placeholder. This is determined solely by the constructor.
@@ -1021,6 +1022,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1021
1022
static constexpr bool IsHostBuf = AccessorCommonT::IsHostBuf;
1022
1023
static constexpr bool IsPlaceH = AccessorCommonT::IsPlaceH;
1023
1024
static constexpr bool IsConst = AccessorCommonT::IsConst;
1025
+ static constexpr bool IsHostTask = AccessorCommonT::IsHostTask;
1024
1026
template <int Dims>
1025
1027
using AccessorSubscript =
1026
1028
typename AccessorCommonT::template AccessorSubscript<Dims>;
@@ -1292,7 +1294,8 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1292
1294
typename detail::enable_if_t <
1293
1295
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1294
1296
std::is_same<T, DataT>::value && Dims == 0 &&
1295
- (IsHostBuf || (IsGlobalBuf || IsConstantBuf))> * = nullptr >
1297
+ (IsHostBuf || IsHostTask || (IsGlobalBuf || IsConstantBuf))> * =
1298
+ nullptr >
1296
1299
accessor (
1297
1300
buffer<T, 1 , AllocatorT> &BufferRef,
1298
1301
const property_list &PropertyList = {},
@@ -1324,7 +1327,8 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1324
1327
typename detail::enable_if_t <
1325
1328
detail::IsCxPropertyList<PropertyListT>::value &&
1326
1329
std::is_same<T, DataT>::value && Dims == 0 &&
1327
- (IsHostBuf || (IsGlobalBuf || IsConstantBuf))> * = nullptr >
1330
+ (IsHostBuf || IsHostTask || (IsGlobalBuf || IsConstantBuf))> * =
1331
+ nullptr >
1328
1332
accessor (
1329
1333
buffer<T, 1 , AllocatorT> &BufferRef,
1330
1334
const ext::oneapi::accessor_property_list<PropTypes...> &PropertyList =
@@ -1356,7 +1360,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1356
1360
typename = typename detail::enable_if_t <
1357
1361
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1358
1362
std::is_same<T, DataT>::value && (Dims == 0 ) &&
1359
- (IsGlobalBuf || IsConstantBuf || IsHostBuf )>>
1363
+ (IsGlobalBuf || IsHostBuf || IsConstantBuf || IsHostTask )>>
1360
1364
accessor (
1361
1365
buffer<T, 1 , AllocatorT> &BufferRef, handler &CommandGroupHandler,
1362
1366
const property_list &PropertyList = {},
@@ -1388,7 +1392,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1388
1392
typename = typename detail::enable_if_t <
1389
1393
detail::IsCxPropertyList<PropertyListT>::value &&
1390
1394
std::is_same<T, DataT>::value && (Dims == 0 ) &&
1391
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1395
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1392
1396
accessor (
1393
1397
buffer<T, 1 , AllocatorT> &BufferRef, handler &CommandGroupHandler,
1394
1398
const ext::oneapi::accessor_property_list<PropTypes...> &PropertyList =
@@ -1420,7 +1424,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1420
1424
typename = detail::enable_if_t <
1421
1425
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1422
1426
IsSameAsBuffer<T, Dims>::value &&
1423
- (IsHostBuf || (IsGlobalBuf || IsConstantBuf))>>
1427
+ (IsHostBuf || IsHostTask || (IsGlobalBuf || IsConstantBuf))>>
1424
1428
accessor (
1425
1429
buffer<T, Dims, AllocatorT> &BufferRef,
1426
1430
const property_list &PropertyList = {},
@@ -1454,7 +1458,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1454
1458
typename = detail::enable_if_t <
1455
1459
detail::IsCxPropertyList<PropertyListT>::value &&
1456
1460
IsSameAsBuffer<T, Dims>::value &&
1457
- (IsHostBuf || (IsGlobalBuf || IsConstantBuf))>>
1461
+ (IsHostBuf || IsHostTask || (IsGlobalBuf || IsConstantBuf))>>
1458
1462
accessor (
1459
1463
buffer<T, Dims, AllocatorT> &BufferRef,
1460
1464
const ext::oneapi::accessor_property_list<PropTypes...> &PropertyList =
@@ -1489,7 +1493,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1489
1493
typename = detail::enable_if_t <
1490
1494
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1491
1495
IsSameAsBuffer<T, Dims>::value && IsValidTag<TagT>::value &&
1492
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1496
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1493
1497
accessor (
1494
1498
buffer<T, Dims, AllocatorT> &BufferRef, TagT,
1495
1499
const property_list &PropertyList = {},
@@ -1503,7 +1507,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1503
1507
typename = detail::enable_if_t <
1504
1508
detail::IsCxPropertyList<PropertyListT>::value &&
1505
1509
IsSameAsBuffer<T, Dims>::value && IsValidTag<TagT>::value &&
1506
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1510
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1507
1511
accessor (
1508
1512
buffer<T, Dims, AllocatorT> &BufferRef, TagT,
1509
1513
const ext::oneapi::accessor_property_list<PropTypes...> &PropertyList =
@@ -1517,7 +1521,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1517
1521
typename = detail::enable_if_t <
1518
1522
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1519
1523
IsSameAsBuffer<T, Dims>::value &&
1520
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1524
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1521
1525
accessor (
1522
1526
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1523
1527
const property_list &PropertyList = {},
@@ -1550,7 +1554,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1550
1554
typename = detail::enable_if_t <
1551
1555
detail::IsCxPropertyList<PropertyListT>::value &&
1552
1556
IsSameAsBuffer<T, Dims>::value &&
1553
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1557
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1554
1558
accessor (
1555
1559
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1556
1560
const ext::oneapi::accessor_property_list<PropTypes...> &PropertyList =
@@ -1584,7 +1588,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1584
1588
typename = detail::enable_if_t <
1585
1589
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1586
1590
IsSameAsBuffer<T, Dims>::value && IsValidTag<TagT>::value &&
1587
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1591
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1588
1592
accessor (
1589
1593
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1590
1594
TagT, const property_list &PropertyList = {},
@@ -1598,7 +1602,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1598
1602
typename = detail::enable_if_t <
1599
1603
detail::IsCxPropertyList<PropertyListT>::value &&
1600
1604
IsSameAsBuffer<T, Dims>::value && IsValidTag<TagT>::value &&
1601
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1605
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1602
1606
accessor (
1603
1607
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1604
1608
TagT,
@@ -1613,7 +1617,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1613
1617
typename = detail::enable_if_t <
1614
1618
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1615
1619
IsSameAsBuffer<T, Dims>::value &&
1616
- (IsHostBuf || (IsGlobalBuf || IsConstantBuf))>>
1620
+ (IsHostBuf || IsHostTask || (IsGlobalBuf || IsConstantBuf))>>
1617
1621
accessor (
1618
1622
buffer<T, Dims, AllocatorT> &BufferRef, range<Dimensions> AccessRange,
1619
1623
const property_list &PropertyList = {},
@@ -1625,7 +1629,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1625
1629
typename = detail::enable_if_t <
1626
1630
detail::IsCxPropertyList<PropertyListT>::value &&
1627
1631
IsSameAsBuffer<T, Dims>::value &&
1628
- (IsHostBuf || (IsGlobalBuf || IsConstantBuf))>>
1632
+ (IsHostBuf || IsHostTask || (IsGlobalBuf || IsConstantBuf))>>
1629
1633
accessor (
1630
1634
buffer<T, Dims, AllocatorT> &BufferRef, range<Dimensions> AccessRange,
1631
1635
const ext::oneapi::accessor_property_list<PropTypes...> &PropertyList =
@@ -1667,7 +1671,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1667
1671
typename = detail::enable_if_t <
1668
1672
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1669
1673
IsSameAsBuffer<T, Dims>::value &&
1670
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1674
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1671
1675
accessor (
1672
1676
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1673
1677
range<Dimensions> AccessRange, const property_list &PropertyList = {},
@@ -1680,7 +1684,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1680
1684
typename = detail::enable_if_t <
1681
1685
detail::IsCxPropertyList<PropertyListT>::value &&
1682
1686
IsSameAsBuffer<T, Dims>::value &&
1683
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1687
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1684
1688
accessor (
1685
1689
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1686
1690
range<Dimensions> AccessRange,
@@ -1695,7 +1699,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1695
1699
typename = detail::enable_if_t <
1696
1700
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1697
1701
IsSameAsBuffer<T, Dims>::value && IsValidTag<TagT>::value &&
1698
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1702
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1699
1703
accessor (
1700
1704
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1701
1705
range<Dimensions> AccessRange, TagT,
@@ -1711,7 +1715,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1711
1715
typename = detail::enable_if_t <
1712
1716
detail::IsCxPropertyList<PropertyListT>::value &&
1713
1717
IsSameAsBuffer<T, Dims>::value && IsValidTag<TagT>::value &&
1714
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1718
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1715
1719
accessor (
1716
1720
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1717
1721
range<Dimensions> AccessRange, TagT,
@@ -1727,7 +1731,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1727
1731
typename = detail::enable_if_t <
1728
1732
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1729
1733
IsSameAsBuffer<T, Dims>::value &&
1730
- (IsHostBuf || (IsGlobalBuf || IsConstantBuf))>>
1734
+ (IsHostBuf || IsHostTask || (IsGlobalBuf || IsConstantBuf))>>
1731
1735
accessor (
1732
1736
buffer<T, Dims, AllocatorT> &BufferRef, range<Dimensions> AccessRange,
1733
1737
id<Dimensions> AccessOffset, const property_list &PropertyList = {},
@@ -1767,7 +1771,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1767
1771
typename = detail::enable_if_t <
1768
1772
detail::IsCxPropertyList<PropertyListT>::value &&
1769
1773
IsSameAsBuffer<T, Dims>::value &&
1770
- (IsHostBuf || (IsGlobalBuf || IsConstantBuf))>>
1774
+ (IsHostBuf || IsHostTask || (IsGlobalBuf || IsConstantBuf))>>
1771
1775
accessor (
1772
1776
buffer<T, Dims, AllocatorT> &BufferRef, range<Dimensions> AccessRange,
1773
1777
id<Dimensions> AccessOffset,
@@ -1838,7 +1842,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1838
1842
typename = detail::enable_if_t <
1839
1843
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1840
1844
IsSameAsBuffer<T, Dims>::value &&
1841
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1845
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1842
1846
accessor (
1843
1847
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1844
1848
range<Dimensions> AccessRange, id<Dimensions> AccessOffset,
@@ -1879,7 +1883,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1879
1883
typename = detail::enable_if_t <
1880
1884
detail::IsCxPropertyList<PropertyListT>::value &&
1881
1885
IsSameAsBuffer<T, Dims>::value &&
1882
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1886
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1883
1887
accessor (
1884
1888
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1885
1889
range<Dimensions> AccessRange, id<Dimensions> AccessOffset,
@@ -1921,7 +1925,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1921
1925
typename = detail::enable_if_t <
1922
1926
detail::IsRunTimePropertyListT<PropertyListT>::value &&
1923
1927
IsSameAsBuffer<T, Dims>::value && IsValidTag<TagT>::value &&
1924
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1928
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1925
1929
accessor (
1926
1930
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1927
1931
range<Dimensions> AccessRange, id<Dimensions> AccessOffset, TagT,
@@ -1937,7 +1941,7 @@ class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor :
1937
1941
typename = detail::enable_if_t <
1938
1942
detail::IsCxPropertyList<PropertyListT>::value &&
1939
1943
IsSameAsBuffer<T, Dims>::value && IsValidTag<TagT>::value &&
1940
- (IsGlobalBuf || IsConstantBuf || IsHostBuf)>>
1944
+ (IsGlobalBuf || IsConstantBuf || IsHostBuf || IsHostTask )>>
1941
1945
accessor (
1942
1946
buffer<T, Dims, AllocatorT> &BufferRef, handler &CommandGroupHandler,
1943
1947
range<Dimensions> AccessRange, id<Dimensions> AccessOffset, TagT,
0 commit comments