Skip to content

Commit d13fdbe

Browse files
[Bindless][Exp] Add texture fetch functionality (#12447)
With this commit, it is now possible to "fetch" sampled image data by passing integer coordinates and a `sampled_image_handle` to the `fetch_image` function.
1 parent 2ea410a commit d13fdbe

File tree

22 files changed

+1278
-288
lines changed

22 files changed

+1278
-288
lines changed

libclc/ptx-nvidiacl/libspirv/images/image.cl

Lines changed: 297 additions & 187 deletions
Large diffs are not rendered by default.

libclc/ptx-nvidiacl/libspirv/images/image_helpers.ll

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ entry:
272272
ret <4 x i16> %1
273273
}
274274

275-
; <--- TEXTURES --->
275+
; <--- TEXTURE SAMPLING (floating-point coordinates) --->
276276
declare {i32,i32,i32,i32} @llvm.nvvm.tex.unified.1d.v4s32.f32(i64, float)
277277
define <4 x i32> @__clc_llvm_nvvm_tex_1d_v4i32_f32(i64 %img, float %x) nounwind alwaysinline {
278278
entry:
@@ -345,6 +345,78 @@ entry:
345345
ret <4 x float> %1
346346
}
347347

348+
; <--- TEXTURE FETCHING (integer coordinates) --->
349+
declare {i32,i32,i32,i32} @llvm.nvvm.tex.unified.1d.v4s32.s32(i64, i32)
350+
define <4 x i32> @__clc_llvm_nvvm_tex_1d_v4i32_s32(i64 %img, i32 %x) nounwind alwaysinline {
351+
entry:
352+
%0 = tail call {i32,i32,i32,i32} @llvm.nvvm.tex.unified.1d.v4s32.s32(i64 %img, i32 %x);
353+
%1 = tail call <4 x i32>@__clc_struct32_to_vector({i32,i32,i32,i32} %0)
354+
ret <4 x i32> %1
355+
}
356+
357+
declare {i32,i32,i32,i32} @llvm.nvvm.tex.unified.2d.v4s32.s32(i64, i32, i32)
358+
define <4 x i32> @__clc_llvm_nvvm_tex_2d_v4i32_s32(i64 %img, i32 %x, i32 %y) nounwind alwaysinline {
359+
entry:
360+
%0 = tail call {i32,i32,i32,i32} @llvm.nvvm.tex.unified.2d.v4s32.s32(i64 %img, i32 %x, i32 %y);
361+
%1 = tail call <4 x i32>@__clc_struct32_to_vector({i32,i32,i32,i32} %0)
362+
ret <4 x i32> %1
363+
}
364+
365+
declare {i32,i32,i32,i32} @llvm.nvvm.tex.unified.3d.v4s32.s32(i64, i32, i32, i32)
366+
define <4 x i32> @__clc_llvm_nvvm_tex_3d_v4i32_s32(i64 %img, i32 %x, i32 %y, i32 %z) nounwind alwaysinline {
367+
entry:
368+
%0 = tail call {i32,i32,i32,i32} @llvm.nvvm.tex.unified.3d.v4s32.s32(i64 %img, i32 %x, i32 %y, i32 %z);
369+
%1 = tail call <4 x i32>@__clc_struct32_to_vector({i32,i32,i32,i32} %0)
370+
ret <4 x i32> %1
371+
}
372+
373+
declare {i32,i32,i32,i32} @llvm.nvvm.tex.unified.1d.v4u32.s32(i64, i32)
374+
define <4 x i32> @__clc_llvm_nvvm_tex_1d_v4j32_s32(i64 %img, i32 %x) nounwind alwaysinline {
375+
entry:
376+
%0 = tail call {i32,i32,i32,i32} @llvm.nvvm.tex.unified.1d.v4u32.s32(i64 %img, i32 %x);
377+
%1 = tail call <4 x i32>@__clc_struct32_to_vector({i32,i32,i32,i32} %0)
378+
ret <4 x i32> %1
379+
}
380+
381+
declare {i32,i32,i32,i32} @llvm.nvvm.tex.unified.2d.v4u32.s32(i64, i32, i32)
382+
define <4 x i32> @__clc_llvm_nvvm_tex_2d_v4j32_s32(i64 %img, i32 %x, i32 %y) nounwind alwaysinline {
383+
entry:
384+
%0 = tail call {i32,i32,i32,i32} @llvm.nvvm.tex.unified.2d.v4u32.s32(i64 %img, i32 %x, i32 %y);
385+
%1 = tail call <4 x i32>@__clc_struct32_to_vector({i32,i32,i32,i32} %0)
386+
ret <4 x i32> %1
387+
}
388+
389+
declare {i32,i32,i32,i32} @llvm.nvvm.tex.unified.3d.v4u32.s32(i64, i32, i32, i32)
390+
define <4 x i32> @__clc_llvm_nvvm_tex_3d_v4j32_s32(i64 %img, i32 %x, i32 %y, i32 %z) nounwind alwaysinline {
391+
entry:
392+
%0 = tail call {i32,i32,i32,i32} @llvm.nvvm.tex.unified.3d.v4u32.s32(i64 %img, i32 %x, i32 %y, i32 %z);
393+
%1 = tail call <4 x i32>@__clc_struct32_to_vector({i32,i32,i32,i32} %0)
394+
ret <4 x i32> %1
395+
}
396+
397+
declare {float,float,float,float} @llvm.nvvm.tex.unified.1d.v4f32.s32(i64, i32)
398+
define <4 x float> @__clc_llvm_nvvm_tex_1d_v4f32_s32(i64 %img, i32 %x) nounwind alwaysinline {
399+
entry:
400+
%0 = tail call {float,float,float,float} @llvm.nvvm.tex.unified.1d.v4f32.s32(i64 %img, i32 %x)
401+
%1 = tail call <4 x float>@__clc_structf32_to_vector({float,float,float,float} %0)
402+
ret <4 x float> %1
403+
}
404+
405+
declare {float,float,float,float} @llvm.nvvm.tex.unified.2d.v4f32.s32(i64, i32, i32)
406+
define <4 x float> @__clc_llvm_nvvm_tex_2d_v4f32_s32(i64 %img, i32 %x, i32 %y) nounwind alwaysinline {
407+
entry:
408+
%0 = tail call {float,float,float,float} @llvm.nvvm.tex.unified.2d.v4f32.s32(i64 %img, i32 %x, i32 %y);
409+
%1 = tail call <4 x float>@__clc_structf32_to_vector({float,float,float,float} %0)
410+
ret <4 x float> %1
411+
}
412+
413+
declare {float,float,float,float} @llvm.nvvm.tex.unified.3d.v4f32.s32(i64, i32, i32, i32)
414+
define <4 x float> @__clc_llvm_nvvm_tex_3d_v4f32_s32(i64 %img, i32 %x, i32 %y, i32 %z) nounwind alwaysinline {
415+
entry:
416+
%0 = tail call {float,float,float,float} @llvm.nvvm.tex.unified.3d.v4f32.s32(i64 %img, i32 %x, i32 %y, i32 %z);
417+
%1 = tail call <4 x float>@__clc_structf32_to_vector({float,float,float,float} %0)
418+
ret <4 x float> %1
419+
}
348420

349421

350422
; <--- MIPMAP --->

llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ def AspectExt_oneapi_interop_semaphore_export : Aspect<"ext_oneapi_interop_semap
6161
def AspectExt_oneapi_mipmap : Aspect<"ext_oneapi_mipmap">;
6262
def AspectExt_oneapi_mipmap_anisotropy : Aspect<"ext_oneapi_mipmap_anisotropy">;
6363
def AspectExt_oneapi_mipmap_level_reference : Aspect<"ext_oneapi_mipmap_level_reference">;
64+
def AspectExt_oneapi_bindless_sampled_image_fetch_1d_usm : Aspect<"ext_oneapi_bindless_sampled_image_fetch_1d_usm">;
65+
def AspectExt_oneapi_bindless_sampled_image_fetch_1d : Aspect<"ext_oneapi_bindless_sampled_image_fetch_1d">;
66+
def AspectExt_oneapi_bindless_sampled_image_fetch_2d_usm : Aspect<"ext_oneapi_bindless_sampled_image_fetch_2d_usm">;
67+
def AspectExt_oneapi_bindless_sampled_image_fetch_2d : Aspect<"ext_oneapi_bindless_sampled_image_fetch_2d">;
68+
def AspectExt_oneapi_bindless_sampled_image_fetch_3d_usm : Aspect<"ext_oneapi_bindless_sampled_image_fetch_3d_usm">;
69+
def AspectExt_oneapi_bindless_sampled_image_fetch_3d : Aspect<"ext_oneapi_bindless_sampled_image_fetch_3d">;
6470
def AspectExt_oneapi_cubemap : Aspect<"ext_oneapi_cubemap">;
6571
def AspectExt_oneapi_cubemap_seamless_filtering : Aspect<"ext_oneapi_cubemap_seamless_filtering">;
6672
def AspectExt_intel_esimd : Aspect<"ext_intel_esimd">;
@@ -124,7 +130,11 @@ def : TargetInfo<"__TestAspectList",
124130
AspectExt_oneapi_interop_memory_import, AspectExt_oneapi_interop_memory_export,
125131
AspectExt_oneapi_interop_semaphore_import, AspectExt_oneapi_interop_semaphore_export,
126132
AspectExt_oneapi_mipmap, AspectExt_oneapi_mipmap_anisotropy, AspectExt_oneapi_mipmap_level_reference, AspectExt_oneapi_cubemap,
127-
AspectExt_oneapi_cubemap_seamless_filtering, AspectExt_intel_esimd,
133+
AspectExt_oneapi_cubemap_seamless_filtering,
134+
AspectExt_oneapi_bindless_sampled_image_fetch_1d_usm, AspectExt_oneapi_bindless_sampled_image_fetch_1d,
135+
AspectExt_oneapi_bindless_sampled_image_fetch_2d_usm, AspectExt_oneapi_bindless_sampled_image_fetch_2d,
136+
AspectExt_oneapi_bindless_sampled_image_fetch_3d_usm, AspectExt_oneapi_bindless_sampled_image_fetch_3d,
137+
AspectExt_intel_esimd,
128138
AspectExt_oneapi_ballot_group, AspectExt_oneapi_fixed_size_group, AspectExt_oneapi_opportunistic_group,
129139
AspectExt_oneapi_tangle_group, AspectExt_intel_matrix, AspectExt_oneapi_is_composite, AspectExt_oneapi_is_component,
130140
AspectExt_oneapi_graph, AspectExt_intel_fpga_task_sequence, AspectExt_oneapi_limited_graph,

sycl/doc/extensions/experimental/sycl_ext_oneapi_bindless_images.asciidoc

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,6 +1055,10 @@ namespace sycl::ext::oneapi::experimental {
10551055
template <typename DataT, typename HintT = DataT, typename CoordT>
10561056
DataT fetch_image(const unsampled_image_handle &ImageHandle,
10571057
const CoordT &Coords);
1058+
1059+
template <typename DataT, typename HintT = DataT, typename CoordT>
1060+
DataT fetch_image(const sampled_image_handle &ImageHandle,
1061+
const CoordT &Coords);
10581062
template <typename DataT, typename HintT = DataT, typename CoordT>
10591063
DataT sample_image(const sampled_image_handle &ImageHandle,
10601064
const CoordT &Coords);
@@ -1066,12 +1070,19 @@ void write_image(unsampled_image_handle ImageHandle,
10661070
```
10671071

10681072
Inside a kernel, it's possible to retrieve data from an image via `fetch_image`
1069-
or `sample_image`, passing the appropirate image handle. The `fetch_image` API
1070-
is only applicable to unsampled images, and the data will be fetched exactly as
1071-
is in device memory. The `sample_image` API is only applicable to sampled
1072-
images, the image data will be sampled according to the
1073+
or `sample_image`, passing the appropirate image handle. The `fetch_image` API
1074+
is applicable to sampled and unsampled images, and the data will be fetched
1075+
exactly as is in device memory. The `sample_image` API is only applicable to
1076+
sampled images, the image data will be sampled according to the
10731077
`bindless_image_sampler` that was passed to the image upon construction.
10741078

1079+
When fetching from a sampled image handle, data exatly as is in memory, no
1080+
sampling operations will be performed, and the `bindless_image_sampler` passed
1081+
to the image upon creation has no effect on the returned image data. Note that
1082+
not all devices may support fetching of sampled image data depending on the
1083+
dimension or backing memory type. We provide device aspect queries for this in
1084+
<<querying_sampled_image_fetch_support>>.
1085+
10751086
The user is required to pass a `DataT` template parameter, which specifies the
10761087
return type of the `fetch_image` and `sample_image` functions. If `DataT` is
10771088
not a recognized standard type, as defined in <<recognized_standard_types>>,
@@ -1102,9 +1113,12 @@ For fetching and writing of unsampled images, coordinates are specified by
11021113
`int`, `sycl::vec<int, 2>`, and `sycl::vec<int, 3>` for 1D, 2D, and 3D images,
11031114
respectively.
11041115

1105-
Sampled image reads take `float`, `sycl::vec<float, 2>`, and
1116+
Sampled image "sampled reads" take `float`, `sycl::vec<float, 2>`, and
11061117
`sycl::vec<float, 3>` coordinate types for 1D, 2D, and 3D images, respectively.
11071118

1119+
Sampled image "fetch reads" take `int`, `sycl::vec<int, 2>`, and
1120+
`sycl::vec<int, 3>` coordinate types for 1D, 2D, and 3D images, respectively.
1121+
11081122
Note also that all images must be used in either read-only or write-only fashion
11091123
within a single kernel invocation; read/write images are not supported.
11101124

@@ -1149,6 +1163,36 @@ When providing the above types as `DataT` parameters to an image read function,
11491163
the corresponding `HintT` parameters to use would be `sycl::vec<float, 4>` and
11501164
`sycl::vec<short, 2>`, respectively.
11511165

1166+
=== Querying sampled image fetch support [[querying_sampled_image_fetch_support]]
1167+
1168+
We provide the following device queries to query support for sampled image
1169+
fetch with various backing memory types and dimensionalities.
1170+
1171+
The device aspect descriptors for these queries are:
1172+
1173+
[frame="none",options="header"]
1174+
|======================
1175+
|Device descriptor | Description
1176+
|`aspect::ext_oneapi_bindless_sampled_image_fetch_1d_usm` |
1177+
Indicates if the device is capable of fetching USM backed 1D
1178+
sampled image data.
1179+
|`aspect::ext_oneapi_bindless_sampled_image_fetch_1d` |
1180+
Indicates if the device is capable of fetching non-USM backed 1D
1181+
sampled image data.
1182+
|`aspect::ext_oneapi_bindless_sampled_image_fetch_2d_usm` |
1183+
Indicates if the device is capable of fetching USM backed 2D
1184+
sampled image data.
1185+
|`aspect::ext_oneapi_bindless_sampled_image_fetch_2d` |
1186+
Indicates if the device is capable of fetching non-USM backed 2D
1187+
sampled image data.
1188+
|`aspect::ext_oneapi_bindless_sampled_image_fetch_3d_usm` |
1189+
Indicates if the device is capable of fetching USM backed 3D
1190+
sampled image data.
1191+
|`aspect::ext_oneapi_bindless_sampled_image_fetch_3d` |
1192+
Indicates if the device is capable of fetching non-USM backed 3D
1193+
sampled image data.
1194+
|======================
1195+
11521196
== Mipmapped images
11531197

11541198
So far, we have described how to create and operate on standard bindless images.
@@ -2638,4 +2682,6 @@ These features still need to be handled:
26382682
- Updated `image_array_write` with non-const handle parameter.
26392683
- Removed `&` reference qualifier from `write_xxx` handle
26402684
parameter.
2685+
|5.7|2024-04-09| - Allow fetching of sampled image data through the
2686+
`fetch_image` API.
26412687
|======================

sycl/include/CL/__spirv/spirv_ops.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,12 @@ extern __DPCPP_SYCL_EXTERNAL void __spirv_ImageWrite(ImageT, CoordT, ValT);
200200
template <class RetT, typename ImageT, typename TempArgT>
201201
extern __DPCPP_SYCL_EXTERNAL RetT __spirv_ImageRead(ImageT, TempArgT);
202202

203+
template <class RetT, typename ImageT, typename TempArgT>
204+
extern __DPCPP_SYCL_EXTERNAL RetT __spirv_ImageFetch(ImageT, TempArgT);
205+
206+
template <class RetT, typename ImageT, typename TempArgT>
207+
extern __DPCPP_SYCL_EXTERNAL RetT __spirv_SampledImageFetch(ImageT, TempArgT);
208+
203209
template <class RetT, typename ImageT, typename TempArgT>
204210
extern __DPCPP_SYCL_EXTERNAL RetT __spirv_ImageArrayFetch(ImageT, TempArgT,
205211
int);

sycl/include/sycl/detail/image_ocl_types.hpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,30 @@ static RetType __invoke__ImageRead(ImageT Img, CoordT Coords) {
7979
__spirv_ImageRead<TempRetT, ImageT, decltype(TmpCoords)>(Img, TmpCoords));
8080
}
8181

82+
template <typename RetType, typename ImageT, typename CoordT>
83+
static RetType __invoke__ImageFetch(ImageT Img, CoordT Coords) {
84+
85+
// Convert from sycl types to builtin types to get correct function mangling.
86+
using TempRetT = sycl::detail::ConvertToOpenCLType_t<RetType>;
87+
auto TmpCoords = sycl::detail::convertToOpenCLType(Coords);
88+
89+
return sycl::detail::convertFromOpenCLTypeFor<RetType>(
90+
__spirv_ImageFetch<TempRetT, ImageT, decltype(TmpCoords)>(Img,
91+
TmpCoords));
92+
}
93+
94+
template <typename RetType, typename ImageT, typename CoordT>
95+
static RetType __invoke__SampledImageFetch(ImageT Img, CoordT Coords) {
96+
97+
// Convert from sycl types to builtin types to get correct function mangling.
98+
using TempRetT = sycl::detail::ConvertToOpenCLType_t<RetType>;
99+
auto TmpCoords = sycl::detail::convertToOpenCLType(Coords);
100+
101+
return sycl::detail::convertFromOpenCLTypeFor<RetType>(
102+
__spirv_SampledImageFetch<TempRetT, ImageT, decltype(TmpCoords)>(
103+
Img, TmpCoords));
104+
}
105+
82106
template <typename RetType, typename ImageT, typename CoordT>
83107
static RetType __invoke__ImageArrayFetch(ImageT Img, CoordT Coords,
84108
int ArrayLayer) {

sycl/include/sycl/detail/pi.h

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,16 @@
165165
// - Added device queries for cubemap support
166166
// - PI_EXT_ONEAPI_DEVICE_INFO_CUBEMAP_SUPPORT
167167
// - PI_EXT_ONEAPI_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT
168+
// 15.50 Added device queries for sampled image fetch support
169+
// - PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM
170+
// - PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D
171+
// - PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM
172+
// - PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D
173+
// - PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM
174+
// - PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D
168175

169176
#define _PI_H_VERSION_MAJOR 15
170-
#define _PI_H_VERSION_MINOR 48
177+
#define _PI_H_VERSION_MINOR 50
171178

172179
#define _PI_STRING_HELPER(a) #a
173180
#define _PI_CONCAT(a, b) _PI_STRING_HELPER(a.b)
@@ -462,6 +469,14 @@ typedef enum {
462469
// Bindless images cubemaps
463470
PI_EXT_ONEAPI_DEVICE_INFO_CUBEMAP_SUPPORT = 0x20115,
464471
PI_EXT_ONEAPI_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT = 0x20116,
472+
473+
// Bindless images sampled image fetch
474+
PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM = 0x20117,
475+
PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D = 0x20118,
476+
PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM = 0x20119,
477+
PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D = 0x2011A,
478+
PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM = 0x2011B,
479+
PI_EXT_ONEAPI_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D = 0x2011C,
465480
} _pi_device_info;
466481

467482
typedef enum {

sycl/include/sycl/device_aspect_macros.hpp

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,39 @@
343343
#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_cubemap_seamless_filtering__ 0
344344
#endif
345345

346+
#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_1d_usm__
347+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_1d_usm, 67)
348+
#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_1d_usm__ \
349+
0
350+
#endif
351+
352+
#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_1d__
353+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_1d, 68)
354+
#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_1d__ 0
355+
#endif
356+
357+
#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_2d_usm__
358+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_2d_usm, 69)
359+
#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_2d_usm__ \
360+
0
361+
#endif
362+
363+
#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_2d__
364+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_2d, 70)
365+
#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_2d__ 0
366+
#endif
367+
368+
#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_3d_usm__
369+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_3d_usm, 71)
370+
#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_3d_usm__ \
371+
0
372+
#endif
373+
374+
#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_3d__
375+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_3d, 72)
376+
#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_sampled_image_fetch_3d__ 0
377+
#endif
378+
346379
#ifndef __SYCL_ANY_DEVICE_HAS_host__
347380
// __SYCL_ASPECT(host, 0)
348381
#define __SYCL_ANY_DEVICE_HAS_host__ 0
@@ -677,3 +710,33 @@
677710
// __SYCL_ASPECT(ext_oneapi_cubemap_seamless_filtering, 66)
678711
#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_cubemap_seamless_filtering__ 0
679712
#endif
713+
714+
#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_1d_usm__
715+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_1d_usm, 67)
716+
#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_1d_usm__ 0
717+
#endif
718+
719+
#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_1d__
720+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_1d, 68)
721+
#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_1d__ 0
722+
#endif
723+
724+
#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_2d_usm__
725+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_2d_usm, 69)
726+
#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_2d_usm__ 0
727+
#endif
728+
729+
#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_2d__
730+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_2d, 70)
731+
#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_2d__ 0
732+
#endif
733+
734+
#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_3d_usm__
735+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_3d_usm, 71)
736+
#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_3d_usm__ 0
737+
#endif
738+
739+
#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_3d__
740+
//__SYCL_ASPECT(ext_oneapi_bindless_sampled_image_fetch_3d, 72)
741+
#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_sampled_image_fetch_3d__ 0
742+
#endif

0 commit comments

Comments
 (0)