Path: blob/main_old/src/common/PackedCLEnums_autogen.cpp
1693 views
// GENERATED FILE - DO NOT EDIT.1// Generated by gen_packed_gl_enums.py using data from packed_cl_enums.json.2//3// Copyright 2017 The ANGLE Project Authors. All rights reserved.4// Use of this source code is governed by a BSD-style license that can be5// found in the LICENSE file.6//7// PackedCLEnums_autogen.cpp:8// Implements ANGLE-specific enums classes for CLenums and functions operating9// on them.1011#include "common/PackedCLEnums_autogen.h"12#include "common/debug.h"1314namespace cl15{1617template <>18AddressingMode FromCLenum<AddressingMode>(CLenum from)19{20switch (from)21{22case CL_ADDRESS_NONE:23return AddressingMode::None;24case CL_ADDRESS_CLAMP_TO_EDGE:25return AddressingMode::ClampToEdge;26case CL_ADDRESS_CLAMP:27return AddressingMode::Clamp;28case CL_ADDRESS_REPEAT:29return AddressingMode::Repeat;30case CL_ADDRESS_MIRRORED_REPEAT:31return AddressingMode::MirroredRepeat;32default:33return AddressingMode::InvalidEnum;34}35}3637CLenum ToCLenum(AddressingMode from)38{39switch (from)40{41case AddressingMode::None:42return CL_ADDRESS_NONE;43case AddressingMode::ClampToEdge:44return CL_ADDRESS_CLAMP_TO_EDGE;45case AddressingMode::Clamp:46return CL_ADDRESS_CLAMP;47case AddressingMode::Repeat:48return CL_ADDRESS_REPEAT;49case AddressingMode::MirroredRepeat:50return CL_ADDRESS_MIRRORED_REPEAT;51default:52UNREACHABLE();53return 0;54}55}5657std::ostream &operator<<(std::ostream &os, AddressingMode value)58{59switch (value)60{61case AddressingMode::None:62os << "CL_ADDRESS_NONE";63break;64case AddressingMode::ClampToEdge:65os << "CL_ADDRESS_CLAMP_TO_EDGE";66break;67case AddressingMode::Clamp:68os << "CL_ADDRESS_CLAMP";69break;70case AddressingMode::Repeat:71os << "CL_ADDRESS_REPEAT";72break;73case AddressingMode::MirroredRepeat:74os << "CL_ADDRESS_MIRRORED_REPEAT";75break;76default:77os << "GL_INVALID_ENUM";78break;79}80return os;81}8283template <>84CommandQueueInfo FromCLenum<CommandQueueInfo>(CLenum from)85{86switch (from)87{88case CL_QUEUE_CONTEXT:89return CommandQueueInfo::Context;90case CL_QUEUE_DEVICE:91return CommandQueueInfo::Device;92case CL_QUEUE_REFERENCE_COUNT:93return CommandQueueInfo::ReferenceCount;94case CL_QUEUE_PROPERTIES:95return CommandQueueInfo::Properties;96case CL_QUEUE_SIZE:97return CommandQueueInfo::Size;98case CL_QUEUE_DEVICE_DEFAULT:99return CommandQueueInfo::DeviceDefault;100case CL_QUEUE_PROPERTIES_ARRAY:101return CommandQueueInfo::PropertiesArray;102default:103return CommandQueueInfo::InvalidEnum;104}105}106107CLenum ToCLenum(CommandQueueInfo from)108{109switch (from)110{111case CommandQueueInfo::Context:112return CL_QUEUE_CONTEXT;113case CommandQueueInfo::Device:114return CL_QUEUE_DEVICE;115case CommandQueueInfo::ReferenceCount:116return CL_QUEUE_REFERENCE_COUNT;117case CommandQueueInfo::Properties:118return CL_QUEUE_PROPERTIES;119case CommandQueueInfo::Size:120return CL_QUEUE_SIZE;121case CommandQueueInfo::DeviceDefault:122return CL_QUEUE_DEVICE_DEFAULT;123case CommandQueueInfo::PropertiesArray:124return CL_QUEUE_PROPERTIES_ARRAY;125default:126UNREACHABLE();127return 0;128}129}130131std::ostream &operator<<(std::ostream &os, CommandQueueInfo value)132{133switch (value)134{135case CommandQueueInfo::Context:136os << "CL_QUEUE_CONTEXT";137break;138case CommandQueueInfo::Device:139os << "CL_QUEUE_DEVICE";140break;141case CommandQueueInfo::ReferenceCount:142os << "CL_QUEUE_REFERENCE_COUNT";143break;144case CommandQueueInfo::Properties:145os << "CL_QUEUE_PROPERTIES";146break;147case CommandQueueInfo::Size:148os << "CL_QUEUE_SIZE";149break;150case CommandQueueInfo::DeviceDefault:151os << "CL_QUEUE_DEVICE_DEFAULT";152break;153case CommandQueueInfo::PropertiesArray:154os << "CL_QUEUE_PROPERTIES_ARRAY";155break;156default:157os << "GL_INVALID_ENUM";158break;159}160return os;161}162163template <>164ContextInfo FromCLenum<ContextInfo>(CLenum from)165{166switch (from)167{168case CL_CONTEXT_REFERENCE_COUNT:169return ContextInfo::ReferenceCount;170case CL_CONTEXT_DEVICES:171return ContextInfo::Devices;172case CL_CONTEXT_PROPERTIES:173return ContextInfo::Properties;174case CL_CONTEXT_NUM_DEVICES:175return ContextInfo::NumDevices;176default:177return ContextInfo::InvalidEnum;178}179}180181CLenum ToCLenum(ContextInfo from)182{183switch (from)184{185case ContextInfo::ReferenceCount:186return CL_CONTEXT_REFERENCE_COUNT;187case ContextInfo::Devices:188return CL_CONTEXT_DEVICES;189case ContextInfo::Properties:190return CL_CONTEXT_PROPERTIES;191case ContextInfo::NumDevices:192return CL_CONTEXT_NUM_DEVICES;193default:194UNREACHABLE();195return 0;196}197}198199std::ostream &operator<<(std::ostream &os, ContextInfo value)200{201switch (value)202{203case ContextInfo::ReferenceCount:204os << "CL_CONTEXT_REFERENCE_COUNT";205break;206case ContextInfo::Devices:207os << "CL_CONTEXT_DEVICES";208break;209case ContextInfo::Properties:210os << "CL_CONTEXT_PROPERTIES";211break;212case ContextInfo::NumDevices:213os << "CL_CONTEXT_NUM_DEVICES";214break;215default:216os << "GL_INVALID_ENUM";217break;218}219return os;220}221222template <>223DeviceInfo FromCLenum<DeviceInfo>(CLenum from)224{225switch (from)226{227case CL_DEVICE_TYPE:228return DeviceInfo::Type;229case CL_DEVICE_VENDOR_ID:230return DeviceInfo::VendorID;231case CL_DEVICE_MAX_COMPUTE_UNITS:232return DeviceInfo::MaxComputeUnits;233case CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:234return DeviceInfo::MaxWorkItemDimensions;235case CL_DEVICE_MAX_WORK_GROUP_SIZE:236return DeviceInfo::MaxWorkGroupSize;237case CL_DEVICE_MAX_WORK_ITEM_SIZES:238return DeviceInfo::MaxWorkItemSizes;239case CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR:240return DeviceInfo::PreferredVectorWidthChar;241case CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT:242return DeviceInfo::PreferredVectorWidthShort;243case CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT:244return DeviceInfo::PreferredVectorWidthInt;245case CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG:246return DeviceInfo::PreferredVectorWidthLong;247case CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT:248return DeviceInfo::PreferredVectorWidthFloat;249case CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE:250return DeviceInfo::PreferredVectorWidthDouble;251case CL_DEVICE_MAX_CLOCK_FREQUENCY:252return DeviceInfo::MaxClockFrequency;253case CL_DEVICE_ADDRESS_BITS:254return DeviceInfo::AddressBits;255case CL_DEVICE_MAX_READ_IMAGE_ARGS:256return DeviceInfo::MaxReadImageArgs;257case CL_DEVICE_MAX_WRITE_IMAGE_ARGS:258return DeviceInfo::MaxWriteImageArgs;259case CL_DEVICE_MAX_MEM_ALLOC_SIZE:260return DeviceInfo::MaxMemAllocSize;261case CL_DEVICE_IMAGE2D_MAX_WIDTH:262return DeviceInfo::Image2D_MaxWidth;263case CL_DEVICE_IMAGE2D_MAX_HEIGHT:264return DeviceInfo::Image2D_MaxHeight;265case CL_DEVICE_IMAGE3D_MAX_WIDTH:266return DeviceInfo::Image3D_MaxWidth;267case CL_DEVICE_IMAGE3D_MAX_HEIGHT:268return DeviceInfo::Image3D_MaxHeight;269case CL_DEVICE_IMAGE3D_MAX_DEPTH:270return DeviceInfo::Image3D_MaxDepth;271case CL_DEVICE_IMAGE_SUPPORT:272return DeviceInfo::ImageSupport;273case CL_DEVICE_MAX_PARAMETER_SIZE:274return DeviceInfo::MaxParameterSize;275case CL_DEVICE_MAX_SAMPLERS:276return DeviceInfo::MaxSamplers;277case CL_DEVICE_MEM_BASE_ADDR_ALIGN:278return DeviceInfo::MemBaseAddrAlign;279case CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE:280return DeviceInfo::MinDataTypeAlignSize;281case CL_DEVICE_SINGLE_FP_CONFIG:282return DeviceInfo::SingleFpConfig;283case CL_DEVICE_GLOBAL_MEM_CACHE_TYPE:284return DeviceInfo::GlobalMemCacheType;285case CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE:286return DeviceInfo::GlobalMemCachelineSize;287case CL_DEVICE_GLOBAL_MEM_CACHE_SIZE:288return DeviceInfo::GlobalMemCacheSize;289case CL_DEVICE_GLOBAL_MEM_SIZE:290return DeviceInfo::GlobalMemSize;291case CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:292return DeviceInfo::MaxConstantBufferSize;293case CL_DEVICE_MAX_CONSTANT_ARGS:294return DeviceInfo::MaxConstantArgs;295case CL_DEVICE_LOCAL_MEM_TYPE:296return DeviceInfo::LocalMemType;297case CL_DEVICE_LOCAL_MEM_SIZE:298return DeviceInfo::LocalMemSize;299case CL_DEVICE_ERROR_CORRECTION_SUPPORT:300return DeviceInfo::ErrorCorrectionSupport;301case CL_DEVICE_PROFILING_TIMER_RESOLUTION:302return DeviceInfo::ProfilingTimerResolution;303case CL_DEVICE_ENDIAN_LITTLE:304return DeviceInfo::EndianLittle;305case CL_DEVICE_AVAILABLE:306return DeviceInfo::Available;307case CL_DEVICE_COMPILER_AVAILABLE:308return DeviceInfo::CompilerAvailable;309case CL_DEVICE_EXECUTION_CAPABILITIES:310return DeviceInfo::ExecutionCapabilities;311case CL_DEVICE_QUEUE_ON_HOST_PROPERTIES:312return DeviceInfo::QueueOnHostProperties;313case CL_DEVICE_NAME:314return DeviceInfo::Name;315case CL_DEVICE_VENDOR:316return DeviceInfo::Vendor;317case CL_DRIVER_VERSION:318return DeviceInfo::DriverVersion;319case CL_DEVICE_PROFILE:320return DeviceInfo::Profile;321case CL_DEVICE_VERSION:322return DeviceInfo::Version;323case CL_DEVICE_EXTENSIONS:324return DeviceInfo::Extensions;325case CL_DEVICE_PLATFORM:326return DeviceInfo::Platform;327case CL_DEVICE_DOUBLE_FP_CONFIG:328return DeviceInfo::DoubleFpConfig;329case CL_DEVICE_HALF_FP_CONFIG:330return DeviceInfo::HalfFpConfig;331case CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF:332return DeviceInfo::PreferredVectorWidthHalf;333case CL_DEVICE_HOST_UNIFIED_MEMORY:334return DeviceInfo::HostUnifiedMemory;335case CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR:336return DeviceInfo::NativeVectorWidthChar;337case CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT:338return DeviceInfo::NativeVectorWidthShort;339case CL_DEVICE_NATIVE_VECTOR_WIDTH_INT:340return DeviceInfo::NativeVectorWidthInt;341case CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG:342return DeviceInfo::NativeVectorWidthLong;343case CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT:344return DeviceInfo::NativeVectorWidthFloat;345case CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE:346return DeviceInfo::NativeVectorWidthDouble;347case CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF:348return DeviceInfo::NativeVectorWidthHalf;349case CL_DEVICE_OPENCL_C_VERSION:350return DeviceInfo::OpenCL_C_Version;351case CL_DEVICE_LINKER_AVAILABLE:352return DeviceInfo::LinkerAvailable;353case CL_DEVICE_BUILT_IN_KERNELS:354return DeviceInfo::BuiltInKernels;355case CL_DEVICE_IMAGE_MAX_BUFFER_SIZE:356return DeviceInfo::ImageMaxBufferSize;357case CL_DEVICE_IMAGE_MAX_ARRAY_SIZE:358return DeviceInfo::ImageMaxArraySize;359case CL_DEVICE_PARENT_DEVICE:360return DeviceInfo::ParentDevice;361case CL_DEVICE_PARTITION_MAX_SUB_DEVICES:362return DeviceInfo::PartitionMaxSubDevices;363case CL_DEVICE_PARTITION_PROPERTIES:364return DeviceInfo::PartitionProperties;365case CL_DEVICE_PARTITION_AFFINITY_DOMAIN:366return DeviceInfo::PartitionAffinityDomain;367case CL_DEVICE_PARTITION_TYPE:368return DeviceInfo::PartitionType;369case CL_DEVICE_REFERENCE_COUNT:370return DeviceInfo::ReferenceCount;371case CL_DEVICE_PREFERRED_INTEROP_USER_SYNC:372return DeviceInfo::PreferredInteropUserSync;373case CL_DEVICE_PRINTF_BUFFER_SIZE:374return DeviceInfo::PrintfBufferSize;375case CL_DEVICE_IMAGE_PITCH_ALIGNMENT:376return DeviceInfo::ImagePitchAlignment;377case CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT:378return DeviceInfo::ImageBaseAddressAlignment;379case CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS:380return DeviceInfo::MaxReadWriteImageArgs;381case CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE:382return DeviceInfo::MaxGlobalVariableSize;383case CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES:384return DeviceInfo::QueueOnDeviceProperties;385case CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE:386return DeviceInfo::QueueOnDevicePreferredSize;387case CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE:388return DeviceInfo::QueueOnDeviceMaxSize;389case CL_DEVICE_MAX_ON_DEVICE_QUEUES:390return DeviceInfo::MaxOnDeviceQueues;391case CL_DEVICE_MAX_ON_DEVICE_EVENTS:392return DeviceInfo::MaxOnDeviceEvents;393case CL_DEVICE_SVM_CAPABILITIES:394return DeviceInfo::SVM_Capabilities;395case CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE:396return DeviceInfo::GlobalVariablePreferredTotalSize;397case CL_DEVICE_MAX_PIPE_ARGS:398return DeviceInfo::MaxPipeArgs;399case CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS:400return DeviceInfo::PipeMaxActiveReservations;401case CL_DEVICE_PIPE_MAX_PACKET_SIZE:402return DeviceInfo::PipeMaxPacketSize;403case CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT:404return DeviceInfo::PreferredPlatformAtomicAlignment;405case CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT:406return DeviceInfo::PreferredGlobalAtomicAlignment;407case CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT:408return DeviceInfo::PreferredLocalAtomicAlignment;409case CL_DEVICE_IL_VERSION:410return DeviceInfo::IL_Version;411case CL_DEVICE_MAX_NUM_SUB_GROUPS:412return DeviceInfo::MaxNumSubGroups;413case CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS:414return DeviceInfo::SubGroupIndependentForwardProgress;415case CL_DEVICE_NUMERIC_VERSION:416return DeviceInfo::NumericVersion;417case CL_DEVICE_EXTENSIONS_WITH_VERSION:418return DeviceInfo::ExtensionsWithVersion;419case CL_DEVICE_ILS_WITH_VERSION:420return DeviceInfo::ILsWithVersion;421case CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION:422return DeviceInfo::BuiltInKernelsWithVersion;423case CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES:424return DeviceInfo::AtomicMemoryCapabilities;425case CL_DEVICE_ATOMIC_FENCE_CAPABILITIES:426return DeviceInfo::AtomicFenceCapabilities;427case CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT:428return DeviceInfo::NonUniformWorkGroupSupport;429case CL_DEVICE_OPENCL_C_ALL_VERSIONS:430return DeviceInfo::OpenCL_C_AllVersions;431case CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE:432return DeviceInfo::PreferredWorkGroupSizeMultiple;433case CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT:434return DeviceInfo::WorkGroupCollectiveFunctionsSupport;435case CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT:436return DeviceInfo::GenericAddressSpaceSupport;437case CL_DEVICE_OPENCL_C_FEATURES:438return DeviceInfo::OpenCL_C_Features;439case CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES:440return DeviceInfo::DeviceEnqueueCapabilities;441case CL_DEVICE_PIPE_SUPPORT:442return DeviceInfo::PipeSupport;443case CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED:444return DeviceInfo::LatestConformanceVersionPassed;445default:446return DeviceInfo::InvalidEnum;447}448}449450CLenum ToCLenum(DeviceInfo from)451{452switch (from)453{454case DeviceInfo::Type:455return CL_DEVICE_TYPE;456case DeviceInfo::VendorID:457return CL_DEVICE_VENDOR_ID;458case DeviceInfo::MaxComputeUnits:459return CL_DEVICE_MAX_COMPUTE_UNITS;460case DeviceInfo::MaxWorkItemDimensions:461return CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS;462case DeviceInfo::MaxWorkGroupSize:463return CL_DEVICE_MAX_WORK_GROUP_SIZE;464case DeviceInfo::MaxWorkItemSizes:465return CL_DEVICE_MAX_WORK_ITEM_SIZES;466case DeviceInfo::PreferredVectorWidthChar:467return CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR;468case DeviceInfo::PreferredVectorWidthShort:469return CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT;470case DeviceInfo::PreferredVectorWidthInt:471return CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT;472case DeviceInfo::PreferredVectorWidthLong:473return CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG;474case DeviceInfo::PreferredVectorWidthFloat:475return CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT;476case DeviceInfo::PreferredVectorWidthDouble:477return CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE;478case DeviceInfo::MaxClockFrequency:479return CL_DEVICE_MAX_CLOCK_FREQUENCY;480case DeviceInfo::AddressBits:481return CL_DEVICE_ADDRESS_BITS;482case DeviceInfo::MaxReadImageArgs:483return CL_DEVICE_MAX_READ_IMAGE_ARGS;484case DeviceInfo::MaxWriteImageArgs:485return CL_DEVICE_MAX_WRITE_IMAGE_ARGS;486case DeviceInfo::MaxMemAllocSize:487return CL_DEVICE_MAX_MEM_ALLOC_SIZE;488case DeviceInfo::Image2D_MaxWidth:489return CL_DEVICE_IMAGE2D_MAX_WIDTH;490case DeviceInfo::Image2D_MaxHeight:491return CL_DEVICE_IMAGE2D_MAX_HEIGHT;492case DeviceInfo::Image3D_MaxWidth:493return CL_DEVICE_IMAGE3D_MAX_WIDTH;494case DeviceInfo::Image3D_MaxHeight:495return CL_DEVICE_IMAGE3D_MAX_HEIGHT;496case DeviceInfo::Image3D_MaxDepth:497return CL_DEVICE_IMAGE3D_MAX_DEPTH;498case DeviceInfo::ImageSupport:499return CL_DEVICE_IMAGE_SUPPORT;500case DeviceInfo::MaxParameterSize:501return CL_DEVICE_MAX_PARAMETER_SIZE;502case DeviceInfo::MaxSamplers:503return CL_DEVICE_MAX_SAMPLERS;504case DeviceInfo::MemBaseAddrAlign:505return CL_DEVICE_MEM_BASE_ADDR_ALIGN;506case DeviceInfo::MinDataTypeAlignSize:507return CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE;508case DeviceInfo::SingleFpConfig:509return CL_DEVICE_SINGLE_FP_CONFIG;510case DeviceInfo::GlobalMemCacheType:511return CL_DEVICE_GLOBAL_MEM_CACHE_TYPE;512case DeviceInfo::GlobalMemCachelineSize:513return CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE;514case DeviceInfo::GlobalMemCacheSize:515return CL_DEVICE_GLOBAL_MEM_CACHE_SIZE;516case DeviceInfo::GlobalMemSize:517return CL_DEVICE_GLOBAL_MEM_SIZE;518case DeviceInfo::MaxConstantBufferSize:519return CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE;520case DeviceInfo::MaxConstantArgs:521return CL_DEVICE_MAX_CONSTANT_ARGS;522case DeviceInfo::LocalMemType:523return CL_DEVICE_LOCAL_MEM_TYPE;524case DeviceInfo::LocalMemSize:525return CL_DEVICE_LOCAL_MEM_SIZE;526case DeviceInfo::ErrorCorrectionSupport:527return CL_DEVICE_ERROR_CORRECTION_SUPPORT;528case DeviceInfo::ProfilingTimerResolution:529return CL_DEVICE_PROFILING_TIMER_RESOLUTION;530case DeviceInfo::EndianLittle:531return CL_DEVICE_ENDIAN_LITTLE;532case DeviceInfo::Available:533return CL_DEVICE_AVAILABLE;534case DeviceInfo::CompilerAvailable:535return CL_DEVICE_COMPILER_AVAILABLE;536case DeviceInfo::ExecutionCapabilities:537return CL_DEVICE_EXECUTION_CAPABILITIES;538case DeviceInfo::QueueOnHostProperties:539return CL_DEVICE_QUEUE_ON_HOST_PROPERTIES;540case DeviceInfo::Name:541return CL_DEVICE_NAME;542case DeviceInfo::Vendor:543return CL_DEVICE_VENDOR;544case DeviceInfo::DriverVersion:545return CL_DRIVER_VERSION;546case DeviceInfo::Profile:547return CL_DEVICE_PROFILE;548case DeviceInfo::Version:549return CL_DEVICE_VERSION;550case DeviceInfo::Extensions:551return CL_DEVICE_EXTENSIONS;552case DeviceInfo::Platform:553return CL_DEVICE_PLATFORM;554case DeviceInfo::DoubleFpConfig:555return CL_DEVICE_DOUBLE_FP_CONFIG;556case DeviceInfo::HalfFpConfig:557return CL_DEVICE_HALF_FP_CONFIG;558case DeviceInfo::PreferredVectorWidthHalf:559return CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF;560case DeviceInfo::HostUnifiedMemory:561return CL_DEVICE_HOST_UNIFIED_MEMORY;562case DeviceInfo::NativeVectorWidthChar:563return CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR;564case DeviceInfo::NativeVectorWidthShort:565return CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT;566case DeviceInfo::NativeVectorWidthInt:567return CL_DEVICE_NATIVE_VECTOR_WIDTH_INT;568case DeviceInfo::NativeVectorWidthLong:569return CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG;570case DeviceInfo::NativeVectorWidthFloat:571return CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT;572case DeviceInfo::NativeVectorWidthDouble:573return CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE;574case DeviceInfo::NativeVectorWidthHalf:575return CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF;576case DeviceInfo::OpenCL_C_Version:577return CL_DEVICE_OPENCL_C_VERSION;578case DeviceInfo::LinkerAvailable:579return CL_DEVICE_LINKER_AVAILABLE;580case DeviceInfo::BuiltInKernels:581return CL_DEVICE_BUILT_IN_KERNELS;582case DeviceInfo::ImageMaxBufferSize:583return CL_DEVICE_IMAGE_MAX_BUFFER_SIZE;584case DeviceInfo::ImageMaxArraySize:585return CL_DEVICE_IMAGE_MAX_ARRAY_SIZE;586case DeviceInfo::ParentDevice:587return CL_DEVICE_PARENT_DEVICE;588case DeviceInfo::PartitionMaxSubDevices:589return CL_DEVICE_PARTITION_MAX_SUB_DEVICES;590case DeviceInfo::PartitionProperties:591return CL_DEVICE_PARTITION_PROPERTIES;592case DeviceInfo::PartitionAffinityDomain:593return CL_DEVICE_PARTITION_AFFINITY_DOMAIN;594case DeviceInfo::PartitionType:595return CL_DEVICE_PARTITION_TYPE;596case DeviceInfo::ReferenceCount:597return CL_DEVICE_REFERENCE_COUNT;598case DeviceInfo::PreferredInteropUserSync:599return CL_DEVICE_PREFERRED_INTEROP_USER_SYNC;600case DeviceInfo::PrintfBufferSize:601return CL_DEVICE_PRINTF_BUFFER_SIZE;602case DeviceInfo::ImagePitchAlignment:603return CL_DEVICE_IMAGE_PITCH_ALIGNMENT;604case DeviceInfo::ImageBaseAddressAlignment:605return CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT;606case DeviceInfo::MaxReadWriteImageArgs:607return CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS;608case DeviceInfo::MaxGlobalVariableSize:609return CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE;610case DeviceInfo::QueueOnDeviceProperties:611return CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES;612case DeviceInfo::QueueOnDevicePreferredSize:613return CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE;614case DeviceInfo::QueueOnDeviceMaxSize:615return CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE;616case DeviceInfo::MaxOnDeviceQueues:617return CL_DEVICE_MAX_ON_DEVICE_QUEUES;618case DeviceInfo::MaxOnDeviceEvents:619return CL_DEVICE_MAX_ON_DEVICE_EVENTS;620case DeviceInfo::SVM_Capabilities:621return CL_DEVICE_SVM_CAPABILITIES;622case DeviceInfo::GlobalVariablePreferredTotalSize:623return CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE;624case DeviceInfo::MaxPipeArgs:625return CL_DEVICE_MAX_PIPE_ARGS;626case DeviceInfo::PipeMaxActiveReservations:627return CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS;628case DeviceInfo::PipeMaxPacketSize:629return CL_DEVICE_PIPE_MAX_PACKET_SIZE;630case DeviceInfo::PreferredPlatformAtomicAlignment:631return CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT;632case DeviceInfo::PreferredGlobalAtomicAlignment:633return CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT;634case DeviceInfo::PreferredLocalAtomicAlignment:635return CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT;636case DeviceInfo::IL_Version:637return CL_DEVICE_IL_VERSION;638case DeviceInfo::MaxNumSubGroups:639return CL_DEVICE_MAX_NUM_SUB_GROUPS;640case DeviceInfo::SubGroupIndependentForwardProgress:641return CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS;642case DeviceInfo::NumericVersion:643return CL_DEVICE_NUMERIC_VERSION;644case DeviceInfo::ExtensionsWithVersion:645return CL_DEVICE_EXTENSIONS_WITH_VERSION;646case DeviceInfo::ILsWithVersion:647return CL_DEVICE_ILS_WITH_VERSION;648case DeviceInfo::BuiltInKernelsWithVersion:649return CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION;650case DeviceInfo::AtomicMemoryCapabilities:651return CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES;652case DeviceInfo::AtomicFenceCapabilities:653return CL_DEVICE_ATOMIC_FENCE_CAPABILITIES;654case DeviceInfo::NonUniformWorkGroupSupport:655return CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT;656case DeviceInfo::OpenCL_C_AllVersions:657return CL_DEVICE_OPENCL_C_ALL_VERSIONS;658case DeviceInfo::PreferredWorkGroupSizeMultiple:659return CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE;660case DeviceInfo::WorkGroupCollectiveFunctionsSupport:661return CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT;662case DeviceInfo::GenericAddressSpaceSupport:663return CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT;664case DeviceInfo::OpenCL_C_Features:665return CL_DEVICE_OPENCL_C_FEATURES;666case DeviceInfo::DeviceEnqueueCapabilities:667return CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES;668case DeviceInfo::PipeSupport:669return CL_DEVICE_PIPE_SUPPORT;670case DeviceInfo::LatestConformanceVersionPassed:671return CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED;672default:673UNREACHABLE();674return 0;675}676}677678std::ostream &operator<<(std::ostream &os, DeviceInfo value)679{680switch (value)681{682case DeviceInfo::Type:683os << "CL_DEVICE_TYPE";684break;685case DeviceInfo::VendorID:686os << "CL_DEVICE_VENDOR_ID";687break;688case DeviceInfo::MaxComputeUnits:689os << "CL_DEVICE_MAX_COMPUTE_UNITS";690break;691case DeviceInfo::MaxWorkItemDimensions:692os << "CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS";693break;694case DeviceInfo::MaxWorkGroupSize:695os << "CL_DEVICE_MAX_WORK_GROUP_SIZE";696break;697case DeviceInfo::MaxWorkItemSizes:698os << "CL_DEVICE_MAX_WORK_ITEM_SIZES";699break;700case DeviceInfo::PreferredVectorWidthChar:701os << "CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR";702break;703case DeviceInfo::PreferredVectorWidthShort:704os << "CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT";705break;706case DeviceInfo::PreferredVectorWidthInt:707os << "CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT";708break;709case DeviceInfo::PreferredVectorWidthLong:710os << "CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG";711break;712case DeviceInfo::PreferredVectorWidthFloat:713os << "CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT";714break;715case DeviceInfo::PreferredVectorWidthDouble:716os << "CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE";717break;718case DeviceInfo::MaxClockFrequency:719os << "CL_DEVICE_MAX_CLOCK_FREQUENCY";720break;721case DeviceInfo::AddressBits:722os << "CL_DEVICE_ADDRESS_BITS";723break;724case DeviceInfo::MaxReadImageArgs:725os << "CL_DEVICE_MAX_READ_IMAGE_ARGS";726break;727case DeviceInfo::MaxWriteImageArgs:728os << "CL_DEVICE_MAX_WRITE_IMAGE_ARGS";729break;730case DeviceInfo::MaxMemAllocSize:731os << "CL_DEVICE_MAX_MEM_ALLOC_SIZE";732break;733case DeviceInfo::Image2D_MaxWidth:734os << "CL_DEVICE_IMAGE2D_MAX_WIDTH";735break;736case DeviceInfo::Image2D_MaxHeight:737os << "CL_DEVICE_IMAGE2D_MAX_HEIGHT";738break;739case DeviceInfo::Image3D_MaxWidth:740os << "CL_DEVICE_IMAGE3D_MAX_WIDTH";741break;742case DeviceInfo::Image3D_MaxHeight:743os << "CL_DEVICE_IMAGE3D_MAX_HEIGHT";744break;745case DeviceInfo::Image3D_MaxDepth:746os << "CL_DEVICE_IMAGE3D_MAX_DEPTH";747break;748case DeviceInfo::ImageSupport:749os << "CL_DEVICE_IMAGE_SUPPORT";750break;751case DeviceInfo::MaxParameterSize:752os << "CL_DEVICE_MAX_PARAMETER_SIZE";753break;754case DeviceInfo::MaxSamplers:755os << "CL_DEVICE_MAX_SAMPLERS";756break;757case DeviceInfo::MemBaseAddrAlign:758os << "CL_DEVICE_MEM_BASE_ADDR_ALIGN";759break;760case DeviceInfo::MinDataTypeAlignSize:761os << "CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE";762break;763case DeviceInfo::SingleFpConfig:764os << "CL_DEVICE_SINGLE_FP_CONFIG";765break;766case DeviceInfo::GlobalMemCacheType:767os << "CL_DEVICE_GLOBAL_MEM_CACHE_TYPE";768break;769case DeviceInfo::GlobalMemCachelineSize:770os << "CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE";771break;772case DeviceInfo::GlobalMemCacheSize:773os << "CL_DEVICE_GLOBAL_MEM_CACHE_SIZE";774break;775case DeviceInfo::GlobalMemSize:776os << "CL_DEVICE_GLOBAL_MEM_SIZE";777break;778case DeviceInfo::MaxConstantBufferSize:779os << "CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE";780break;781case DeviceInfo::MaxConstantArgs:782os << "CL_DEVICE_MAX_CONSTANT_ARGS";783break;784case DeviceInfo::LocalMemType:785os << "CL_DEVICE_LOCAL_MEM_TYPE";786break;787case DeviceInfo::LocalMemSize:788os << "CL_DEVICE_LOCAL_MEM_SIZE";789break;790case DeviceInfo::ErrorCorrectionSupport:791os << "CL_DEVICE_ERROR_CORRECTION_SUPPORT";792break;793case DeviceInfo::ProfilingTimerResolution:794os << "CL_DEVICE_PROFILING_TIMER_RESOLUTION";795break;796case DeviceInfo::EndianLittle:797os << "CL_DEVICE_ENDIAN_LITTLE";798break;799case DeviceInfo::Available:800os << "CL_DEVICE_AVAILABLE";801break;802case DeviceInfo::CompilerAvailable:803os << "CL_DEVICE_COMPILER_AVAILABLE";804break;805case DeviceInfo::ExecutionCapabilities:806os << "CL_DEVICE_EXECUTION_CAPABILITIES";807break;808case DeviceInfo::QueueOnHostProperties:809os << "CL_DEVICE_QUEUE_ON_HOST_PROPERTIES";810break;811case DeviceInfo::Name:812os << "CL_DEVICE_NAME";813break;814case DeviceInfo::Vendor:815os << "CL_DEVICE_VENDOR";816break;817case DeviceInfo::DriverVersion:818os << "CL_DRIVER_VERSION";819break;820case DeviceInfo::Profile:821os << "CL_DEVICE_PROFILE";822break;823case DeviceInfo::Version:824os << "CL_DEVICE_VERSION";825break;826case DeviceInfo::Extensions:827os << "CL_DEVICE_EXTENSIONS";828break;829case DeviceInfo::Platform:830os << "CL_DEVICE_PLATFORM";831break;832case DeviceInfo::DoubleFpConfig:833os << "CL_DEVICE_DOUBLE_FP_CONFIG";834break;835case DeviceInfo::HalfFpConfig:836os << "CL_DEVICE_HALF_FP_CONFIG";837break;838case DeviceInfo::PreferredVectorWidthHalf:839os << "CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF";840break;841case DeviceInfo::HostUnifiedMemory:842os << "CL_DEVICE_HOST_UNIFIED_MEMORY";843break;844case DeviceInfo::NativeVectorWidthChar:845os << "CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR";846break;847case DeviceInfo::NativeVectorWidthShort:848os << "CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT";849break;850case DeviceInfo::NativeVectorWidthInt:851os << "CL_DEVICE_NATIVE_VECTOR_WIDTH_INT";852break;853case DeviceInfo::NativeVectorWidthLong:854os << "CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG";855break;856case DeviceInfo::NativeVectorWidthFloat:857os << "CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT";858break;859case DeviceInfo::NativeVectorWidthDouble:860os << "CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE";861break;862case DeviceInfo::NativeVectorWidthHalf:863os << "CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF";864break;865case DeviceInfo::OpenCL_C_Version:866os << "CL_DEVICE_OPENCL_C_VERSION";867break;868case DeviceInfo::LinkerAvailable:869os << "CL_DEVICE_LINKER_AVAILABLE";870break;871case DeviceInfo::BuiltInKernels:872os << "CL_DEVICE_BUILT_IN_KERNELS";873break;874case DeviceInfo::ImageMaxBufferSize:875os << "CL_DEVICE_IMAGE_MAX_BUFFER_SIZE";876break;877case DeviceInfo::ImageMaxArraySize:878os << "CL_DEVICE_IMAGE_MAX_ARRAY_SIZE";879break;880case DeviceInfo::ParentDevice:881os << "CL_DEVICE_PARENT_DEVICE";882break;883case DeviceInfo::PartitionMaxSubDevices:884os << "CL_DEVICE_PARTITION_MAX_SUB_DEVICES";885break;886case DeviceInfo::PartitionProperties:887os << "CL_DEVICE_PARTITION_PROPERTIES";888break;889case DeviceInfo::PartitionAffinityDomain:890os << "CL_DEVICE_PARTITION_AFFINITY_DOMAIN";891break;892case DeviceInfo::PartitionType:893os << "CL_DEVICE_PARTITION_TYPE";894break;895case DeviceInfo::ReferenceCount:896os << "CL_DEVICE_REFERENCE_COUNT";897break;898case DeviceInfo::PreferredInteropUserSync:899os << "CL_DEVICE_PREFERRED_INTEROP_USER_SYNC";900break;901case DeviceInfo::PrintfBufferSize:902os << "CL_DEVICE_PRINTF_BUFFER_SIZE";903break;904case DeviceInfo::ImagePitchAlignment:905os << "CL_DEVICE_IMAGE_PITCH_ALIGNMENT";906break;907case DeviceInfo::ImageBaseAddressAlignment:908os << "CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT";909break;910case DeviceInfo::MaxReadWriteImageArgs:911os << "CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS";912break;913case DeviceInfo::MaxGlobalVariableSize:914os << "CL_DEVICE_MAX_GLOBAL_VARIABLE_SIZE";915break;916case DeviceInfo::QueueOnDeviceProperties:917os << "CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES";918break;919case DeviceInfo::QueueOnDevicePreferredSize:920os << "CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE";921break;922case DeviceInfo::QueueOnDeviceMaxSize:923os << "CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE";924break;925case DeviceInfo::MaxOnDeviceQueues:926os << "CL_DEVICE_MAX_ON_DEVICE_QUEUES";927break;928case DeviceInfo::MaxOnDeviceEvents:929os << "CL_DEVICE_MAX_ON_DEVICE_EVENTS";930break;931case DeviceInfo::SVM_Capabilities:932os << "CL_DEVICE_SVM_CAPABILITIES";933break;934case DeviceInfo::GlobalVariablePreferredTotalSize:935os << "CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE";936break;937case DeviceInfo::MaxPipeArgs:938os << "CL_DEVICE_MAX_PIPE_ARGS";939break;940case DeviceInfo::PipeMaxActiveReservations:941os << "CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS";942break;943case DeviceInfo::PipeMaxPacketSize:944os << "CL_DEVICE_PIPE_MAX_PACKET_SIZE";945break;946case DeviceInfo::PreferredPlatformAtomicAlignment:947os << "CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT";948break;949case DeviceInfo::PreferredGlobalAtomicAlignment:950os << "CL_DEVICE_PREFERRED_GLOBAL_ATOMIC_ALIGNMENT";951break;952case DeviceInfo::PreferredLocalAtomicAlignment:953os << "CL_DEVICE_PREFERRED_LOCAL_ATOMIC_ALIGNMENT";954break;955case DeviceInfo::IL_Version:956os << "CL_DEVICE_IL_VERSION";957break;958case DeviceInfo::MaxNumSubGroups:959os << "CL_DEVICE_MAX_NUM_SUB_GROUPS";960break;961case DeviceInfo::SubGroupIndependentForwardProgress:962os << "CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS";963break;964case DeviceInfo::NumericVersion:965os << "CL_DEVICE_NUMERIC_VERSION";966break;967case DeviceInfo::ExtensionsWithVersion:968os << "CL_DEVICE_EXTENSIONS_WITH_VERSION";969break;970case DeviceInfo::ILsWithVersion:971os << "CL_DEVICE_ILS_WITH_VERSION";972break;973case DeviceInfo::BuiltInKernelsWithVersion:974os << "CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION";975break;976case DeviceInfo::AtomicMemoryCapabilities:977os << "CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES";978break;979case DeviceInfo::AtomicFenceCapabilities:980os << "CL_DEVICE_ATOMIC_FENCE_CAPABILITIES";981break;982case DeviceInfo::NonUniformWorkGroupSupport:983os << "CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT";984break;985case DeviceInfo::OpenCL_C_AllVersions:986os << "CL_DEVICE_OPENCL_C_ALL_VERSIONS";987break;988case DeviceInfo::PreferredWorkGroupSizeMultiple:989os << "CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_MULTIPLE";990break;991case DeviceInfo::WorkGroupCollectiveFunctionsSupport:992os << "CL_DEVICE_WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT";993break;994case DeviceInfo::GenericAddressSpaceSupport:995os << "CL_DEVICE_GENERIC_ADDRESS_SPACE_SUPPORT";996break;997case DeviceInfo::OpenCL_C_Features:998os << "CL_DEVICE_OPENCL_C_FEATURES";999break;1000case DeviceInfo::DeviceEnqueueCapabilities:1001os << "CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES";1002break;1003case DeviceInfo::PipeSupport:1004os << "CL_DEVICE_PIPE_SUPPORT";1005break;1006case DeviceInfo::LatestConformanceVersionPassed:1007os << "CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED";1008break;1009default:1010os << "GL_INVALID_ENUM";1011break;1012}1013return os;1014}10151016template <>1017EventInfo FromCLenum<EventInfo>(CLenum from)1018{1019switch (from)1020{1021case CL_EVENT_COMMAND_QUEUE:1022return EventInfo::CommandQueue;1023case CL_EVENT_COMMAND_TYPE:1024return EventInfo::CommandType;1025case CL_EVENT_REFERENCE_COUNT:1026return EventInfo::ReferenceCount;1027case CL_EVENT_COMMAND_EXECUTION_STATUS:1028return EventInfo::CommandExecutionStatus;1029case CL_EVENT_CONTEXT:1030return EventInfo::Context;1031default:1032return EventInfo::InvalidEnum;1033}1034}10351036CLenum ToCLenum(EventInfo from)1037{1038switch (from)1039{1040case EventInfo::CommandQueue:1041return CL_EVENT_COMMAND_QUEUE;1042case EventInfo::CommandType:1043return CL_EVENT_COMMAND_TYPE;1044case EventInfo::ReferenceCount:1045return CL_EVENT_REFERENCE_COUNT;1046case EventInfo::CommandExecutionStatus:1047return CL_EVENT_COMMAND_EXECUTION_STATUS;1048case EventInfo::Context:1049return CL_EVENT_CONTEXT;1050default:1051UNREACHABLE();1052return 0;1053}1054}10551056std::ostream &operator<<(std::ostream &os, EventInfo value)1057{1058switch (value)1059{1060case EventInfo::CommandQueue:1061os << "CL_EVENT_COMMAND_QUEUE";1062break;1063case EventInfo::CommandType:1064os << "CL_EVENT_COMMAND_TYPE";1065break;1066case EventInfo::ReferenceCount:1067os << "CL_EVENT_REFERENCE_COUNT";1068break;1069case EventInfo::CommandExecutionStatus:1070os << "CL_EVENT_COMMAND_EXECUTION_STATUS";1071break;1072case EventInfo::Context:1073os << "CL_EVENT_CONTEXT";1074break;1075default:1076os << "GL_INVALID_ENUM";1077break;1078}1079return os;1080}10811082template <>1083FilterMode FromCLenum<FilterMode>(CLenum from)1084{1085switch (from)1086{1087case CL_FILTER_NEAREST:1088return FilterMode::Nearest;1089case CL_FILTER_LINEAR:1090return FilterMode::Linear;1091default:1092return FilterMode::InvalidEnum;1093}1094}10951096CLenum ToCLenum(FilterMode from)1097{1098switch (from)1099{1100case FilterMode::Nearest:1101return CL_FILTER_NEAREST;1102case FilterMode::Linear:1103return CL_FILTER_LINEAR;1104default:1105UNREACHABLE();1106return 0;1107}1108}11091110std::ostream &operator<<(std::ostream &os, FilterMode value)1111{1112switch (value)1113{1114case FilterMode::Nearest:1115os << "CL_FILTER_NEAREST";1116break;1117case FilterMode::Linear:1118os << "CL_FILTER_LINEAR";1119break;1120default:1121os << "GL_INVALID_ENUM";1122break;1123}1124return os;1125}11261127template <>1128ImageInfo FromCLenum<ImageInfo>(CLenum from)1129{1130switch (from)1131{1132case CL_IMAGE_FORMAT:1133return ImageInfo::Format;1134case CL_IMAGE_ELEMENT_SIZE:1135return ImageInfo::ElementSize;1136case CL_IMAGE_ROW_PITCH:1137return ImageInfo::RowPitch;1138case CL_IMAGE_SLICE_PITCH:1139return ImageInfo::SlicePitch;1140case CL_IMAGE_WIDTH:1141return ImageInfo::Width;1142case CL_IMAGE_HEIGHT:1143return ImageInfo::Height;1144case CL_IMAGE_DEPTH:1145return ImageInfo::Depth;1146case CL_IMAGE_ARRAY_SIZE:1147return ImageInfo::ArraySize;1148case CL_IMAGE_BUFFER:1149return ImageInfo::Buffer;1150case CL_IMAGE_NUM_MIP_LEVELS:1151return ImageInfo::NumMipLevels;1152case CL_IMAGE_NUM_SAMPLES:1153return ImageInfo::NumSamples;1154default:1155return ImageInfo::InvalidEnum;1156}1157}11581159CLenum ToCLenum(ImageInfo from)1160{1161switch (from)1162{1163case ImageInfo::Format:1164return CL_IMAGE_FORMAT;1165case ImageInfo::ElementSize:1166return CL_IMAGE_ELEMENT_SIZE;1167case ImageInfo::RowPitch:1168return CL_IMAGE_ROW_PITCH;1169case ImageInfo::SlicePitch:1170return CL_IMAGE_SLICE_PITCH;1171case ImageInfo::Width:1172return CL_IMAGE_WIDTH;1173case ImageInfo::Height:1174return CL_IMAGE_HEIGHT;1175case ImageInfo::Depth:1176return CL_IMAGE_DEPTH;1177case ImageInfo::ArraySize:1178return CL_IMAGE_ARRAY_SIZE;1179case ImageInfo::Buffer:1180return CL_IMAGE_BUFFER;1181case ImageInfo::NumMipLevels:1182return CL_IMAGE_NUM_MIP_LEVELS;1183case ImageInfo::NumSamples:1184return CL_IMAGE_NUM_SAMPLES;1185default:1186UNREACHABLE();1187return 0;1188}1189}11901191std::ostream &operator<<(std::ostream &os, ImageInfo value)1192{1193switch (value)1194{1195case ImageInfo::Format:1196os << "CL_IMAGE_FORMAT";1197break;1198case ImageInfo::ElementSize:1199os << "CL_IMAGE_ELEMENT_SIZE";1200break;1201case ImageInfo::RowPitch:1202os << "CL_IMAGE_ROW_PITCH";1203break;1204case ImageInfo::SlicePitch:1205os << "CL_IMAGE_SLICE_PITCH";1206break;1207case ImageInfo::Width:1208os << "CL_IMAGE_WIDTH";1209break;1210case ImageInfo::Height:1211os << "CL_IMAGE_HEIGHT";1212break;1213case ImageInfo::Depth:1214os << "CL_IMAGE_DEPTH";1215break;1216case ImageInfo::ArraySize:1217os << "CL_IMAGE_ARRAY_SIZE";1218break;1219case ImageInfo::Buffer:1220os << "CL_IMAGE_BUFFER";1221break;1222case ImageInfo::NumMipLevels:1223os << "CL_IMAGE_NUM_MIP_LEVELS";1224break;1225case ImageInfo::NumSamples:1226os << "CL_IMAGE_NUM_SAMPLES";1227break;1228default:1229os << "GL_INVALID_ENUM";1230break;1231}1232return os;1233}12341235template <>1236KernelArgInfo FromCLenum<KernelArgInfo>(CLenum from)1237{1238switch (from)1239{1240case CL_KERNEL_ARG_ADDRESS_QUALIFIER:1241return KernelArgInfo::AddressQualifier;1242case CL_KERNEL_ARG_ACCESS_QUALIFIER:1243return KernelArgInfo::AccessQualifier;1244case CL_KERNEL_ARG_TYPE_NAME:1245return KernelArgInfo::TypeName;1246case CL_KERNEL_ARG_TYPE_QUALIFIER:1247return KernelArgInfo::TypeQualifier;1248case CL_KERNEL_ARG_NAME:1249return KernelArgInfo::Name;1250default:1251return KernelArgInfo::InvalidEnum;1252}1253}12541255CLenum ToCLenum(KernelArgInfo from)1256{1257switch (from)1258{1259case KernelArgInfo::AddressQualifier:1260return CL_KERNEL_ARG_ADDRESS_QUALIFIER;1261case KernelArgInfo::AccessQualifier:1262return CL_KERNEL_ARG_ACCESS_QUALIFIER;1263case KernelArgInfo::TypeName:1264return CL_KERNEL_ARG_TYPE_NAME;1265case KernelArgInfo::TypeQualifier:1266return CL_KERNEL_ARG_TYPE_QUALIFIER;1267case KernelArgInfo::Name:1268return CL_KERNEL_ARG_NAME;1269default:1270UNREACHABLE();1271return 0;1272}1273}12741275std::ostream &operator<<(std::ostream &os, KernelArgInfo value)1276{1277switch (value)1278{1279case KernelArgInfo::AddressQualifier:1280os << "CL_KERNEL_ARG_ADDRESS_QUALIFIER";1281break;1282case KernelArgInfo::AccessQualifier:1283os << "CL_KERNEL_ARG_ACCESS_QUALIFIER";1284break;1285case KernelArgInfo::TypeName:1286os << "CL_KERNEL_ARG_TYPE_NAME";1287break;1288case KernelArgInfo::TypeQualifier:1289os << "CL_KERNEL_ARG_TYPE_QUALIFIER";1290break;1291case KernelArgInfo::Name:1292os << "CL_KERNEL_ARG_NAME";1293break;1294default:1295os << "GL_INVALID_ENUM";1296break;1297}1298return os;1299}13001301template <>1302KernelExecInfo FromCLenum<KernelExecInfo>(CLenum from)1303{1304switch (from)1305{1306case CL_KERNEL_EXEC_INFO_SVM_PTRS:1307return KernelExecInfo::SVM_Ptrs;1308case CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM:1309return KernelExecInfo::SVM_FineGrainSystem;1310default:1311return KernelExecInfo::InvalidEnum;1312}1313}13141315CLenum ToCLenum(KernelExecInfo from)1316{1317switch (from)1318{1319case KernelExecInfo::SVM_Ptrs:1320return CL_KERNEL_EXEC_INFO_SVM_PTRS;1321case KernelExecInfo::SVM_FineGrainSystem:1322return CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM;1323default:1324UNREACHABLE();1325return 0;1326}1327}13281329std::ostream &operator<<(std::ostream &os, KernelExecInfo value)1330{1331switch (value)1332{1333case KernelExecInfo::SVM_Ptrs:1334os << "CL_KERNEL_EXEC_INFO_SVM_PTRS";1335break;1336case KernelExecInfo::SVM_FineGrainSystem:1337os << "CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM";1338break;1339default:1340os << "GL_INVALID_ENUM";1341break;1342}1343return os;1344}13451346template <>1347KernelInfo FromCLenum<KernelInfo>(CLenum from)1348{1349switch (from)1350{1351case CL_KERNEL_FUNCTION_NAME:1352return KernelInfo::FunctionName;1353case CL_KERNEL_NUM_ARGS:1354return KernelInfo::NumArgs;1355case CL_KERNEL_REFERENCE_COUNT:1356return KernelInfo::ReferenceCount;1357case CL_KERNEL_CONTEXT:1358return KernelInfo::Context;1359case CL_KERNEL_PROGRAM:1360return KernelInfo::Program;1361case CL_KERNEL_ATTRIBUTES:1362return KernelInfo::Attributes;1363default:1364return KernelInfo::InvalidEnum;1365}1366}13671368CLenum ToCLenum(KernelInfo from)1369{1370switch (from)1371{1372case KernelInfo::FunctionName:1373return CL_KERNEL_FUNCTION_NAME;1374case KernelInfo::NumArgs:1375return CL_KERNEL_NUM_ARGS;1376case KernelInfo::ReferenceCount:1377return CL_KERNEL_REFERENCE_COUNT;1378case KernelInfo::Context:1379return CL_KERNEL_CONTEXT;1380case KernelInfo::Program:1381return CL_KERNEL_PROGRAM;1382case KernelInfo::Attributes:1383return CL_KERNEL_ATTRIBUTES;1384default:1385UNREACHABLE();1386return 0;1387}1388}13891390std::ostream &operator<<(std::ostream &os, KernelInfo value)1391{1392switch (value)1393{1394case KernelInfo::FunctionName:1395os << "CL_KERNEL_FUNCTION_NAME";1396break;1397case KernelInfo::NumArgs:1398os << "CL_KERNEL_NUM_ARGS";1399break;1400case KernelInfo::ReferenceCount:1401os << "CL_KERNEL_REFERENCE_COUNT";1402break;1403case KernelInfo::Context:1404os << "CL_KERNEL_CONTEXT";1405break;1406case KernelInfo::Program:1407os << "CL_KERNEL_PROGRAM";1408break;1409case KernelInfo::Attributes:1410os << "CL_KERNEL_ATTRIBUTES";1411break;1412default:1413os << "GL_INVALID_ENUM";1414break;1415}1416return os;1417}14181419template <>1420KernelSubGroupInfo FromCLenum<KernelSubGroupInfo>(CLenum from)1421{1422switch (from)1423{1424case CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE:1425return KernelSubGroupInfo::MaxSubGroupSizeForNdrange;1426case CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE:1427return KernelSubGroupInfo::SubGroupCountForNdrange;1428case CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT:1429return KernelSubGroupInfo::LocalSizeForSubGroupCount;1430case CL_KERNEL_MAX_NUM_SUB_GROUPS:1431return KernelSubGroupInfo::MaxNumSubGroups;1432case CL_KERNEL_COMPILE_NUM_SUB_GROUPS:1433return KernelSubGroupInfo::CompileNumSubGroups;1434default:1435return KernelSubGroupInfo::InvalidEnum;1436}1437}14381439CLenum ToCLenum(KernelSubGroupInfo from)1440{1441switch (from)1442{1443case KernelSubGroupInfo::MaxSubGroupSizeForNdrange:1444return CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE;1445case KernelSubGroupInfo::SubGroupCountForNdrange:1446return CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE;1447case KernelSubGroupInfo::LocalSizeForSubGroupCount:1448return CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT;1449case KernelSubGroupInfo::MaxNumSubGroups:1450return CL_KERNEL_MAX_NUM_SUB_GROUPS;1451case KernelSubGroupInfo::CompileNumSubGroups:1452return CL_KERNEL_COMPILE_NUM_SUB_GROUPS;1453default:1454UNREACHABLE();1455return 0;1456}1457}14581459std::ostream &operator<<(std::ostream &os, KernelSubGroupInfo value)1460{1461switch (value)1462{1463case KernelSubGroupInfo::MaxSubGroupSizeForNdrange:1464os << "CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE";1465break;1466case KernelSubGroupInfo::SubGroupCountForNdrange:1467os << "CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE";1468break;1469case KernelSubGroupInfo::LocalSizeForSubGroupCount:1470os << "CL_KERNEL_LOCAL_SIZE_FOR_SUB_GROUP_COUNT";1471break;1472case KernelSubGroupInfo::MaxNumSubGroups:1473os << "CL_KERNEL_MAX_NUM_SUB_GROUPS";1474break;1475case KernelSubGroupInfo::CompileNumSubGroups:1476os << "CL_KERNEL_COMPILE_NUM_SUB_GROUPS";1477break;1478default:1479os << "GL_INVALID_ENUM";1480break;1481}1482return os;1483}14841485template <>1486KernelWorkGroupInfo FromCLenum<KernelWorkGroupInfo>(CLenum from)1487{1488switch (from)1489{1490case CL_KERNEL_WORK_GROUP_SIZE:1491return KernelWorkGroupInfo::WorkGroupSize;1492case CL_KERNEL_COMPILE_WORK_GROUP_SIZE:1493return KernelWorkGroupInfo::CompileWorkGroupSize;1494case CL_KERNEL_LOCAL_MEM_SIZE:1495return KernelWorkGroupInfo::LocalMemSize;1496case CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE:1497return KernelWorkGroupInfo::PreferredWorkGroupSizeMultiple;1498case CL_KERNEL_PRIVATE_MEM_SIZE:1499return KernelWorkGroupInfo::PrivateMemSize;1500case CL_KERNEL_GLOBAL_WORK_SIZE:1501return KernelWorkGroupInfo::GlobalWorkSize;1502default:1503return KernelWorkGroupInfo::InvalidEnum;1504}1505}15061507CLenum ToCLenum(KernelWorkGroupInfo from)1508{1509switch (from)1510{1511case KernelWorkGroupInfo::WorkGroupSize:1512return CL_KERNEL_WORK_GROUP_SIZE;1513case KernelWorkGroupInfo::CompileWorkGroupSize:1514return CL_KERNEL_COMPILE_WORK_GROUP_SIZE;1515case KernelWorkGroupInfo::LocalMemSize:1516return CL_KERNEL_LOCAL_MEM_SIZE;1517case KernelWorkGroupInfo::PreferredWorkGroupSizeMultiple:1518return CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE;1519case KernelWorkGroupInfo::PrivateMemSize:1520return CL_KERNEL_PRIVATE_MEM_SIZE;1521case KernelWorkGroupInfo::GlobalWorkSize:1522return CL_KERNEL_GLOBAL_WORK_SIZE;1523default:1524UNREACHABLE();1525return 0;1526}1527}15281529std::ostream &operator<<(std::ostream &os, KernelWorkGroupInfo value)1530{1531switch (value)1532{1533case KernelWorkGroupInfo::WorkGroupSize:1534os << "CL_KERNEL_WORK_GROUP_SIZE";1535break;1536case KernelWorkGroupInfo::CompileWorkGroupSize:1537os << "CL_KERNEL_COMPILE_WORK_GROUP_SIZE";1538break;1539case KernelWorkGroupInfo::LocalMemSize:1540os << "CL_KERNEL_LOCAL_MEM_SIZE";1541break;1542case KernelWorkGroupInfo::PreferredWorkGroupSizeMultiple:1543os << "CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE";1544break;1545case KernelWorkGroupInfo::PrivateMemSize:1546os << "CL_KERNEL_PRIVATE_MEM_SIZE";1547break;1548case KernelWorkGroupInfo::GlobalWorkSize:1549os << "CL_KERNEL_GLOBAL_WORK_SIZE";1550break;1551default:1552os << "GL_INVALID_ENUM";1553break;1554}1555return os;1556}15571558template <>1559MemInfo FromCLenum<MemInfo>(CLenum from)1560{1561switch (from)1562{1563case CL_MEM_TYPE:1564return MemInfo::Type;1565case CL_MEM_FLAGS:1566return MemInfo::Flags;1567case CL_MEM_SIZE:1568return MemInfo::Size;1569case CL_MEM_HOST_PTR:1570return MemInfo::HostPtr;1571case CL_MEM_MAP_COUNT:1572return MemInfo::MapCount;1573case CL_MEM_REFERENCE_COUNT:1574return MemInfo::ReferenceCount;1575case CL_MEM_CONTEXT:1576return MemInfo::Context;1577case CL_MEM_ASSOCIATED_MEMOBJECT:1578return MemInfo::AssociatedMemObject;1579case CL_MEM_OFFSET:1580return MemInfo::Offset;1581case CL_MEM_USES_SVM_POINTER:1582return MemInfo::UsesSVM_Pointer;1583case CL_MEM_PROPERTIES:1584return MemInfo::Properties;1585default:1586return MemInfo::InvalidEnum;1587}1588}15891590CLenum ToCLenum(MemInfo from)1591{1592switch (from)1593{1594case MemInfo::Type:1595return CL_MEM_TYPE;1596case MemInfo::Flags:1597return CL_MEM_FLAGS;1598case MemInfo::Size:1599return CL_MEM_SIZE;1600case MemInfo::HostPtr:1601return CL_MEM_HOST_PTR;1602case MemInfo::MapCount:1603return CL_MEM_MAP_COUNT;1604case MemInfo::ReferenceCount:1605return CL_MEM_REFERENCE_COUNT;1606case MemInfo::Context:1607return CL_MEM_CONTEXT;1608case MemInfo::AssociatedMemObject:1609return CL_MEM_ASSOCIATED_MEMOBJECT;1610case MemInfo::Offset:1611return CL_MEM_OFFSET;1612case MemInfo::UsesSVM_Pointer:1613return CL_MEM_USES_SVM_POINTER;1614case MemInfo::Properties:1615return CL_MEM_PROPERTIES;1616default:1617UNREACHABLE();1618return 0;1619}1620}16211622std::ostream &operator<<(std::ostream &os, MemInfo value)1623{1624switch (value)1625{1626case MemInfo::Type:1627os << "CL_MEM_TYPE";1628break;1629case MemInfo::Flags:1630os << "CL_MEM_FLAGS";1631break;1632case MemInfo::Size:1633os << "CL_MEM_SIZE";1634break;1635case MemInfo::HostPtr:1636os << "CL_MEM_HOST_PTR";1637break;1638case MemInfo::MapCount:1639os << "CL_MEM_MAP_COUNT";1640break;1641case MemInfo::ReferenceCount:1642os << "CL_MEM_REFERENCE_COUNT";1643break;1644case MemInfo::Context:1645os << "CL_MEM_CONTEXT";1646break;1647case MemInfo::AssociatedMemObject:1648os << "CL_MEM_ASSOCIATED_MEMOBJECT";1649break;1650case MemInfo::Offset:1651os << "CL_MEM_OFFSET";1652break;1653case MemInfo::UsesSVM_Pointer:1654os << "CL_MEM_USES_SVM_POINTER";1655break;1656case MemInfo::Properties:1657os << "CL_MEM_PROPERTIES";1658break;1659default:1660os << "GL_INVALID_ENUM";1661break;1662}1663return os;1664}16651666template <>1667MemObjectType FromCLenum<MemObjectType>(CLenum from)1668{1669switch (from)1670{1671case CL_MEM_OBJECT_BUFFER:1672return MemObjectType::Buffer;1673case CL_MEM_OBJECT_IMAGE2D:1674return MemObjectType::Image2D;1675case CL_MEM_OBJECT_IMAGE3D:1676return MemObjectType::Image3D;1677case CL_MEM_OBJECT_IMAGE2D_ARRAY:1678return MemObjectType::Image2D_Array;1679case CL_MEM_OBJECT_IMAGE1D:1680return MemObjectType::Image1D;1681case CL_MEM_OBJECT_IMAGE1D_ARRAY:1682return MemObjectType::Image1D_Array;1683case CL_MEM_OBJECT_IMAGE1D_BUFFER:1684return MemObjectType::Image1D_Buffer;1685case CL_MEM_OBJECT_PIPE:1686return MemObjectType::Pipe;1687default:1688return MemObjectType::InvalidEnum;1689}1690}16911692CLenum ToCLenum(MemObjectType from)1693{1694switch (from)1695{1696case MemObjectType::Buffer:1697return CL_MEM_OBJECT_BUFFER;1698case MemObjectType::Image2D:1699return CL_MEM_OBJECT_IMAGE2D;1700case MemObjectType::Image3D:1701return CL_MEM_OBJECT_IMAGE3D;1702case MemObjectType::Image2D_Array:1703return CL_MEM_OBJECT_IMAGE2D_ARRAY;1704case MemObjectType::Image1D:1705return CL_MEM_OBJECT_IMAGE1D;1706case MemObjectType::Image1D_Array:1707return CL_MEM_OBJECT_IMAGE1D_ARRAY;1708case MemObjectType::Image1D_Buffer:1709return CL_MEM_OBJECT_IMAGE1D_BUFFER;1710case MemObjectType::Pipe:1711return CL_MEM_OBJECT_PIPE;1712default:1713UNREACHABLE();1714return 0;1715}1716}17171718std::ostream &operator<<(std::ostream &os, MemObjectType value)1719{1720switch (value)1721{1722case MemObjectType::Buffer:1723os << "CL_MEM_OBJECT_BUFFER";1724break;1725case MemObjectType::Image2D:1726os << "CL_MEM_OBJECT_IMAGE2D";1727break;1728case MemObjectType::Image3D:1729os << "CL_MEM_OBJECT_IMAGE3D";1730break;1731case MemObjectType::Image2D_Array:1732os << "CL_MEM_OBJECT_IMAGE2D_ARRAY";1733break;1734case MemObjectType::Image1D:1735os << "CL_MEM_OBJECT_IMAGE1D";1736break;1737case MemObjectType::Image1D_Array:1738os << "CL_MEM_OBJECT_IMAGE1D_ARRAY";1739break;1740case MemObjectType::Image1D_Buffer:1741os << "CL_MEM_OBJECT_IMAGE1D_BUFFER";1742break;1743case MemObjectType::Pipe:1744os << "CL_MEM_OBJECT_PIPE";1745break;1746default:1747os << "GL_INVALID_ENUM";1748break;1749}1750return os;1751}17521753template <>1754PipeInfo FromCLenum<PipeInfo>(CLenum from)1755{1756switch (from)1757{1758case CL_PIPE_PACKET_SIZE:1759return PipeInfo::PacketSize;1760case CL_PIPE_MAX_PACKETS:1761return PipeInfo::MaxPackets;1762case CL_PIPE_PROPERTIES:1763return PipeInfo::Properties;1764default:1765return PipeInfo::InvalidEnum;1766}1767}17681769CLenum ToCLenum(PipeInfo from)1770{1771switch (from)1772{1773case PipeInfo::PacketSize:1774return CL_PIPE_PACKET_SIZE;1775case PipeInfo::MaxPackets:1776return CL_PIPE_MAX_PACKETS;1777case PipeInfo::Properties:1778return CL_PIPE_PROPERTIES;1779default:1780UNREACHABLE();1781return 0;1782}1783}17841785std::ostream &operator<<(std::ostream &os, PipeInfo value)1786{1787switch (value)1788{1789case PipeInfo::PacketSize:1790os << "CL_PIPE_PACKET_SIZE";1791break;1792case PipeInfo::MaxPackets:1793os << "CL_PIPE_MAX_PACKETS";1794break;1795case PipeInfo::Properties:1796os << "CL_PIPE_PROPERTIES";1797break;1798default:1799os << "GL_INVALID_ENUM";1800break;1801}1802return os;1803}18041805template <>1806PlatformInfo FromCLenum<PlatformInfo>(CLenum from)1807{1808switch (from)1809{1810case CL_PLATFORM_PROFILE:1811return PlatformInfo::Profile;1812case CL_PLATFORM_VERSION:1813return PlatformInfo::Version;1814case CL_PLATFORM_NAME:1815return PlatformInfo::Name;1816case CL_PLATFORM_VENDOR:1817return PlatformInfo::Vendor;1818case CL_PLATFORM_EXTENSIONS:1819return PlatformInfo::Extensions;1820case CL_PLATFORM_HOST_TIMER_RESOLUTION:1821return PlatformInfo::HostTimerResolution;1822case CL_PLATFORM_NUMERIC_VERSION:1823return PlatformInfo::NumericVersion;1824case CL_PLATFORM_EXTENSIONS_WITH_VERSION:1825return PlatformInfo::ExtensionsWithVersion;1826case CL_PLATFORM_ICD_SUFFIX_KHR:1827return PlatformInfo::IcdSuffix;1828default:1829return PlatformInfo::InvalidEnum;1830}1831}18321833CLenum ToCLenum(PlatformInfo from)1834{1835switch (from)1836{1837case PlatformInfo::Profile:1838return CL_PLATFORM_PROFILE;1839case PlatformInfo::Version:1840return CL_PLATFORM_VERSION;1841case PlatformInfo::Name:1842return CL_PLATFORM_NAME;1843case PlatformInfo::Vendor:1844return CL_PLATFORM_VENDOR;1845case PlatformInfo::Extensions:1846return CL_PLATFORM_EXTENSIONS;1847case PlatformInfo::HostTimerResolution:1848return CL_PLATFORM_HOST_TIMER_RESOLUTION;1849case PlatformInfo::NumericVersion:1850return CL_PLATFORM_NUMERIC_VERSION;1851case PlatformInfo::ExtensionsWithVersion:1852return CL_PLATFORM_EXTENSIONS_WITH_VERSION;1853case PlatformInfo::IcdSuffix:1854return CL_PLATFORM_ICD_SUFFIX_KHR;1855default:1856UNREACHABLE();1857return 0;1858}1859}18601861std::ostream &operator<<(std::ostream &os, PlatformInfo value)1862{1863switch (value)1864{1865case PlatformInfo::Profile:1866os << "CL_PLATFORM_PROFILE";1867break;1868case PlatformInfo::Version:1869os << "CL_PLATFORM_VERSION";1870break;1871case PlatformInfo::Name:1872os << "CL_PLATFORM_NAME";1873break;1874case PlatformInfo::Vendor:1875os << "CL_PLATFORM_VENDOR";1876break;1877case PlatformInfo::Extensions:1878os << "CL_PLATFORM_EXTENSIONS";1879break;1880case PlatformInfo::HostTimerResolution:1881os << "CL_PLATFORM_HOST_TIMER_RESOLUTION";1882break;1883case PlatformInfo::NumericVersion:1884os << "CL_PLATFORM_NUMERIC_VERSION";1885break;1886case PlatformInfo::ExtensionsWithVersion:1887os << "CL_PLATFORM_EXTENSIONS_WITH_VERSION";1888break;1889case PlatformInfo::IcdSuffix:1890os << "CL_PLATFORM_ICD_SUFFIX_KHR";1891break;1892default:1893os << "GL_INVALID_ENUM";1894break;1895}1896return os;1897}18981899template <>1900ProfilingInfo FromCLenum<ProfilingInfo>(CLenum from)1901{1902switch (from)1903{1904case CL_PROFILING_COMMAND_QUEUED:1905return ProfilingInfo::CommandQueued;1906case CL_PROFILING_COMMAND_SUBMIT:1907return ProfilingInfo::CommandSubmit;1908case CL_PROFILING_COMMAND_START:1909return ProfilingInfo::CommandStart;1910case CL_PROFILING_COMMAND_END:1911return ProfilingInfo::CommandEnd;1912case CL_PROFILING_COMMAND_COMPLETE:1913return ProfilingInfo::CommandComplete;1914default:1915return ProfilingInfo::InvalidEnum;1916}1917}19181919CLenum ToCLenum(ProfilingInfo from)1920{1921switch (from)1922{1923case ProfilingInfo::CommandQueued:1924return CL_PROFILING_COMMAND_QUEUED;1925case ProfilingInfo::CommandSubmit:1926return CL_PROFILING_COMMAND_SUBMIT;1927case ProfilingInfo::CommandStart:1928return CL_PROFILING_COMMAND_START;1929case ProfilingInfo::CommandEnd:1930return CL_PROFILING_COMMAND_END;1931case ProfilingInfo::CommandComplete:1932return CL_PROFILING_COMMAND_COMPLETE;1933default:1934UNREACHABLE();1935return 0;1936}1937}19381939std::ostream &operator<<(std::ostream &os, ProfilingInfo value)1940{1941switch (value)1942{1943case ProfilingInfo::CommandQueued:1944os << "CL_PROFILING_COMMAND_QUEUED";1945break;1946case ProfilingInfo::CommandSubmit:1947os << "CL_PROFILING_COMMAND_SUBMIT";1948break;1949case ProfilingInfo::CommandStart:1950os << "CL_PROFILING_COMMAND_START";1951break;1952case ProfilingInfo::CommandEnd:1953os << "CL_PROFILING_COMMAND_END";1954break;1955case ProfilingInfo::CommandComplete:1956os << "CL_PROFILING_COMMAND_COMPLETE";1957break;1958default:1959os << "GL_INVALID_ENUM";1960break;1961}1962return os;1963}19641965template <>1966ProgramBuildInfo FromCLenum<ProgramBuildInfo>(CLenum from)1967{1968switch (from)1969{1970case CL_PROGRAM_BUILD_STATUS:1971return ProgramBuildInfo::Status;1972case CL_PROGRAM_BUILD_OPTIONS:1973return ProgramBuildInfo::Options;1974case CL_PROGRAM_BUILD_LOG:1975return ProgramBuildInfo::Log;1976case CL_PROGRAM_BINARY_TYPE:1977return ProgramBuildInfo::BinaryType;1978case CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE:1979return ProgramBuildInfo::GlobalVariableTotalSize;1980default:1981return ProgramBuildInfo::InvalidEnum;1982}1983}19841985CLenum ToCLenum(ProgramBuildInfo from)1986{1987switch (from)1988{1989case ProgramBuildInfo::Status:1990return CL_PROGRAM_BUILD_STATUS;1991case ProgramBuildInfo::Options:1992return CL_PROGRAM_BUILD_OPTIONS;1993case ProgramBuildInfo::Log:1994return CL_PROGRAM_BUILD_LOG;1995case ProgramBuildInfo::BinaryType:1996return CL_PROGRAM_BINARY_TYPE;1997case ProgramBuildInfo::GlobalVariableTotalSize:1998return CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE;1999default:2000UNREACHABLE();2001return 0;2002}2003}20042005std::ostream &operator<<(std::ostream &os, ProgramBuildInfo value)2006{2007switch (value)2008{2009case ProgramBuildInfo::Status:2010os << "CL_PROGRAM_BUILD_STATUS";2011break;2012case ProgramBuildInfo::Options:2013os << "CL_PROGRAM_BUILD_OPTIONS";2014break;2015case ProgramBuildInfo::Log:2016os << "CL_PROGRAM_BUILD_LOG";2017break;2018case ProgramBuildInfo::BinaryType:2019os << "CL_PROGRAM_BINARY_TYPE";2020break;2021case ProgramBuildInfo::GlobalVariableTotalSize:2022os << "CL_PROGRAM_BUILD_GLOBAL_VARIABLE_TOTAL_SIZE";2023break;2024default:2025os << "GL_INVALID_ENUM";2026break;2027}2028return os;2029}20302031template <>2032ProgramInfo FromCLenum<ProgramInfo>(CLenum from)2033{2034switch (from)2035{2036case CL_PROGRAM_REFERENCE_COUNT:2037return ProgramInfo::ReferenceCount;2038case CL_PROGRAM_CONTEXT:2039return ProgramInfo::Context;2040case CL_PROGRAM_NUM_DEVICES:2041return ProgramInfo::NumDevices;2042case CL_PROGRAM_DEVICES:2043return ProgramInfo::Devices;2044case CL_PROGRAM_SOURCE:2045return ProgramInfo::Source;2046case CL_PROGRAM_BINARY_SIZES:2047return ProgramInfo::BinarySizes;2048case CL_PROGRAM_BINARIES:2049return ProgramInfo::Binaries;2050case CL_PROGRAM_NUM_KERNELS:2051return ProgramInfo::NumKernels;2052case CL_PROGRAM_KERNEL_NAMES:2053return ProgramInfo::KernelNames;2054case CL_PROGRAM_IL:2055return ProgramInfo::IL;2056case CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT:2057return ProgramInfo::ScopeGlobalCtorsPresent;2058case CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT:2059return ProgramInfo::ScopeGlobalDtorsPresent;2060default:2061return ProgramInfo::InvalidEnum;2062}2063}20642065CLenum ToCLenum(ProgramInfo from)2066{2067switch (from)2068{2069case ProgramInfo::ReferenceCount:2070return CL_PROGRAM_REFERENCE_COUNT;2071case ProgramInfo::Context:2072return CL_PROGRAM_CONTEXT;2073case ProgramInfo::NumDevices:2074return CL_PROGRAM_NUM_DEVICES;2075case ProgramInfo::Devices:2076return CL_PROGRAM_DEVICES;2077case ProgramInfo::Source:2078return CL_PROGRAM_SOURCE;2079case ProgramInfo::BinarySizes:2080return CL_PROGRAM_BINARY_SIZES;2081case ProgramInfo::Binaries:2082return CL_PROGRAM_BINARIES;2083case ProgramInfo::NumKernels:2084return CL_PROGRAM_NUM_KERNELS;2085case ProgramInfo::KernelNames:2086return CL_PROGRAM_KERNEL_NAMES;2087case ProgramInfo::IL:2088return CL_PROGRAM_IL;2089case ProgramInfo::ScopeGlobalCtorsPresent:2090return CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT;2091case ProgramInfo::ScopeGlobalDtorsPresent:2092return CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT;2093default:2094UNREACHABLE();2095return 0;2096}2097}20982099std::ostream &operator<<(std::ostream &os, ProgramInfo value)2100{2101switch (value)2102{2103case ProgramInfo::ReferenceCount:2104os << "CL_PROGRAM_REFERENCE_COUNT";2105break;2106case ProgramInfo::Context:2107os << "CL_PROGRAM_CONTEXT";2108break;2109case ProgramInfo::NumDevices:2110os << "CL_PROGRAM_NUM_DEVICES";2111break;2112case ProgramInfo::Devices:2113os << "CL_PROGRAM_DEVICES";2114break;2115case ProgramInfo::Source:2116os << "CL_PROGRAM_SOURCE";2117break;2118case ProgramInfo::BinarySizes:2119os << "CL_PROGRAM_BINARY_SIZES";2120break;2121case ProgramInfo::Binaries:2122os << "CL_PROGRAM_BINARIES";2123break;2124case ProgramInfo::NumKernels:2125os << "CL_PROGRAM_NUM_KERNELS";2126break;2127case ProgramInfo::KernelNames:2128os << "CL_PROGRAM_KERNEL_NAMES";2129break;2130case ProgramInfo::IL:2131os << "CL_PROGRAM_IL";2132break;2133case ProgramInfo::ScopeGlobalCtorsPresent:2134os << "CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT";2135break;2136case ProgramInfo::ScopeGlobalDtorsPresent:2137os << "CL_PROGRAM_SCOPE_GLOBAL_DTORS_PRESENT";2138break;2139default:2140os << "GL_INVALID_ENUM";2141break;2142}2143return os;2144}21452146template <>2147SamplerInfo FromCLenum<SamplerInfo>(CLenum from)2148{2149switch (from)2150{2151case CL_SAMPLER_REFERENCE_COUNT:2152return SamplerInfo::ReferenceCount;2153case CL_SAMPLER_CONTEXT:2154return SamplerInfo::Context;2155case CL_SAMPLER_NORMALIZED_COORDS:2156return SamplerInfo::NormalizedCoords;2157case CL_SAMPLER_ADDRESSING_MODE:2158return SamplerInfo::AddressingMode;2159case CL_SAMPLER_FILTER_MODE:2160return SamplerInfo::FilterMode;2161case CL_SAMPLER_PROPERTIES:2162return SamplerInfo::Properties;2163default:2164return SamplerInfo::InvalidEnum;2165}2166}21672168CLenum ToCLenum(SamplerInfo from)2169{2170switch (from)2171{2172case SamplerInfo::ReferenceCount:2173return CL_SAMPLER_REFERENCE_COUNT;2174case SamplerInfo::Context:2175return CL_SAMPLER_CONTEXT;2176case SamplerInfo::NormalizedCoords:2177return CL_SAMPLER_NORMALIZED_COORDS;2178case SamplerInfo::AddressingMode:2179return CL_SAMPLER_ADDRESSING_MODE;2180case SamplerInfo::FilterMode:2181return CL_SAMPLER_FILTER_MODE;2182case SamplerInfo::Properties:2183return CL_SAMPLER_PROPERTIES;2184default:2185UNREACHABLE();2186return 0;2187}2188}21892190std::ostream &operator<<(std::ostream &os, SamplerInfo value)2191{2192switch (value)2193{2194case SamplerInfo::ReferenceCount:2195os << "CL_SAMPLER_REFERENCE_COUNT";2196break;2197case SamplerInfo::Context:2198os << "CL_SAMPLER_CONTEXT";2199break;2200case SamplerInfo::NormalizedCoords:2201os << "CL_SAMPLER_NORMALIZED_COORDS";2202break;2203case SamplerInfo::AddressingMode:2204os << "CL_SAMPLER_ADDRESSING_MODE";2205break;2206case SamplerInfo::FilterMode:2207os << "CL_SAMPLER_FILTER_MODE";2208break;2209case SamplerInfo::Properties:2210os << "CL_SAMPLER_PROPERTIES";2211break;2212default:2213os << "GL_INVALID_ENUM";2214break;2215}2216return os;2217}22182219} // namespace cl222022212222