ENUMS(3clc)
β¨ ENUMERATED TYPES β¨
okay bestie, welcome to the OpenCL Manual section 3clc β yeah we're in the library pages now, it's giving very "I read the docs for fun" energy and honestly? iconic. π
π NAME π
Enumerated_Types β bestie, this is literally the list of all the enumerated types and the values they're allowed to be. Permitted values only, no rogue vibes allowed. β¨
fr fr, that's the whole NAME section β the actual enum-by-enum tea is coming up in the parts after this one, so don't go anywhere. π«Ά
cl_addressing_modeπ¦ β the permitted values are literally:CL_ADDRESS_NONECL_ADDRESS_CLAMP_TO_EDGECL_ADDRESS_CLAMPCL_ADDRESS_REPEATCL_ADDRESS_MIRRORED_REPEAT
cl_boolπ β permitted values, no cap:CL_FALSECL_TRUECL_BLOCKING = CL_TRUECL_NON_BLOCKING = CL_FALSE
Note: Unlikecl_types incl_platform.h,cl_boolis not guaranteed to be the same size as theboolin kernels.
cl_buffer_create_typeπ β permitted value:CL_BUFFER_CREATE_TYPE_REGION
cl_build_statusβ¨ β permitted values:CL_BUILD_SUCCESSCL_BUILD_NONECL_BUILD_ERRORCL_BUILD_IN_PROGRESS
cl_channel_orderπ β permitted values:CL_ACL_RCL_RGCL_RACL_RGBCL_RGBACL_BGRACL_ARGBCL_INTENSITYCL_LUMINANCECL_RxCL_RGxCL_RGBx
cl_channel_typeπ β permitted values:CL_SNORM_INT8CL_SNORM_INT16CL_UNORM_INT8CL_UNORM_INT16CL_UNORM_SHORT_565CL_UNORM_SHORT_555CL_UNORM_INT_101010CL_SIGNED_INT8CL_SIGNED_INT16CL_SIGNED_INT32CL_UNSIGNED_INT8CL_UNSIGNED_INT16CL_UNSIGNED_INT32CL_HALF_FLOATCL_FLOAT
cl_command_queue_infoπ«Ά β permitted values:CL_QUEUE_CONTEXTCL_QUEUE_DEVICECL_QUEUE_REFERENCE_COUNTCL_QUEUE_PROPERTIES
cl_command_queue_propertiesβ β permitted values:CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLECL_QUEUE_PROFILING_ENABLE
cl_command_typeπ β permitted values, and yes there are a lot, stay with me:CL_COMMAND_NDRANGE_KERNELCL_COMMAND_TASKCL_COMMAND_NATIVE_KERNELCL_COMMAND_READ_BUFFERCL_COMMAND_WRITE_BUFFERCL_COMMAND_COPY_BUFFERCL_COMMAND_READ_IMAGECL_COMMAND_WRITE_IMAGECL_COMMAND_COPY_IMAGECL_COMMAND_COPY_IMAGE_TO_BUFFERCL_COMMAND_COPY_BUFFER_TO_IMAGECL_COMMAND_MAP_BUFFERCL_COMMAND_MAP_IMAGECL_COMMAND_UNMAP_MEM_OBJECTCL_COMMAND_MARKERCL_COMMAND_ACQUIRE_GL_OBJECTSCL_COMMAND_RELEASE_GL_OBJECTSCL_COMMAND_READ_BUFFER_RECTCL_COMMAND_WRITE_BUFFER_RECTCL_COMMAND_COPY_BUFFER_RECTCL_COMMAND_USERCL_COMMAND_BARRIERCL_COMMAND_MIGRATE_MEM_OBJECTS
okay so we're still inside the same enum and the values just KEEP. COMING. π bestie this row is a marathon, not a sprint β here's the rest of it:
CL_COMMAND_FILL_BUFFERCL_COMMAND_FILL_IMAGECL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHRCL_COMMAND_RELEASE_D3D10_OBJECTS_KHRCL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHRCL_COMMAND_RELEASE_D3D11_OBJECTS_KHRCL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHRCL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR
β¨ cl_context_info β¨
the context girlies π every single value:
CL_CONTEXT_REFERENCE_COUNTCL_CONTEXT_DEVICESCL_CONTEXT_PROPERTIESCL_CONTEXT_NUM_DEVICESCL_CONTEXT_D3D10_DEVICE_KHRCL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHRCL_CONTEXT_D3D11_DEVICE_KHRCL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHRCL_CONTEXT_D3D9_DEVICE_KHRCL_CONTEXT_D3D9EX_DEVICE_KHRCL_CONTEXT_DXVA_DEVICE_KHRCL_GL_CONTEXT_KHRCL_EGL_DISPLAY_KHRCL_GLX_DISPLAY_KHRCL_WGL_HDC_KHRCL_CGL_SHAREGROUP_KHR
πΈ cl_context_properties πΈ
a shorter lil list, but still iconic:
CL_CONTEXT_PLATFORMCL_CONTEXT_INTEROP_USER_SYNCCL_GL_CONTEXT_KHRCL_EGL_DISPLAY_KHRCL_GLX_DISPLAY_KHRCL_WGL_HDC_KHRCL_CGL_SHAREGROUP_KHR
π
cl_d3d10_device_set_khr π
nothing on the right side of the table for this one, bestie β the row is just vibes and a name. that's it, that's the entry. π
// cl_d3d10_device_set_nv
not me showing you a type that's literally commented out in the original β yep, that // is right there, i'm keeping it exactly as-is. its values:
CL_PREFERRED_DEVICES_FOR_D3D10_KHRCL_ALL_DEVICES_FOR_D3D10_KHR
cl_d3d10_device_source_khr
again, no values listed in the table. empty. silent. mysterious. π«Ά
// cl_d3d10_device_source_nv
also commented out, also keeping the // fr fr. its values:
CL_D3D10_DEVICE_KHRCL_D3D10_DXGI_ADAPTER_KHR
π₯ cl_d3d11_device_set_khr π₯
CL_PREFERRED_DEVICES_FOR_D3D10_KHRCL_ALL_DEVICES_FOR_D3D10_KHR
not me messing up, i swear β this is literally ad3d11type and the values still sayD3D10. that's what the page says, so that's what you get. copy it character for character, no cap. π
π¦ cl_d3d11_device_source_khr π¦
CL_D3D11_DEVICE_KHRCL_D3D11_DXGI_ADAPTER_KHR
β cl_device_affinity_domain β
CL_DEVICE_AFFINITY_DOMAIN_NUMACL_DEVICE_AFFINITY_DOMAIN_L4_CACHECL_DEVICE_AFFINITY_DOMAIN_L3_CACHECL_DEVICE_AFFINITY_DOMAIN_L2_CACHECL_DEVICE_AFFINITY_DOMAIN_L1_CACHECL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE
π cl_device_exec_capabilities π
CL_EXEC_KERNELCL_EXEC_NATIVE_KERNEL
π cl_device_fp_config π
the floating point besties, all eight of them:
CL_FP_DENORMCL_FP_INF_NANCL_FP_ROUND_TO_NEARESTCL_FP_ROUND_TO_ZEROCL_FP_ROUND_TO_INFCL_FP_FMACL_FP_SOFT_FLOATCL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT
π cl_device_info π
okay this one is LONG long β it's giving main character energy and we're only partway through it, so hold my hand:
CL_DEVICE_TYPECL_DEVICE_VENDOR_IDCL_DEVICE_MAX_COMPUTE_UNITSCL_DEVICE_MAX_WORK_ITEM_DIMENSIONSCL_DEVICE_MAX_WORK_GROUP_SIZECL_DEVICE_MAX_WORK_ITEM_SIZESCL_DEVICE_PREFERRED_VECTOR_WIDTH_CHARCL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORTCL_DEVICE_PREFERRED_VECTOR_WIDTH_INTCL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG
okay bestie we're BACK and the cl_device_info list is still going because of course it is π this thing has main character energy and refuses to end. here's the rest of the lineup, every single one, no skips, no cuts, we eat the whole plate π
β¨
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOATCL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLECL_DEVICE_MAX_CLOCK_FREQUENCYCL_DEVICE_ADDRESS_BITSCL_DEVICE_MAX_READ_IMAGE_ARGSCL_DEVICE_MAX_WRITE_IMAGE_ARGSCL_DEVICE_MAX_MEM_ALLOC_SIZECL_DEVICE_IMAGE2D_MAX_WIDTHCL_DEVICE_IMAGE2D_MAX_HEIGHTCL_DEVICE_IMAGE3D_MAX_WIDTHCL_DEVICE_IMAGE3D_MAX_HEIGHTCL_DEVICE_IMAGE3D_MAX_DEPTHCL_DEVICE_IMAGE_SUPPORTCL_DEVICE_MAX_PARAMETER_SIZECL_DEVICE_MAX_SAMPLERSCL_DEVICE_MEM_BASE_ADDR_ALIGNCL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZECL_DEVICE_SINGLE_FP_CONFIGCL_DEVICE_GLOBAL_MEM_CACHE_TYPECL_DEVICE_GLOBAL_MEM_CACHELINE_SIZECL_DEVICE_GLOBAL_MEM_CACHE_SIZECL_DEVICE_GLOBAL_MEM_SIZECL_DEVICE_MAX_CONSTANT_BUFFER_SIZECL_DEVICE_MAX_CONSTANT_ARGSCL_DEVICE_LOCAL_MEM_TYPECL_DEVICE_LOCAL_MEM_SIZECL_DEVICE_ERROR_CORRECTION_SUPPORTCL_DEVICE_PROFILING_TIMER_RESOLUTIONCL_DEVICE_ENDIAN_LITTLECL_DEVICE_AVAILABLECL_DEVICE_COMPILER_AVAILABLECL_DEVICE_EXECUTION_CAPABILITIESCL_DEVICE_QUEUE_PROPERTIESCL_DEVICE_NAMECL_DEVICE_VENDORCL_DRIVER_VERSIONCL_DEVICE_PROFILECL_DEVICE_VERSIONCL_DEVICE_EXTENSIONSCL_DEVICE_PLATFORMCL_DEVICE_DOUBLE_FP_CONFIGCL_DEVICE_PREFERRED_VECTOR_WIDTH_HALFCL_DEVICE_HOST_UNIFIED_MEMORYCL_DEVICE_NATIVE_VECTOR_WIDTH_CHARCL_DEVICE_NATIVE_VECTOR_WIDTH_SHORTCL_DEVICE_NATIVE_VECTOR_WIDTH_INTCL_DEVICE_NATIVE_VECTOR_WIDTH_LONGCL_DEVICE_NATIVE_VECTOR_WIDTH_FLOATCL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLECL_DEVICE_NATIVE_VECTOR_WIDTH_HALFCL_DEVICE_OPENCL_C_VERSIONCL_DEVICE_LINKER_AVAILABLECL_DEVICE_BUILT_IN_KERNELSCL_DEVICE_IMAGE_MAX_BUFFER_SIZECL_DEVICE_IMAGE_MAX_ARRAY_SIZECL_DEVICE_PARENT_DEVICECL_DEVICE_PARTITION_MAX_SUB_DEVICESCL_DEVICE_PARTITION_PROPERTIESCL_DEVICE_PARTITION_AFFINITY_DOMAINCL_DEVICE_PARTITION_TYPECL_DEVICE_REFERENCE_COUNTCL_DEVICE_PREFERRED_INTEROP_USER_SYNCCL_DEVICE_PRINTF_BUFFER_SIZE
and THAT'S the whole cl_device_info roster, we survived π«Ά take a breath, hydrate, you earned it.
cl_device_local_mem_type πΈ
where does the local memory live, bestie? pick your fighter:
CL_GLOBALCL_LOCALCL_NONE
cl_device_mem_cache_type π
the cache situation, in three flavours:
CL_NONECL_READ_ONLY_CACHECL_READ_WRITE_CACHE
cl_device_partition_property π¦
splitting a device up like it's a group project and everyone's getting a section:
CL_DEVICE_PARTITION_EQUALLYCL_DEVICE_PARTITION_BY_COUNTSCL_DEVICE_PARTITION_BY_COUNTS_LIST_ENDCL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN0
cl_device_type β¨
what kind of device are we even dealing with:
CL_DEVICE_TYPE_DEFAULTCL_DEVICE_TYPE_CPUCL_DEVICE_TYPE_GPUCL_DEVICE_TYPE_ACCELERATORCL_DEVICE_TYPE_CUSTOMCL_DEVICE_TYPE_ALL
cl_event_info π₯
all the tea you can ask about an event:
CL_EVENT_COMMAND_QUEUECL_EVENT_COMMAND_TYPECL_EVENT_REFERENCE_COUNTCL_EVENT_COMMAND_EXECUTION_STATUSCL_EVENT_CONTEXT
cl_filter_modeβ how the sampler grabs texels when it's not landing dead-center:CL_FILTER_NEAREST,CL_FILTER_LINEAR. nearest = it picks one and moves on, linear = it does the lil weighted-average moment πcl_gl_context_infoβ for the GL interop girlies:CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR,CL_DEVICES_FOR_GL_CONTEXT_KHR.cl_gl_object_typeβ every flavor of GL thing you can hand over:CL_GL_OBJECT_BUFFER,CL_GL_OBJECT_TEXTURE2D,CL_GL_OBJECT_TEXTURE3D,CL_GL_OBJECT_RENDERBUFFER,CL_GL_OBJECT_TEXTURE2D_ARRAY,CL_GL_OBJECT_TEXTURE1D,CL_GL_OBJECT_TEXTURE1D_ARRAY,CL_GL_OBJECT_TEXTURE_BUFFER. the full set, no skips, we love a complete lineup β¨cl_gl_texture_infoβ texture interrogation questions:CL_GL_TEXTURE_TARGET,CL_GL_MIPMAP_LEVEL.cl_image_infoβ the image gossip pipeline, i.e. everything you can ask about an image object:CL_IMAGE_FORMAT,CL_IMAGE_ELEMENT_SIZE,CL_IMAGE_ROW_PITCH,CL_IMAGE_SLICE_PITCH,CL_IMAGE_WIDTH,CL_IMAGE_HEIGHT,CL_IMAGE_DEPTH,CL_IMAGE_ARRAY_SIZE,CL_IMAGE_BUFFER,CL_IMAGE_NUM_MIP_LEVELS,CL_IMAGE_NUM_SAMPLES,CL_IMAGE_D3D10_SUBRESOURCE_KHR,CL_IMAGE_D3D11_SUBRESOURCE_KHR,CL_IMAGE_DX9_MEDIA_PLANE_KHR.cl_kernel_arg_address_qualifierβ where your kernel arg actually lives:CL_KERNEL_ARG_ADDRESS_GLOBAL,CL_KERNEL_ARG_ADDRESS_LOCAL,CL_KERNEL_ARG_ADDRESS_CONSTANT,CL_KERNEL_ARG_ADDRESS_PRIVATE.cl_kernel_arg_access_qualifierβ can you read it, write it, both, or neither bestie:CL_KERNEL_ARG_ACCESS_READ_ONLY,CL_KERNEL_ARG_ACCESS_WRITE_ONLY,CL_KERNEL_ARG_ACCESS_READ_WRITE,CL_KERNEL_ARG_ACCESS_NONE.cl_kernel_arg_infoβ the intel you can pull on a kernel argument:CL_KERNEL_ARG_ADDRESS_QUALIFIER,CL_KERNEL_ARG_ACCESS_QUALIFIER,CL_KERNEL_ARG_TYPE_NAME,CL_KERNEL_ARG_NAME.cl_kernel_infoβ everything you can ask about a kernel itself:CL_KERNEL_FUNCTION_NAME,CL_KERNEL_NUM_ARGS,CL_KERNEL_REFERENCE_COUNT,CL_KERNEL_CONTEXT,CL_KERNEL_PROGRAM,CL_KERNEL_ATTRIBUTES.cl_kernel_work_group_infoβ kernel work-group lore:CL_KERNEL_WORK_GROUP_SIZE,CL_KERNEL_COMPILE_WORK_GROUP_SIZE,CL_KERNEL_LOCAL_MEM_SIZE,CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,CL_KERNEL_PRIVATE_MEM_SIZE,CL_KERNEL_GLOBAL_WORK_SIZE.cl_map_flagsβ how you're allowed to touch a mapped region:CL_MAP_READ,CL_MAP_WRITE,CL_MAP_WRITE_INVALIDATE_REGION. the last one is the "don't bother preserving what was there, I'm overwriting it all" energy π// cl_media_adapter_set_khrβ adapter picker values:CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR,CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR.// cl_media_adapter_type_khrβ which media adapter flavor:CL_D3D9_DEVICE_KHR,CL_D3D9EX_DEVICE_KHR,CL_DXVA_DEVICE_KHR.cl_mem_flagsβ the memory permission slips:CL_MEM_READ_WRITE,CL_MEM_WRITE_ONLY
β¦and wrapping up that cl_mem_flags era of the chart, the last few values on the list are:
CL_MEM_READ_ONLYCL_MEM_USE_HOST_PTRCL_MEM_ALLOC_HOST_PTRCL_MEM_COPY_HOST_PTR
and now, the rest of the roster, bestie π
cl_mem_infoβ the full stack of memory-object tea βCL_MEM_TYPECL_MEM_FLAGSCL_MEM_SIZECL_MEM_HOST_PTRCL_MEM_MAP_COUNTCL_MEM_REFERENCE_COUNTCL_MEM_CONTEXTCL_MEM_ASSOCIATED_MEMOBJECTCL_MEM_OFFSETCL_MEM_D3D10_RESOURCE_KHRCL_MEM_D3D11_RESOURCE_KHRCL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHRCL_MEM_DX9_MEDIA_SURFACE_INFO_KHR
cl_mem_migration_flagsβ just two icons, both iconic β¨CL_MIGRATE_MEM_OBJECT_HOSTCL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED
cl_mem_object_typeβ every shape a memory object can serve π¦CL_MEM_OBJECT_BUFFERCL_MEM_OBJECT_IMAGE2DCL_MEM_OBJECT_IMAGE3DCL_MEM_OBJECT_IMAGE2D_ARRAYCL_MEM_OBJECT_IMAGE1DCL_MEM_OBJECT_IMAGE1D_ARRAYCL_MEM_OBJECT_IMAGE1D_BUFFER
cl_platform_infoβ the platform's whole personality πCL_PLATFORM_PROFILECL_PLATFORM_VERSIONCL_PLATFORM_NAMECL_PLATFORM_VENDORCL_PLATFORM_EXTENSIONSCL_PLATFORM_ICD_SUFFIX_KHR
cl_profiling_infoβ the timeline of a command, timestamped and everything β±οΈCL_PROFILING_COMMAND_QUEUEDCL_PROFILING_COMMAND_SUBMITCL_PROFILING_COMMAND_STARTCL_PROFILING_COMMAND_END
cl_program_binary_typeβ what kind of binary era we're in π§CL_PROGRAM_BINARY_TYPE_NONECL_PROGRAM_BINARY_TYPE_COMPILED_OBJECTCL_PROGRAM_BINARY_TYPE_LIBRARYCL_PROGRAM_BINARY_TYPE_EXECUTABLE
cl_program_build_infoβ how the build went, receipts included π§ΎCL_PROGRAM_BUILD_STATUSCL_PROGRAM_BUILD_OPTIONSCL_PROGRAM_BUILD_LOGCL_PROGRAM_BINARY_TYPE
cl_program_infoβ literally everything about a program πCL_PROGRAM_REFERENCE_COUNTCL_PROGRAM_CONTEXTCL_PROGRAM_NUM_DEVICESCL_PROGRAM_DEVICESCL_PROGRAM_SOURCECL_PROGRAM_BINARY_SIZESCL_PROGRAM_BINARIESCL_PROGRAM_NUM_KERNELSCL_PROGRAM_KERNEL_NAMES
cl_sampler_infoβ and the sampler's lil info dump to close us out πCL_SAMPLER_REFERENCE_COUNTCL_SAMPLER_CONTEXTCL_SAMPLER_NORMALIZED_COORDSCL_SAMPLER_ADDRESSING_MODECL_SAMPLER_FILTER_MODE
π AUTHORS π
The Khronos Group
like, the whole squad, no cap π«Ά
π COPYRIGHT π
Copyright Β© 2007-2011 The Khronos Group Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the condition that this copyright notice and permission notice shall be included in all copies or substantial portions of the Materials.
and that's the whole page, bestie, we ate and left absolutely no crumbs πβ¨ this edition is brought to you by The Khronos Group, dated 01/14/2021, living under the title ENUMERATED TYPES(3clc) π¦ go forth and enum, mwah π
π¦ where this page comes from
- ubuntu jammy: opencl-1.2-man-doc 1.0~svn33624-5 Β· other
- ubuntu noble: opencl-1.2-man-doc 1.0~svn33624-5 Β· other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms