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