Skip to content

Commit 3161af3

Browse files
GeorgeWebJackAKirk
andauthored
[SYCL][Ext][Bindless] Initial implementation of image spirv builtins on HIP (#16439)
This PR implements the required spirv builtins in the libclc for AMD targets to support fetching (excluding sampled fetch for now), sampling, and writing for images and image arrays. Additionally, End-to-end tests are updated to require the aspects corresponding to the feature that is being tested from the Bindless Images extension. This helps avoid having to manually say which backend adapter is supported or unsupported and instead rely on support based on aspect/device queries to drive the execution of the tests. HIP adapter implementation in UR: oneapi-src/unified-runtime#2496 Signed-off-by: Georgi Mirazchiyski <[email protected]> --------- Signed-off-by: Georgi Mirazchiyski <[email protected]> Signed-off-by: JackAKirk <[email protected]> Co-authored-by: JackAKirk <[email protected]>
1 parent 0106136 commit 3161af3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1521
-55
lines changed

libclc/libspirv/lib/amdgcn-amdhsa/SOURCES

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ atomic/atomic_sub.cl
1616
atomic/atomic_store.cl
1717
conversion/GenericCastToPtrExplicit.cl
1818
synchronization/barrier.cl
19+
images/image_common.cl
20+
images/image.cl
21+
images/image_array.cl
1922
math/acos.cl
2023
math/acosh.cl
2124
math/asin.cl

libclc/libspirv/lib/amdgcn-amdhsa/images/image.cl

Lines changed: 531 additions & 0 deletions
Large diffs are not rendered by default.

libclc/libspirv/lib/amdgcn-amdhsa/images/image_array.cl

Lines changed: 525 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
#include "image_common.h"
2+
3+
#ifdef cl_khr_fp16
4+
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
5+
#endif
6+
7+
// From
8+
// https://github.com/ROCm/clr/tree/amd-staging/hipamd/include/hip/amd_detail/texture_fetch_functions.h
9+
_CLC_CONST_AS const unsigned int SAMPLER_OBJECT_OFFSET_DWORD = 12;
10+
11+
// Using the builtin as_type() and as_typen() functions to reinterpret types.
12+
// The restriction being is that element "type"s need to be of the same size.
13+
#define _CLC_DEFINE_BUILTIN_CAST_VEC4_TO_VEC3(vec4_elem_t, to_t) \
14+
_CLC_DEF to_t##3 __clc_cast_from_##vec4_elem_t##4_to_##to_t##3( \
15+
vec4_elem_t##4 from) { \
16+
vec4_elem_t##3 casted = as_##vec4_elem_t##3(from); \
17+
return as_##to_t##3(casted); \
18+
}
19+
#define _CLC_DEFINE_BUILTIN_CAST_VEC4_TO_VEC2(vec4_elem_t, to_t) \
20+
_CLC_DEF to_t##2 __clc_cast_from_##vec4_elem_t##4_to_##to_t##2( \
21+
vec4_elem_t##4 from) { \
22+
vec4_elem_t##4 casted = as_##vec4_elem_t##4(from); \
23+
return as_##to_t##2((vec4_elem_t##2)(casted.x, casted.y)); \
24+
}
25+
#define _CLC_DEFINE_BUILTIN_CAST_VEC4_TO_SCALAR(vec4_elem_t, to_t) \
26+
_CLC_DEF to_t __clc_cast_from_##vec4_elem_t##4_to_##to_t( \
27+
vec4_elem_t##4 from) { \
28+
vec4_elem_t##4 casted = as_##vec4_elem_t##4(from); \
29+
return as_##to_t(casted.x); \
30+
}
31+
#define _CLC_DEFINE_BUILTIN_CAST_VEC3_TO_VEC4(from_t, vec4_elem_t) \
32+
_CLC_DEF vec4_elem_t##4 __clc_cast_from_##from_t##3_to_##vec4_elem_t##4( \
33+
from_t##3 from) { \
34+
vec4_elem_t##3 casted = as_##vec4_elem_t##3(from); \
35+
return as_##vec4_elem_t##4(casted); \
36+
}
37+
#define _CLC_DEFINE_BUILTIN_CAST_VEC2_TO_VEC4(from_t, vec4_elem_t) \
38+
_CLC_DEF vec4_elem_t##4 __clc_cast_from_##from_t##2_to_##vec4_elem_t##4( \
39+
from_t##2 from) { \
40+
vec4_elem_t##2 casted = as_##vec4_elem_t##2(from); \
41+
return (vec4_elem_t##4)(casted.x, casted.y, 0, 0); \
42+
}
43+
#define _CLC_DEFINE_BUILTIN_CAST_SCALAR_TO_VEC4(from_t, vec4_elem_t) \
44+
_CLC_DEF vec4_elem_t##4 __clc_cast_from_##from_t##_to_##vec4_elem_t##4( \
45+
from_t from) { \
46+
vec4_elem_t casted = as_##vec4_elem_t(from); \
47+
return (vec4_elem_t##4)(casted, 0, 0, 0); \
48+
}
49+
50+
// Generic casts between builtin types.
51+
#define _CLC_DEFINE_CAST_VEC4(vec4_elem_t, to_t) \
52+
_CLC_DEF to_t##4 __clc_cast_from_##vec4_elem_t##4_to_##to_t##4( \
53+
vec4_elem_t##4 from) { \
54+
return (to_t##4)(from.x, from.y, from.z, from.w); \
55+
}
56+
#define _CLC_DEFINE_CAST_VEC4_TO_VEC3(vec4_elem_t, to_t) \
57+
_CLC_DEF to_t##3 __clc_cast_from_##vec4_elem_t##4_to_##to_t##3( \
58+
vec4_elem_t##4 from) { \
59+
return (to_t##3)(from.x, from.y, from.z); \
60+
}
61+
#define _CLC_DEFINE_CAST_VEC4_TO_VEC2(vec4_elem_t, to_t) \
62+
_CLC_DEF to_t##2 __clc_cast_from_##vec4_elem_t##4_to_##to_t##2( \
63+
vec4_elem_t##4 from) { \
64+
return (to_t##2)(from.x, from.y); \
65+
}
66+
#define _CLC_DEFINE_CAST_VEC4_TO_SCALAR(vec4_elem_t, to_t) \
67+
_CLC_DEF to_t __clc_cast_from_##vec4_elem_t##4_to_##to_t( \
68+
vec4_elem_t##4 from) { \
69+
return (to_t)from.x; \
70+
}
71+
#define _CLC_DEFINE_CAST_VEC3_TO_VEC4(from_t, vec4_elem_t) \
72+
_CLC_DEF vec4_elem_t##4 __clc_cast_from_##from_t##3_to_##vec4_elem_t##4( \
73+
from_t##3 from) { \
74+
return (vec4_elem_t##4)(from.x, from.y, from.z, 0); \
75+
}
76+
#define _CLC_DEFINE_CAST_VEC2_TO_VEC4(from_t, vec4_elem_t) \
77+
_CLC_DEF vec4_elem_t##4 __clc_cast_from_##from_t##2_to_##vec4_elem_t##4( \
78+
from_t##2 from) { \
79+
return (vec4_elem_t##4)(from.x, from.y, 0, 0); \
80+
}
81+
#define _CLC_DEFINE_CAST_SCALAR_TO_VEC4(from_t, vec4_elem_t) \
82+
_CLC_DEF vec4_elem_t##4 __clc_cast_from_##from_t##_to_##vec4_elem_t##4( \
83+
from_t from) { \
84+
return (vec4_elem_t##4)(from, 0, 0, 0); \
85+
}
86+
87+
// Helpers to extract N channel(s) from a four-channel (RGBA/XYZW) color type.
88+
89+
#define _CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(from_t, to_t) \
90+
_CLC_DEFINE_CAST_VEC4(from_t, to_t) \
91+
_CLC_DEFINE_BUILTIN_CAST_VEC4_TO_VEC3(from_t, to_t) \
92+
_CLC_DEFINE_BUILTIN_CAST_VEC4_TO_VEC2(from_t, to_t) \
93+
_CLC_DEFINE_BUILTIN_CAST_VEC4_TO_SCALAR(from_t, to_t) \
94+
_CLC_DEFINE_BUILTIN_CAST_VEC2_TO_VEC4(from_t, to_t) \
95+
_CLC_DEFINE_BUILTIN_CAST_VEC3_TO_VEC4(from_t, to_t) \
96+
_CLC_DEFINE_BUILTIN_CAST_SCALAR_TO_VEC4(from_t, to_t)
97+
98+
#define _CLC_DEFINE_EXTRACT_COLOR_HELPERS(from_t, to_t) \
99+
_CLC_DEFINE_CAST_VEC4(from_t, to_t) \
100+
_CLC_DEFINE_CAST_VEC4_TO_VEC3(from_t, to_t) \
101+
_CLC_DEFINE_CAST_VEC4_TO_VEC2(from_t, to_t) \
102+
_CLC_DEFINE_CAST_VEC4_TO_SCALAR(from_t, to_t) \
103+
_CLC_DEFINE_CAST_VEC2_TO_VEC4(from_t, to_t) \
104+
_CLC_DEFINE_CAST_VEC3_TO_VEC4(from_t, to_t) \
105+
_CLC_DEFINE_CAST_SCALAR_TO_VEC4(from_t, to_t)
106+
107+
// Define casts between supported builtin types for image color
108+
109+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(float, float)
110+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(float, int)
111+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(int, float)
112+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(float, uint)
113+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(uint, float)
114+
#ifdef cl_khr_fp16
115+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(half, half)
116+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(half, short)
117+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(short, half)
118+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(half, ushort)
119+
_CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS(ushort, half)
120+
#endif
121+
122+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(float, short)
123+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(short, float)
124+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(float, ushort)
125+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(ushort, float)
126+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(float, char)
127+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(char, float)
128+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(float, uchar)
129+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(uchar, float)
130+
#ifdef cl_khr_fp16
131+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(float, half)
132+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(half, float)
133+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(half, int)
134+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(int, half)
135+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(half, uint)
136+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(uint, half)
137+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(half, char)
138+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(char, half)
139+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(half, uchar)
140+
_CLC_DEFINE_EXTRACT_COLOR_HELPERS(uchar, half)
141+
#endif
142+
143+
#undef _CLC_DEFINE_EXTRACT_COLOR_HELPERS
144+
#undef _CLC_DEFINE_EXTRACT_SAME_SIZE_COLOR_HELPERS
145+
146+
#undef _CLC_DEFINE_CAST_SCALAR_TO_VEC4
147+
#undef _CLC_DEFINE_CAST_VEC2_TO_VEC4
148+
#undef _CLC_DEFINE_CAST_VEC3_TO_VEC4
149+
#undef _CLC_DEFINE_CAST_VEC4_TO_SCALAR
150+
#undef _CLC_DEFINE_CAST_VEC4_TO_VEC3
151+
#undef _CLC_DEFINE_CAST_VEC4_TO_VEC2
152+
#undef _CLC_DEFINE_CAST_VEC4
153+
#undef _CLC_DEFINE_BUILTIN_CAST_SCALAR_TO_VEC4
154+
#undef _CLC_DEFINE_BUILTIN_CAST_VEC2_TO_VEC4
155+
#undef _CLC_DEFINE_BUILTIN_VEC3_TO_VEC4
156+
#undef _CLC_DEFINE_BUILTIN_VEC4_TO_SCALAR
157+
#undef _CLC_DEFINE_BUILTIN_VEC4_TO_VEC3
158+
#undef _CLC_DEFINE_BUILTIN_VEC4_TO_VEC2
159+
#undef _CLC_DEFINE_BUILTIN_VEC4
Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
#ifndef CLC_SPIRV_IMAGE_COMMON
2+
#define CLC_SPIRV_IMAGE_COMMON
3+
4+
#include <clc/clc.h>
5+
6+
#ifdef cl_khr_fp16
7+
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
8+
#endif
9+
10+
#ifdef _WIN32
11+
#define _CLC_MANGLE_FUNC_IMG_HANDLE(namelength, name, prefix, postfix) \
12+
_Z##namelength##name##prefix##y##postfix
13+
#else
14+
#define _CLC_MANGLE_FUNC_IMG_HANDLE(namelength, name, prefix, postfix) \
15+
_Z##namelength##name##prefix##m##postfix
16+
#endif
17+
18+
// The ockl functions/builtins we link against from the ROCm device libs expect
19+
// resources to reside in constant address space.
20+
#if __clang_major__ >= 8
21+
#define _CLC_CONST_AS __constant
22+
#elif __clang_major__ >= 7
23+
#define _CLC_CONST_AS __attribute__((address_space(4)))
24+
#else
25+
#define _CLC_CONST_AS __attribute__((address_space(2)))
26+
#endif
27+
28+
// From
29+
// https://github.com/ROCm/clr/tree/amd-staging/hipamd/include/hip/amd_detail/texture_fetch_functions.h
30+
// defined in "image_common.cl"
31+
extern _CLC_CONST_AS const unsigned int SAMPLER_OBJECT_OFFSET_DWORD;
32+
33+
// Helpers for casting between two builtin vector types and/or scalar types.
34+
35+
// Using the builtin as_type() and as_typen() functions to reinterpret types.
36+
// The restriction being is that element "type"s need to be of the same size.
37+
#define _CLC_DECLARE_BUILTIN_CAST_VEC4_TO_VEC3(vec4_elem_t, to_t) \
38+
_CLC_DECL to_t##3 __clc_cast_from_##vec4_elem_t##4_to_##to_t##3( \
39+
vec4_elem_t##4 from);
40+
41+
#define _CLC_DECLARE_BUILTIN_CAST_VEC4_TO_VEC2(vec4_elem_t, to_t) \
42+
_CLC_DECL to_t##2 __clc_cast_from_##vec4_elem_t##4_to_##to_t##2( \
43+
vec4_elem_t##4 from);
44+
45+
#define _CLC_DECLARE_BUILTIN_CAST_VEC4_TO_SCALAR(vec4_elem_t, to_t) \
46+
_CLC_DECL to_t __clc_cast_from_##vec4_elem_t##4_to_##to_t( \
47+
vec4_elem_t##4 from);
48+
49+
#define _CLC_DECLARE_BUILTIN_CAST_VEC3_TO_VEC4(from_t, vec4_elem_t) \
50+
_CLC_DECL vec4_elem_t##4 __clc_cast_from_##from_t##3_to_##vec4_elem_t##4( \
51+
from_t##3 from);
52+
53+
#define _CLC_DECLARE_BUILTIN_CAST_VEC2_TO_VEC4(from_t, vec4_elem_t) \
54+
_CLC_DECL vec4_elem_t##4 __clc_cast_from_##from_t##2_to_##vec4_elem_t##4( \
55+
from_t##2 from);
56+
57+
#define _CLC_DECLARE_BUILTIN_CAST_SCALAR_TO_VEC4(from_t, vec4_elem_t) \
58+
_CLC_DECL vec4_elem_t##4 __clc_cast_from_##from_t##_to_##vec4_elem_t##4( \
59+
from_t from);
60+
61+
// Generic casts between builtin types.
62+
#define _CLC_DECLARE_CAST_VEC4(vec4_elem_t, to_t) \
63+
_CLC_DECL to_t##4 __clc_cast_from_##vec4_elem_t##4_to_##to_t##4( \
64+
vec4_elem_t##4 from);
65+
66+
#define _CLC_DECLARE_CAST_VEC4_TO_VEC3(vec4_elem_t, to_t) \
67+
_CLC_DECL to_t##3 __clc_cast_from_##vec4_elem_t##4_to_##to_t##3( \
68+
vec4_elem_t##4 from);
69+
70+
#define _CLC_DECLARE_CAST_VEC4_TO_VEC2(vec4_elem_t, to_t) \
71+
_CLC_DECL to_t##2 __clc_cast_from_##vec4_elem_t##4_to_##to_t##2( \
72+
vec4_elem_t##4 from);
73+
74+
#define _CLC_DECLARE_CAST_VEC4_TO_SCALAR(vec4_elem_t, to_t) \
75+
_CLC_DECL to_t __clc_cast_from_##vec4_elem_t##4_to_##to_t( \
76+
vec4_elem_t##4 from);
77+
78+
#define _CLC_DECLARE_CAST_VEC3_TO_VEC4(from_t, vec4_elem_t) \
79+
_CLC_DECL vec4_elem_t##4 __clc_cast_from_##from_t##3_to_##vec4_elem_t##4( \
80+
from_t##3 from);
81+
82+
#define _CLC_DECLARE_CAST_VEC2_TO_VEC4(from_t, vec4_elem_t) \
83+
_CLC_DECL vec4_elem_t##4 __clc_cast_from_##from_t##2_to_##vec4_elem_t##4( \
84+
from_t##2 from);
85+
86+
#define _CLC_DECLARE_CAST_SCALAR_TO_VEC4(from_t, vec4_elem_t) \
87+
_CLC_DECL vec4_elem_t##4 __clc_cast_from_##from_t##_to_##vec4_elem_t##4( \
88+
from_t from);
89+
90+
// Helpers to extract N channel(s) from a four-channel (RGBA/XYZW) color type.
91+
92+
#define _CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(from_t, to_t) \
93+
_CLC_DECLARE_CAST_VEC4(from_t, to_t) \
94+
_CLC_DECLARE_BUILTIN_CAST_VEC4_TO_VEC3(from_t, to_t) \
95+
_CLC_DECLARE_BUILTIN_CAST_VEC4_TO_VEC2(from_t, to_t) \
96+
_CLC_DECLARE_BUILTIN_CAST_VEC4_TO_SCALAR(from_t, to_t) \
97+
_CLC_DECLARE_BUILTIN_CAST_VEC2_TO_VEC4(from_t, to_t) \
98+
_CLC_DECLARE_BUILTIN_CAST_VEC3_TO_VEC4(from_t, to_t) \
99+
_CLC_DECLARE_BUILTIN_CAST_SCALAR_TO_VEC4(from_t, to_t)
100+
101+
#define _CLC_DECLARE_EXTRACT_COLOR_HELPERS(from_t, to_t) \
102+
_CLC_DECLARE_CAST_VEC4(from_t, to_t) \
103+
_CLC_DECLARE_CAST_VEC4_TO_VEC3(from_t, to_t) \
104+
_CLC_DECLARE_CAST_VEC4_TO_VEC2(from_t, to_t) \
105+
_CLC_DECLARE_CAST_VEC4_TO_SCALAR(from_t, to_t) \
106+
_CLC_DECLARE_CAST_VEC2_TO_VEC4(from_t, to_t) \
107+
_CLC_DECLARE_CAST_VEC3_TO_VEC4(from_t, to_t) \
108+
_CLC_DECLARE_CAST_SCALAR_TO_VEC4(from_t, to_t)
109+
110+
// Define casts between supported builtin types for image color
111+
112+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(float, float)
113+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(float, int)
114+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(int, float)
115+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(float, uint)
116+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(uint, float)
117+
#ifdef cl_khr_fp16
118+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(half, half)
119+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(half, short)
120+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(short, half)
121+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(half, ushort)
122+
_CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS(ushort, half)
123+
#endif
124+
125+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(half, float)
126+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(float, short)
127+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(short, float)
128+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(float, ushort)
129+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(ushort, float)
130+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(float, char)
131+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(char, float)
132+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(float, uchar)
133+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(uchar, float)
134+
#ifdef cl_khr_fp16
135+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(float, half)
136+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(half, int)
137+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(int, half)
138+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(half, uint)
139+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(uint, half)
140+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(half, char)
141+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(char, half)
142+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(half, uchar)
143+
_CLC_DECLARE_EXTRACT_COLOR_HELPERS(uchar, half)
144+
#endif
145+
146+
#undef _CLC_DECLARE_EXTRACT_COLOR_HELPERS
147+
#undef _CLC_DECLARE_EXTRACT_SAME_SIZE_COLOR_HELPERS
148+
149+
#undef _CLC_DECLARE_CAST_SCALAR_TO_VEC4
150+
#undef _CLC_DECLARE_CAST_VEC2_TO_VEC4
151+
#undef _CLC_DECLARE_CAST_VEC3_TO_VEC4
152+
#undef _CLC_DECLARE_CAST_VEC4_TO_SCALAR
153+
#undef _CLC_DECLARE_CAST_VEC4_TO_VEC3
154+
#undef _CLC_DECLARE_CAST_VEC4_TO_VEC2
155+
#undef _CLC_DECLARE_CAST_VEC4
156+
#undef _CLC_DECLARE_BUILTIN_CAST_SCALAR_TO_VEC4
157+
#undef _CLC_DECLARE_BUILTIN_CAST_VEC2_TO_VEC4
158+
#undef _CLC_DECLARE_BUILTIN_VEC3_TO_VEC4
159+
#undef _CLC_DECLARE_BUILTIN_VEC4_TO_SCALAR
160+
#undef _CLC_DECLARE_BUILTIN_VEC4_TO_VEC3
161+
#undef _CLC_DECLARE_BUILTIN_VEC4_TO_VEC2
162+
#undef _CLC_DECLARE_BUILTIN_VEC4
163+
164+
#endif // CLC_SPIRV_IMAGE_COMMON
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# commit 87d4a32666f2950e7cfa016ff181311c2e0ebbca
2-
# Merge: f07688db 8e4b5c3d
1+
# commit 0e6adfb64039d3dd5fc8363245fcac60cbdcb8bd
2+
# Merge: 42044a83 d0c87169
33
# Author: Kenneth Benzie (Benie) <[email protected]>
4-
# Date: Tue Feb 4 15:45:58 2025 +0000
5-
# Merge pull request #2480 from ldorau/Add_UMF_CUDA_provider
6-
# Use UMF CUDA memory provider in UR
7-
set(UNIFIED_RUNTIME_TAG 87d4a32666f2950e7cfa016ff181311c2e0ebbca)
4+
# Date: Wed Feb 5 15:39:15 2025 +0000
5+
# Merge pull request #2496 from GeorgeWeb/georgi/bindless-hip
6+
# [UR][Bindless] Initial implementation of bindless images for HIP
7+
set(UNIFIED_RUNTIME_TAG 0e6adfb64039d3dd5fc8363245fcac60cbdcb8bd)

sycl/doc/extensions/experimental/sycl_ext_oneapi_bindless_images.asciidoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2272,7 +2272,7 @@ void release_external_semaphore(external_semaphore semaphoreHandle,
22722272
```cpp
22732273
#include <sycl/sycl.hpp>
22742274

2275-
include::../../../test-e2e/bindless_images/examples/example_1_1D_read_write.cpp[lines=9..-1]
2275+
include::../../../test-e2e/bindless_images/examples/example_1_1D_read_write.cpp[lines=12..-1]
22762276
```
22772277

22782278
=== Reading from a dynamically sized array of 2D images
@@ -2288,30 +2288,30 @@ include::../../../test-e2e/bindless_images/examples/example_2_2D_dynamic_read.cp
22882288
```cpp
22892289
#include <sycl/sycl.hpp>
22902290

2291-
include::../../../test-e2e/bindless_images/examples/example_3_1D_mipmap_anisotropic_filtering_and_levels.cpp[lines=9..-1]
2291+
include::../../../test-e2e/bindless_images/examples/example_3_1D_mipmap_anisotropic_filtering_and_levels.cpp[lines=10..-1]
22922292
```
22932293

22942294
=== 1D image array read/write
22952295
```cpp
22962296
#include <sycl/sycl.hpp>
22972297

2298-
include::../../../test-e2e/bindless_images/examples/example_4_1D_array_read_write.cpp[lines=9..-1]
2298+
include::../../../test-e2e/bindless_images/examples/example_4_1D_array_read_write.cpp[lines=14..-1]
22992299
```
23002300

23012301
=== Sampling a cubemap
23022302

23032303
```c++
23042304
#include <sycl/sycl.hpp>
23052305

2306-
include::../../../test-e2e/bindless_images/examples/example_5_sample_cubemap.cpp[lines=9..-1]
2306+
include::../../../test-e2e/bindless_images/examples/example_5_sample_cubemap.cpp[lines=10..-1]
23072307
```
23082308

23092309
=== Using imported memory and semaphore objects
23102310

23112311
```c++
23122312
#include <sycl/sycl.hpp>
23132313

2314-
include::../../../test-e2e/bindless_images/examples/example_6_import_memory_and_semaphores.cpp[lines=8..-1]
2314+
include::../../../test-e2e/bindless_images/examples/example_6_import_memory_and_semaphores.cpp[lines=14..-1]
23152315
```
23162316

23172317
== Implementation notes

0 commit comments

Comments
 (0)