• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_packed_gl_enums.py using data from packed_cl_enums.json.
3 //
4 // Copyright 2017 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // PackedCLEnums_autogen.h:
9 //   Declares ANGLE-specific enums classes for CLenums and functions operating
10 //   on them.
11 
12 #ifndef COMMON_PACKEDCLENUMS_AUTOGEN_H_
13 #define COMMON_PACKEDCLENUMS_AUTOGEN_H_
14 
15 #include <angle_cl.h>
16 typedef cl_uint CLenum;
17 
18 #include <cstdint>
19 #include <ostream>
20 
21 namespace cl
22 {
23 
24 template <typename Enum>
25 Enum FromCLenum(CLenum from);
26 
27 enum class AddressingMode : uint8_t
28 {
29     None           = 0,
30     ClampToEdge    = 1,
31     Clamp          = 2,
32     Repeat         = 3,
33     MirroredRepeat = 4,
34 
35     InvalidEnum = 5,
36     EnumCount   = 5,
37 };
38 
39 template <>
40 AddressingMode FromCLenum<AddressingMode>(CLenum from);
41 CLenum ToCLenum(AddressingMode from);
42 std::ostream &operator<<(std::ostream &os, AddressingMode value);
43 
44 enum class CommandQueueInfo : uint8_t
45 {
46     Context         = 0,
47     Device          = 1,
48     ReferenceCount  = 2,
49     Properties      = 3,
50     Size            = 4,
51     DeviceDefault   = 5,
52     PropertiesArray = 6,
53 
54     InvalidEnum = 7,
55     EnumCount   = 7,
56 };
57 
58 template <>
59 CommandQueueInfo FromCLenum<CommandQueueInfo>(CLenum from);
60 CLenum ToCLenum(CommandQueueInfo from);
61 std::ostream &operator<<(std::ostream &os, CommandQueueInfo value);
62 
63 enum class ContextInfo : uint8_t
64 {
65     ReferenceCount = 0,
66     Devices        = 1,
67     Properties     = 2,
68     NumDevices     = 3,
69 
70     InvalidEnum = 4,
71     EnumCount   = 4,
72 };
73 
74 template <>
75 ContextInfo FromCLenum<ContextInfo>(CLenum from);
76 CLenum ToCLenum(ContextInfo from);
77 std::ostream &operator<<(std::ostream &os, ContextInfo value);
78 
79 enum class DeviceInfo : uint8_t
80 {
81     Type                                = 0,
82     VendorID                            = 1,
83     MaxComputeUnits                     = 2,
84     MaxWorkItemDimensions               = 3,
85     MaxWorkGroupSize                    = 4,
86     MaxWorkItemSizes                    = 5,
87     PreferredVectorWidthChar            = 6,
88     PreferredVectorWidthShort           = 7,
89     PreferredVectorWidthInt             = 8,
90     PreferredVectorWidthLong            = 9,
91     PreferredVectorWidthFloat           = 10,
92     PreferredVectorWidthDouble          = 11,
93     MaxClockFrequency                   = 12,
94     AddressBits                         = 13,
95     MaxReadImageArgs                    = 14,
96     MaxWriteImageArgs                   = 15,
97     MaxMemAllocSize                     = 16,
98     Image2D_MaxWidth                    = 17,
99     Image2D_MaxHeight                   = 18,
100     Image3D_MaxWidth                    = 19,
101     Image3D_MaxHeight                   = 20,
102     Image3D_MaxDepth                    = 21,
103     ImageSupport                        = 22,
104     MaxParameterSize                    = 23,
105     MaxSamplers                         = 24,
106     MemBaseAddrAlign                    = 25,
107     MinDataTypeAlignSize                = 26,
108     SingleFpConfig                      = 27,
109     GlobalMemCacheType                  = 28,
110     GlobalMemCachelineSize              = 29,
111     GlobalMemCacheSize                  = 30,
112     GlobalMemSize                       = 31,
113     MaxConstantBufferSize               = 32,
114     MaxConstantArgs                     = 33,
115     LocalMemType                        = 34,
116     LocalMemSize                        = 35,
117     ErrorCorrectionSupport              = 36,
118     ProfilingTimerResolution            = 37,
119     EndianLittle                        = 38,
120     Available                           = 39,
121     CompilerAvailable                   = 40,
122     ExecutionCapabilities               = 41,
123     QueueOnHostProperties               = 42,
124     Name                                = 43,
125     Vendor                              = 44,
126     DriverVersion                       = 45,
127     Profile                             = 46,
128     Version                             = 47,
129     Extensions                          = 48,
130     Platform                            = 49,
131     DoubleFpConfig                      = 50,
132     HalfFpConfig                        = 51,
133     PreferredVectorWidthHalf            = 52,
134     HostUnifiedMemory                   = 53,
135     NativeVectorWidthChar               = 54,
136     NativeVectorWidthShort              = 55,
137     NativeVectorWidthInt                = 56,
138     NativeVectorWidthLong               = 57,
139     NativeVectorWidthFloat              = 58,
140     NativeVectorWidthDouble             = 59,
141     NativeVectorWidthHalf               = 60,
142     OpenCL_C_Version                    = 61,
143     LinkerAvailable                     = 62,
144     BuiltInKernels                      = 63,
145     ImageMaxBufferSize                  = 64,
146     ImageMaxArraySize                   = 65,
147     ParentDevice                        = 66,
148     PartitionMaxSubDevices              = 67,
149     PartitionProperties                 = 68,
150     PartitionAffinityDomain             = 69,
151     PartitionType                       = 70,
152     ReferenceCount                      = 71,
153     PreferredInteropUserSync            = 72,
154     PrintfBufferSize                    = 73,
155     ImagePitchAlignment                 = 74,
156     ImageBaseAddressAlignment           = 75,
157     MaxReadWriteImageArgs               = 76,
158     MaxGlobalVariableSize               = 77,
159     QueueOnDeviceProperties             = 78,
160     QueueOnDevicePreferredSize          = 79,
161     QueueOnDeviceMaxSize                = 80,
162     MaxOnDeviceQueues                   = 81,
163     MaxOnDeviceEvents                   = 82,
164     SVM_Capabilities                    = 83,
165     GlobalVariablePreferredTotalSize    = 84,
166     MaxPipeArgs                         = 85,
167     PipeMaxActiveReservations           = 86,
168     PipeMaxPacketSize                   = 87,
169     PreferredPlatformAtomicAlignment    = 88,
170     PreferredGlobalAtomicAlignment      = 89,
171     PreferredLocalAtomicAlignment       = 90,
172     IL_Version                          = 91,
173     MaxNumSubGroups                     = 92,
174     SubGroupIndependentForwardProgress  = 93,
175     NumericVersion                      = 94,
176     ExtensionsWithVersion               = 95,
177     ILsWithVersion                      = 96,
178     BuiltInKernelsWithVersion           = 97,
179     AtomicMemoryCapabilities            = 98,
180     AtomicFenceCapabilities             = 99,
181     NonUniformWorkGroupSupport          = 100,
182     OpenCL_C_AllVersions                = 101,
183     PreferredWorkGroupSizeMultiple      = 102,
184     WorkGroupCollectiveFunctionsSupport = 103,
185     GenericAddressSpaceSupport          = 104,
186     OpenCL_C_Features                   = 105,
187     DeviceEnqueueCapabilities           = 106,
188     PipeSupport                         = 107,
189     LatestConformanceVersionPassed      = 108,
190 
191     InvalidEnum = 109,
192     EnumCount   = 109,
193 };
194 
195 template <>
196 DeviceInfo FromCLenum<DeviceInfo>(CLenum from);
197 CLenum ToCLenum(DeviceInfo from);
198 std::ostream &operator<<(std::ostream &os, DeviceInfo value);
199 
200 enum class EventInfo : uint8_t
201 {
202     CommandQueue           = 0,
203     CommandType            = 1,
204     ReferenceCount         = 2,
205     CommandExecutionStatus = 3,
206     Context                = 4,
207 
208     InvalidEnum = 5,
209     EnumCount   = 5,
210 };
211 
212 template <>
213 EventInfo FromCLenum<EventInfo>(CLenum from);
214 CLenum ToCLenum(EventInfo from);
215 std::ostream &operator<<(std::ostream &os, EventInfo value);
216 
217 enum class FilterMode : uint8_t
218 {
219     Nearest = 0,
220     Linear  = 1,
221 
222     InvalidEnum = 2,
223     EnumCount   = 2,
224 };
225 
226 template <>
227 FilterMode FromCLenum<FilterMode>(CLenum from);
228 CLenum ToCLenum(FilterMode from);
229 std::ostream &operator<<(std::ostream &os, FilterMode value);
230 
231 enum class ImageInfo : uint8_t
232 {
233     Format       = 0,
234     ElementSize  = 1,
235     RowPitch     = 2,
236     SlicePitch   = 3,
237     Width        = 4,
238     Height       = 5,
239     Depth        = 6,
240     ArraySize    = 7,
241     Buffer       = 8,
242     NumMipLevels = 9,
243     NumSamples   = 10,
244 
245     InvalidEnum = 11,
246     EnumCount   = 11,
247 };
248 
249 template <>
250 ImageInfo FromCLenum<ImageInfo>(CLenum from);
251 CLenum ToCLenum(ImageInfo from);
252 std::ostream &operator<<(std::ostream &os, ImageInfo value);
253 
254 enum class KernelArgInfo : uint8_t
255 {
256     AddressQualifier = 0,
257     AccessQualifier  = 1,
258     TypeName         = 2,
259     TypeQualifier    = 3,
260     Name             = 4,
261 
262     InvalidEnum = 5,
263     EnumCount   = 5,
264 };
265 
266 template <>
267 KernelArgInfo FromCLenum<KernelArgInfo>(CLenum from);
268 CLenum ToCLenum(KernelArgInfo from);
269 std::ostream &operator<<(std::ostream &os, KernelArgInfo value);
270 
271 enum class KernelExecInfo : uint8_t
272 {
273     SVM_Ptrs            = 0,
274     SVM_FineGrainSystem = 1,
275 
276     InvalidEnum = 2,
277     EnumCount   = 2,
278 };
279 
280 template <>
281 KernelExecInfo FromCLenum<KernelExecInfo>(CLenum from);
282 CLenum ToCLenum(KernelExecInfo from);
283 std::ostream &operator<<(std::ostream &os, KernelExecInfo value);
284 
285 enum class KernelInfo : uint8_t
286 {
287     FunctionName   = 0,
288     NumArgs        = 1,
289     ReferenceCount = 2,
290     Context        = 3,
291     Program        = 4,
292     Attributes     = 5,
293 
294     InvalidEnum = 6,
295     EnumCount   = 6,
296 };
297 
298 template <>
299 KernelInfo FromCLenum<KernelInfo>(CLenum from);
300 CLenum ToCLenum(KernelInfo from);
301 std::ostream &operator<<(std::ostream &os, KernelInfo value);
302 
303 enum class KernelSubGroupInfo : uint8_t
304 {
305     MaxSubGroupSizeForNdrange = 0,
306     SubGroupCountForNdrange   = 1,
307     LocalSizeForSubGroupCount = 2,
308     MaxNumSubGroups           = 3,
309     CompileNumSubGroups       = 4,
310 
311     InvalidEnum = 5,
312     EnumCount   = 5,
313 };
314 
315 template <>
316 KernelSubGroupInfo FromCLenum<KernelSubGroupInfo>(CLenum from);
317 CLenum ToCLenum(KernelSubGroupInfo from);
318 std::ostream &operator<<(std::ostream &os, KernelSubGroupInfo value);
319 
320 enum class KernelWorkGroupInfo : uint8_t
321 {
322     WorkGroupSize                  = 0,
323     CompileWorkGroupSize           = 1,
324     LocalMemSize                   = 2,
325     PreferredWorkGroupSizeMultiple = 3,
326     PrivateMemSize                 = 4,
327     GlobalWorkSize                 = 5,
328 
329     InvalidEnum = 6,
330     EnumCount   = 6,
331 };
332 
333 template <>
334 KernelWorkGroupInfo FromCLenum<KernelWorkGroupInfo>(CLenum from);
335 CLenum ToCLenum(KernelWorkGroupInfo from);
336 std::ostream &operator<<(std::ostream &os, KernelWorkGroupInfo value);
337 
338 enum class MemInfo : uint8_t
339 {
340     Type                = 0,
341     Flags               = 1,
342     Size                = 2,
343     HostPtr             = 3,
344     MapCount            = 4,
345     ReferenceCount      = 5,
346     Context             = 6,
347     AssociatedMemObject = 7,
348     Offset              = 8,
349     UsesSVM_Pointer     = 9,
350     Properties          = 10,
351 
352     InvalidEnum = 11,
353     EnumCount   = 11,
354 };
355 
356 template <>
357 MemInfo FromCLenum<MemInfo>(CLenum from);
358 CLenum ToCLenum(MemInfo from);
359 std::ostream &operator<<(std::ostream &os, MemInfo value);
360 
361 enum class MemObjectType : uint8_t
362 {
363     Buffer         = 0,
364     Image2D        = 1,
365     Image3D        = 2,
366     Image2D_Array  = 3,
367     Image1D        = 4,
368     Image1D_Array  = 5,
369     Image1D_Buffer = 6,
370     Pipe           = 7,
371 
372     InvalidEnum = 8,
373     EnumCount   = 8,
374 };
375 
376 template <>
377 MemObjectType FromCLenum<MemObjectType>(CLenum from);
378 CLenum ToCLenum(MemObjectType from);
379 std::ostream &operator<<(std::ostream &os, MemObjectType value);
380 
381 enum class PipeInfo : uint8_t
382 {
383     PacketSize = 0,
384     MaxPackets = 1,
385     Properties = 2,
386 
387     InvalidEnum = 3,
388     EnumCount   = 3,
389 };
390 
391 template <>
392 PipeInfo FromCLenum<PipeInfo>(CLenum from);
393 CLenum ToCLenum(PipeInfo from);
394 std::ostream &operator<<(std::ostream &os, PipeInfo value);
395 
396 enum class PlatformInfo : uint8_t
397 {
398     Profile               = 0,
399     Version               = 1,
400     Name                  = 2,
401     Vendor                = 3,
402     Extensions            = 4,
403     HostTimerResolution   = 5,
404     NumericVersion        = 6,
405     ExtensionsWithVersion = 7,
406     IcdSuffix             = 8,
407 
408     InvalidEnum = 9,
409     EnumCount   = 9,
410 };
411 
412 template <>
413 PlatformInfo FromCLenum<PlatformInfo>(CLenum from);
414 CLenum ToCLenum(PlatformInfo from);
415 std::ostream &operator<<(std::ostream &os, PlatformInfo value);
416 
417 enum class ProfilingInfo : uint8_t
418 {
419     CommandQueued   = 0,
420     CommandSubmit   = 1,
421     CommandStart    = 2,
422     CommandEnd      = 3,
423     CommandComplete = 4,
424 
425     InvalidEnum = 5,
426     EnumCount   = 5,
427 };
428 
429 template <>
430 ProfilingInfo FromCLenum<ProfilingInfo>(CLenum from);
431 CLenum ToCLenum(ProfilingInfo from);
432 std::ostream &operator<<(std::ostream &os, ProfilingInfo value);
433 
434 enum class ProgramBuildInfo : uint8_t
435 {
436     Status                  = 0,
437     Options                 = 1,
438     Log                     = 2,
439     BinaryType              = 3,
440     GlobalVariableTotalSize = 4,
441 
442     InvalidEnum = 5,
443     EnumCount   = 5,
444 };
445 
446 template <>
447 ProgramBuildInfo FromCLenum<ProgramBuildInfo>(CLenum from);
448 CLenum ToCLenum(ProgramBuildInfo from);
449 std::ostream &operator<<(std::ostream &os, ProgramBuildInfo value);
450 
451 enum class ProgramInfo : uint8_t
452 {
453     ReferenceCount          = 0,
454     Context                 = 1,
455     NumDevices              = 2,
456     Devices                 = 3,
457     Source                  = 4,
458     BinarySizes             = 5,
459     Binaries                = 6,
460     NumKernels              = 7,
461     KernelNames             = 8,
462     IL                      = 9,
463     ScopeGlobalCtorsPresent = 10,
464     ScopeGlobalDtorsPresent = 11,
465 
466     InvalidEnum = 12,
467     EnumCount   = 12,
468 };
469 
470 template <>
471 ProgramInfo FromCLenum<ProgramInfo>(CLenum from);
472 CLenum ToCLenum(ProgramInfo from);
473 std::ostream &operator<<(std::ostream &os, ProgramInfo value);
474 
475 enum class SamplerInfo : uint8_t
476 {
477     ReferenceCount   = 0,
478     Context          = 1,
479     NormalizedCoords = 2,
480     AddressingMode   = 3,
481     FilterMode       = 4,
482     Properties       = 5,
483 
484     InvalidEnum = 6,
485     EnumCount   = 6,
486 };
487 
488 template <>
489 SamplerInfo FromCLenum<SamplerInfo>(CLenum from);
490 CLenum ToCLenum(SamplerInfo from);
491 std::ostream &operator<<(std::ostream &os, SamplerInfo value);
492 
493 }  // namespace cl
494 
495 #endif  // COMMON_PACKEDCLENUMS_AUTOGEN_H_
496