23#ifndef HIP_INCLUDE_HIP_AMD_DETAIL_CHANNEL_DESCRIPTOR_H
24#define HIP_INCLUDE_HIP_AMD_DETAIL_CHANNEL_DESCRIPTOR_H
26#include <hip/hip_common.h>
27#include <hip/driver_types.h>
28#include <hip/amd_detail/amd_hip_vector_types.h>
32extern "C" HIP_PUBLIC_API
33hipChannelFormatDesc hipCreateChannelDesc(
int x,
int y,
int z,
int w, hipChannelFormatKind f);
35static inline hipChannelFormatDesc hipCreateChannelDescHalf() {
36 int e = (int)
sizeof(
unsigned short) * 8;
37 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat);
40static inline hipChannelFormatDesc hipCreateChannelDescHalf1() {
41 int e = (int)
sizeof(
unsigned short) * 8;
42 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat);
45static inline hipChannelFormatDesc hipCreateChannelDescHalf2() {
46 int e = (int)
sizeof(
unsigned short) * 8;
47 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindFloat);
50static inline hipChannelFormatDesc hipCreateChannelDescHalf4() {
51 int e = (int)
sizeof(
unsigned short) * 8;
52 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindFloat);
56static inline hipChannelFormatDesc hipCreateChannelDesc() {
57 return hipCreateChannelDesc(0, 0, 0, 0, hipChannelFormatKindNone);
61inline hipChannelFormatDesc hipCreateChannelDesc<char>() {
62 int e = (int)
sizeof(
char) * 8;
63 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
67inline hipChannelFormatDesc hipCreateChannelDesc<signed char>() {
68 int e = (int)
sizeof(
signed char) * 8;
69 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
73inline hipChannelFormatDesc hipCreateChannelDesc<unsigned char>() {
74 int e = (int)
sizeof(
unsigned char) * 8;
75 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
79inline hipChannelFormatDesc hipCreateChannelDesc<uchar1>() {
80 int e = (int)
sizeof(
unsigned char) * 8;
81 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
85inline hipChannelFormatDesc hipCreateChannelDesc<char1>() {
86 int e = (int)
sizeof(
signed char) * 8;
87 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
91inline hipChannelFormatDesc hipCreateChannelDesc<uchar2>() {
92 int e = (int)
sizeof(
unsigned char) * 8;
93 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindUnsigned);
97inline hipChannelFormatDesc hipCreateChannelDesc<char2>() {
98 int e = (int)
sizeof(
signed char) * 8;
99 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindSigned);
104inline hipChannelFormatDesc hipCreateChannelDesc<uchar3>() {
105 int e = (int)
sizeof(
unsigned char) * 8;
106 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindUnsigned);
110inline hipChannelFormatDesc hipCreateChannelDesc<char3>() {
111 int e = (int)
sizeof(
signed char) * 8;
112 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindSigned);
117inline hipChannelFormatDesc hipCreateChannelDesc<uchar4>() {
118 int e = (int)
sizeof(
unsigned char) * 8;
119 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindUnsigned);
123inline hipChannelFormatDesc hipCreateChannelDesc<char4>() {
124 int e = (int)
sizeof(
signed char) * 8;
125 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindSigned);
129inline hipChannelFormatDesc hipCreateChannelDesc<unsigned short>() {
130 int e = (int)
sizeof(
unsigned short) * 8;
131 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
135inline hipChannelFormatDesc hipCreateChannelDesc<signed short>() {
136 int e = (int)
sizeof(
signed short) * 8;
137 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
141inline hipChannelFormatDesc hipCreateChannelDesc<ushort1>() {
142 int e = (int)
sizeof(
unsigned short) * 8;
143 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
147inline hipChannelFormatDesc hipCreateChannelDesc<short1>() {
148 int e = (int)
sizeof(
signed short) * 8;
149 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
153inline hipChannelFormatDesc hipCreateChannelDesc<ushort2>() {
154 int e = (int)
sizeof(
unsigned short) * 8;
155 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindUnsigned);
159inline hipChannelFormatDesc hipCreateChannelDesc<short2>() {
160 int e = (int)
sizeof(
signed short) * 8;
161 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindSigned);
166inline hipChannelFormatDesc hipCreateChannelDesc<ushort3>() {
167 int e = (int)
sizeof(
unsigned short) * 8;
168 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindUnsigned);
172inline hipChannelFormatDesc hipCreateChannelDesc<short3>() {
173 int e = (int)
sizeof(
signed short) * 8;
174 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindSigned);
179inline hipChannelFormatDesc hipCreateChannelDesc<ushort4>() {
180 int e = (int)
sizeof(
unsigned short) * 8;
181 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindUnsigned);
185inline hipChannelFormatDesc hipCreateChannelDesc<short4>() {
186 int e = (int)
sizeof(
signed short) * 8;
187 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindSigned);
191inline hipChannelFormatDesc hipCreateChannelDesc<unsigned int>() {
192 int e = (int)
sizeof(
unsigned int) * 8;
193 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
197inline hipChannelFormatDesc hipCreateChannelDesc<signed int>() {
198 int e = (int)
sizeof(
signed int) * 8;
199 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
203inline hipChannelFormatDesc hipCreateChannelDesc<uint1>() {
204 int e = (int)
sizeof(
unsigned int) * 8;
205 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
209inline hipChannelFormatDesc hipCreateChannelDesc<int1>() {
210 int e = (int)
sizeof(
signed int) * 8;
211 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
215inline hipChannelFormatDesc hipCreateChannelDesc<uint2>() {
216 int e = (int)
sizeof(
unsigned int) * 8;
217 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindUnsigned);
221inline hipChannelFormatDesc hipCreateChannelDesc<int2>() {
222 int e = (int)
sizeof(
signed int) * 8;
223 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindSigned);
228inline hipChannelFormatDesc hipCreateChannelDesc<uint3>() {
229 int e = (int)
sizeof(
unsigned int) * 8;
230 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindUnsigned);
234inline hipChannelFormatDesc hipCreateChannelDesc<int3>() {
235 int e = (int)
sizeof(
signed int) * 8;
236 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindSigned);
241inline hipChannelFormatDesc hipCreateChannelDesc<uint4>() {
242 int e = (int)
sizeof(
unsigned int) * 8;
243 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindUnsigned);
247inline hipChannelFormatDesc hipCreateChannelDesc<int4>() {
248 int e = (int)
sizeof(
signed int) * 8;
249 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindSigned);
253inline hipChannelFormatDesc hipCreateChannelDesc<float>() {
254 int e = (int)
sizeof(
float) * 8;
255 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat);
259inline hipChannelFormatDesc hipCreateChannelDesc<float1>() {
260 int e = (int)
sizeof(
float) * 8;
261 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindFloat);
265inline hipChannelFormatDesc hipCreateChannelDesc<float2>() {
266 int e = (int)
sizeof(
float) * 8;
267 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindFloat);
272inline hipChannelFormatDesc hipCreateChannelDesc<float3>() {
273 int e = (int)
sizeof(
float) * 8;
274 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindFloat);
279inline hipChannelFormatDesc hipCreateChannelDesc<float4>() {
280 int e = (int)
sizeof(
float) * 8;
281 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindFloat);
284#if !defined(__LP64__)
287inline hipChannelFormatDesc hipCreateChannelDesc<unsigned long>() {
288 int e = (int)
sizeof(
unsigned long) * 8;
289 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
293inline hipChannelFormatDesc hipCreateChannelDesc<signed long>() {
294 int e = (int)
sizeof(
signed long) * 8;
295 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
299inline hipChannelFormatDesc hipCreateChannelDesc<ulong1>() {
300 int e = (int)
sizeof(
unsigned long) * 8;
301 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindUnsigned);
305inline hipChannelFormatDesc hipCreateChannelDesc<long1>() {
306 int e = (int)
sizeof(
signed long) * 8;
307 return hipCreateChannelDesc(e, 0, 0, 0, hipChannelFormatKindSigned);
311inline hipChannelFormatDesc hipCreateChannelDesc<ulong2>() {
312 int e = (int)
sizeof(
unsigned long) * 8;
313 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindUnsigned);
317inline hipChannelFormatDesc hipCreateChannelDesc<long2>() {
318 int e = (int)
sizeof(
signed long) * 8;
319 return hipCreateChannelDesc(e, e, 0, 0, hipChannelFormatKindSigned);
324inline hipChannelFormatDesc hipCreateChannelDesc<ulong3>() {
325 int e = (int)
sizeof(
unsigned long) * 8;
326 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindUnsigned);
330inline hipChannelFormatDesc hipCreateChannelDesc<long3>() {
331 int e = (int)
sizeof(
signed long) * 8;
332 return hipCreateChannelDesc(e, e, e, 0, hipChannelFormatKindSigned);
337inline hipChannelFormatDesc hipCreateChannelDesc<ulong4>() {
338 int e = (int)
sizeof(
unsigned long) * 8;
339 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindUnsigned);
343inline hipChannelFormatDesc hipCreateChannelDesc<long4>() {
344 int e = (int)
sizeof(
signed long) * 8;
345 return hipCreateChannelDesc(e, e, e, e, hipChannelFormatKindSigned);
351struct hipChannelFormatDesc hipCreateChannelDesc(int x, int y, int z, int w,
352 enum hipChannelFormatKind f);