23 #ifndef HIP_INCLUDE_HIP_AMD_DETAIL_CHANNEL_DESCRIPTOR_H
24 #define HIP_INCLUDE_HIP_AMD_DETAIL_CHANNEL_DESCRIPTOR_H
26 #if !defined(__HIPCC_RTC__)
27 #include <hip/hip_common.h>
28 #include <hip/driver_types.h>
29 #include <hip/amd_detail/amd_hip_vector_types.h>
34 extern "C" HIP_PUBLIC_API
35 hipChannelFormatDesc hipCreateChannelDesc(
int x,
int y,
int z,
int w, hipChannelFormatKind f);
37 static inline hipChannelFormatDesc hipCreateChannelDescHalf() {
38 int e = (int)
sizeof(
unsigned short) * 8;
39 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat);
42 static inline hipChannelFormatDesc hipCreateChannelDescHalf1() {
43 int e = (int)
sizeof(
unsigned short) * 8;
44 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat);
47 static inline hipChannelFormatDesc hipCreateChannelDescHalf2() {
48 int e = (int)
sizeof(
unsigned short) * 8;
49 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindFloat);
52 static inline hipChannelFormatDesc hipCreateChannelDescHalf4() {
53 int e = (int)
sizeof(
unsigned short) * 8;
54 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindFloat);
58 static inline hipChannelFormatDesc hipCreateChannelDesc() {
59 return hipCreateChannelDesc(0, 0, 0, 0, hipChannelFormatKindNone);
63 inline hipChannelFormatDesc hipCreateChannelDesc<char>() {
64 int e = (int)
sizeof(
char) * 8;
65 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
69 inline hipChannelFormatDesc hipCreateChannelDesc<signed char>() {
70 int e = (int)
sizeof(
signed char) * 8;
71 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
75 inline hipChannelFormatDesc hipCreateChannelDesc<unsigned char>() {
76 int e = (int)
sizeof(
unsigned char) * 8;
77 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
81 inline hipChannelFormatDesc hipCreateChannelDesc<uchar1>() {
82 int e = (int)
sizeof(
unsigned char) * 8;
83 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
87 inline hipChannelFormatDesc hipCreateChannelDesc<char1>() {
88 int e = (int)
sizeof(
signed char) * 8;
89 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
93 inline hipChannelFormatDesc hipCreateChannelDesc<uchar2>() {
94 int e = (int)
sizeof(
unsigned char) * 8;
95 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindUnsigned);
99 inline hipChannelFormatDesc hipCreateChannelDesc<char2>() {
100 int e = (int)
sizeof(
signed char) * 8;
101 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindSigned);
106 inline hipChannelFormatDesc hipCreateChannelDesc<uchar3>() {
107 int e = (int)
sizeof(
unsigned char) * 8;
108 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindUnsigned);
112 inline hipChannelFormatDesc hipCreateChannelDesc<char3>() {
113 int e = (int)
sizeof(
signed char) * 8;
114 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindSigned);
119 inline hipChannelFormatDesc hipCreateChannelDesc<uchar4>() {
120 int e = (int)
sizeof(
unsigned char) * 8;
121 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindUnsigned);
125 inline hipChannelFormatDesc hipCreateChannelDesc<char4>() {
126 int e = (int)
sizeof(
signed char) * 8;
127 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindSigned);
131 inline hipChannelFormatDesc hipCreateChannelDesc<unsigned short>() {
132 int e = (int)
sizeof(
unsigned short) * 8;
133 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
137 inline hipChannelFormatDesc hipCreateChannelDesc<signed short>() {
138 int e = (int)
sizeof(
signed short) * 8;
139 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
143 inline hipChannelFormatDesc hipCreateChannelDesc<ushort1>() {
144 int e = (int)
sizeof(
unsigned short) * 8;
145 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
149 inline hipChannelFormatDesc hipCreateChannelDesc<short1>() {
150 int e = (int)
sizeof(
signed short) * 8;
151 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
155 inline hipChannelFormatDesc hipCreateChannelDesc<ushort2>() {
156 int e = (int)
sizeof(
unsigned short) * 8;
157 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindUnsigned);
161 inline hipChannelFormatDesc hipCreateChannelDesc<short2>() {
162 int e = (int)
sizeof(
signed short) * 8;
163 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindSigned);
168 inline hipChannelFormatDesc hipCreateChannelDesc<ushort3>() {
169 int e = (int)
sizeof(
unsigned short) * 8;
170 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindUnsigned);
174 inline hipChannelFormatDesc hipCreateChannelDesc<short3>() {
175 int e = (int)
sizeof(
signed short) * 8;
176 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindSigned);
181 inline hipChannelFormatDesc hipCreateChannelDesc<ushort4>() {
182 int e = (int)
sizeof(
unsigned short) * 8;
183 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindUnsigned);
187 inline hipChannelFormatDesc hipCreateChannelDesc<short4>() {
188 int e = (int)
sizeof(
signed short) * 8;
189 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindSigned);
193 inline hipChannelFormatDesc hipCreateChannelDesc<unsigned int>() {
194 int e = (int)
sizeof(
unsigned int) * 8;
195 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
199 inline hipChannelFormatDesc hipCreateChannelDesc<signed int>() {
200 int e = (int)
sizeof(
signed int) * 8;
201 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
205 inline hipChannelFormatDesc hipCreateChannelDesc<uint1>() {
206 int e = (int)
sizeof(
unsigned int) * 8;
207 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
211 inline hipChannelFormatDesc hipCreateChannelDesc<int1>() {
212 int e = (int)
sizeof(
signed int) * 8;
213 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
217 inline hipChannelFormatDesc hipCreateChannelDesc<uint2>() {
218 int e = (int)
sizeof(
unsigned int) * 8;
219 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindUnsigned);
223 inline hipChannelFormatDesc hipCreateChannelDesc<int2>() {
224 int e = (int)
sizeof(
signed int) * 8;
225 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindSigned);
230 inline hipChannelFormatDesc hipCreateChannelDesc<uint3>() {
231 int e = (int)
sizeof(
unsigned int) * 8;
232 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindUnsigned);
236 inline hipChannelFormatDesc hipCreateChannelDesc<int3>() {
237 int e = (int)
sizeof(
signed int) * 8;
238 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindSigned);
243 inline hipChannelFormatDesc hipCreateChannelDesc<uint4>() {
244 int e = (int)
sizeof(
unsigned int) * 8;
245 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindUnsigned);
249 inline hipChannelFormatDesc hipCreateChannelDesc<int4>() {
250 int e = (int)
sizeof(
signed int) * 8;
251 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindSigned);
255 inline hipChannelFormatDesc hipCreateChannelDesc<float>() {
256 int e = (int)
sizeof(
float) * 8;
257 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat);
261 inline hipChannelFormatDesc hipCreateChannelDesc<float1>() {
262 int e = (int)
sizeof(
float) * 8;
263 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat);
267 inline hipChannelFormatDesc hipCreateChannelDesc<float2>() {
268 int e = (int)
sizeof(
float) * 8;
269 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindFloat);
274 inline hipChannelFormatDesc hipCreateChannelDesc<float3>() {
275 int e = (int)
sizeof(
float) * 8;
276 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindFloat);
281 inline hipChannelFormatDesc hipCreateChannelDesc<float4>() {
282 int e = (int)
sizeof(
float) * 8;
283 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindFloat);
286 #if !defined(__LP64__)
289 inline hipChannelFormatDesc hipCreateChannelDesc<unsigned long>() {
290 int e = (int)
sizeof(
unsigned long) * 8;
291 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
295 inline hipChannelFormatDesc hipCreateChannelDesc<signed long>() {
296 int e = (int)
sizeof(
signed long) * 8;
297 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
301 inline hipChannelFormatDesc hipCreateChannelDesc<ulong1>() {
302 int e = (int)
sizeof(
unsigned long) * 8;
303 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
307 inline hipChannelFormatDesc hipCreateChannelDesc<long1>() {
308 int e = (int)
sizeof(
signed long) * 8;
309 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
313 inline hipChannelFormatDesc hipCreateChannelDesc<ulong2>() {
314 int e = (int)
sizeof(
unsigned long) * 8;
315 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindUnsigned);
319 inline hipChannelFormatDesc hipCreateChannelDesc<long2>() {
320 int e = (int)
sizeof(
signed long) * 8;
321 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindSigned);
326 inline hipChannelFormatDesc hipCreateChannelDesc<ulong3>() {
327 int e = (int)
sizeof(
unsigned long) * 8;
328 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindUnsigned);
332 inline hipChannelFormatDesc hipCreateChannelDesc<long3>() {
333 int e = (int)
sizeof(
signed long) * 8;
334 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindSigned);
339 inline hipChannelFormatDesc hipCreateChannelDesc<ulong4>() {
340 int e = (int)
sizeof(
unsigned long) * 8;
341 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindUnsigned);
345 inline hipChannelFormatDesc hipCreateChannelDesc<long4>() {
346 int e = (int)
sizeof(
signed long) * 8;
347 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindSigned);
353 struct hipChannelFormatDesc hipCreateChannelDesc(int x, int y, int z, int w,
354 enum hipChannelFormatKind f);