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