public class CLCapabilities
extends java.lang.Object
The instance returned by CL.createPlatformCapabilities(long) exposes the functionality present on either the platform or any of its devices.
This is unlike the PLATFORM_EXTENSIONS string, which returns only platform functionality, supported across all platform devices.
The instance returned by CL.createDeviceCapabilities(long, org.lwjgl.opencl.CLCapabilities) exposes only the functionality available on that particular device.
public final long clGetPlatformIDs
public final long clGetPlatformInfo
public final long clGetDeviceIDs
public final long clGetDeviceInfo
public final long clCreateContext
public final long clCreateContextFromType
public final long clRetainContext
public final long clReleaseContext
public final long clGetContextInfo
public final long clCreateCommandQueue
public final long clRetainCommandQueue
public final long clReleaseCommandQueue
public final long clGetCommandQueueInfo
public final long clCreateBuffer
public final long clEnqueueReadBuffer
public final long clEnqueueWriteBuffer
public final long clEnqueueCopyBuffer
public final long clEnqueueMapBuffer
public final long clCreateImage2D
public final long clCreateImage3D
public final long clGetSupportedImageFormats
public final long clEnqueueReadImage
public final long clEnqueueWriteImage
public final long clEnqueueCopyImage
public final long clEnqueueCopyImageToBuffer
public final long clEnqueueCopyBufferToImage
public final long clEnqueueMapImage
public final long clGetImageInfo
public final long clRetainMemObject
public final long clReleaseMemObject
public final long clEnqueueUnmapMemObject
public final long clGetMemObjectInfo
public final long clCreateSampler
public final long clRetainSampler
public final long clReleaseSampler
public final long clGetSamplerInfo
public final long clCreateProgramWithSource
public final long clCreateProgramWithBinary
public final long clRetainProgram
public final long clReleaseProgram
public final long clBuildProgram
public final long clUnloadCompiler
public final long clGetProgramInfo
public final long clGetProgramBuildInfo
public final long clCreateKernel
public final long clCreateKernelsInProgram
public final long clRetainKernel
public final long clReleaseKernel
public final long clSetKernelArg
public final long clGetKernelInfo
public final long clGetKernelWorkGroupInfo
public final long clEnqueueNDRangeKernel
public final long clEnqueueTask
public final long clEnqueueNativeKernel
public final long clWaitForEvents
public final long clGetEventInfo
public final long clRetainEvent
public final long clReleaseEvent
public final long clEnqueueMarker
public final long clEnqueueBarrier
public final long clEnqueueWaitForEvents
public final long clGetEventProfilingInfo
public final long clFlush
public final long clFinish
public final long clGetExtensionFunctionAddress
public final long clCreateFromGLBuffer
public final long clCreateFromGLTexture2D
public final long clCreateFromGLTexture3D
public final long clCreateFromGLRenderbuffer
public final long clGetGLObjectInfo
public final long clGetGLTextureInfo
public final long clEnqueueAcquireGLObjects
public final long clEnqueueReleaseGLObjects
public final long clCreateSubBuffer
public final long clSetMemObjectDestructorCallback
public final long clEnqueueReadBufferRect
public final long clEnqueueWriteBufferRect
public final long clEnqueueCopyBufferRect
public final long clCreateUserEvent
public final long clSetUserEventStatus
public final long clSetEventCallback
public final long clGetExtensionFunctionAddressForPlatform
public final long clRetainDevice
public final long clReleaseDevice
public final long clCreateSubDevices
public final long clCreateImage
public final long clCreateProgramWithBuiltInKernels
public final long clCompileProgram
public final long clLinkProgram
public final long clUnloadPlatformCompiler
public final long clGetKernelArgInfo
public final long clEnqueueFillBuffer
public final long clEnqueueFillImage
public final long clEnqueueMigrateMemObjects
public final long clEnqueueMarkerWithWaitList
public final long clEnqueueBarrierWithWaitList
public final long clCreateFromGLTexture
public final long clCreateCommandQueueWithProperties
public final long clCreatePipe
public final long clGetPipeInfo
public final long clSVMAlloc
public final long clSVMFree
public final long clEnqueueSVMFree
public final long clEnqueueSVMMemcpy
public final long clEnqueueSVMMemFill
public final long clEnqueueSVMMap
public final long clEnqueueSVMUnmap
public final long clSetKernelArgSVMPointer
public final long clSetKernelExecInfo
public final long clCreateSamplerWithProperties
public final long clSetDefaultDeviceCommandQueue
public final long clGetDeviceAndHostTimer
public final long clGetHostTimer
public final long clCreateProgramWithIL
public final long clCloneKernel
public final long clGetKernelSubGroupInfo
public final long clEnqueueSVMMigrateMem
public final long clSetProgramReleaseCallback
public final long clSetProgramSpecializationConstant
public final long clTrackLiveObjectsAltera
public final long clReportLiveObjectsAltera
public final long clEnqueueWaitSignalAMD
public final long clEnqueueWriteSignalAMD
public final long clEnqueueMakeBuffersResidentAMD
public final long clCreateCommandQueueWithPropertiesAPPLE
public final long clLogMessagesToSystemLogAPPLE
public final long clLogMessagesToStdoutAPPLE
public final long clLogMessagesToStderrAPPLE
public final long clGetGLContextInfoAPPLE
public final long clReleaseDeviceEXT
public final long clRetainDeviceEXT
public final long clCreateSubDevicesEXT
public final long clEnqueueMigrateMemObjectEXT
public final long clCreateAcceleratorINTEL
public final long clRetainAcceleratorINTEL
public final long clReleaseAcceleratorINTEL
public final long clGetAcceleratorInfoINTEL
public final long clGetKernelSubGroupInfoKHR
public final long clGetDeviceIDsFromVA_APIMediaAdapterINTEL
public final long clCreateFromVA_APIMediaSurfaceINTEL
public final long clEnqueueAcquireVA_APIMediaSurfacesINTEL
public final long clEnqueueReleaseVA_APIMediaSurfacesINTEL
public final long clCreateEventFromEGLSyncKHR
public final long clCreateFromEGLImageKHR
public final long clEnqueueAcquireEGLObjectsKHR
public final long clEnqueueReleaseEGLObjectsKHR
public final long clCreateEventFromGLsyncKHR
public final long clGetGLContextInfoKHR
public final long clTerminateContextKHR
public final long clGetDeviceImageInfoQCOM
public final boolean OpenCL10
CL10 is supported.public final boolean OpenCL10GL
CL10GL is supported.public final boolean OpenCL11
CL11 is supported.public final boolean OpenCL12
CL12 is supported.public final boolean OpenCL12GL
CL12GL is supported.public final boolean OpenCL20
CL20 is supported.public final boolean OpenCL21
CL21 is supported.public final boolean OpenCL22
CL22 is supported.public final boolean cl_altera_compiler_mode
ALTERACompilerMode is supported.public final boolean cl_altera_device_temperature
ALTERADeviceTemperature is supported.public final boolean cl_altera_live_object_tracking
ALTERALiveObjectTracking is supported.public final boolean cl_amd_bus_addressable_memory
AMDBusAddressableMemory is supported.public final boolean cl_amd_compile_options
This extension adds the following options, which are not part of the OpenCL specification:
To avoid source changes, there are two environment variables that can be used to change CL options during the runtime:
BuildProgram.BuildProgram.public final boolean cl_amd_device_attribute_query
AMDDeviceAttributeQuery is supported.public final boolean cl_amd_device_board_name
AMDDeviceBoardName is supported.public final boolean cl_amd_device_persistent_memory
AMDDevicePersistentMemory is supported.public final boolean cl_amd_device_profiling_timer_offset
AMDDeviceProfilingTimerOffset is supported.public final boolean cl_amd_device_topology
AMDDeviceTopology is supported.public final boolean cl_amd_event_callback
This extension provides the ability to register event callbacks for states other than COMPLETE. The full set of event states are allowed:
QUEUED, SUBMITTED, and RUNNING.
public final boolean cl_amd_fp64
This extension provides a subset of the functionality of that provided by the cl_khr_fp64 extension. When enabled, the compiler recognizes the double scalar and vector types, compiles expressions involving those types, and accepts calls to all builtin functions enabled by the cl_khr_fp64 extension. However, this extension does not guarantee that all cl_khr_fp64 built in functions are implemented and does not guarantee that the built in functions that have been implemented would be considered conformant to the cl_khr_fp64 extension.
public final boolean cl_amd_media_ops
The directive when enabled adds the following built-in functions to the OpenCL language.
Note: typen denote opencl scalar type {n = 1} and vector types {n = 4, 8, 16}.
Build-in Function
uint amd_pack(float4 src)
Description
dst = ((((uint)src.s0) & 0xff) )
+ ((((uint)src.s1) & 0xff) << 8)
+ ((((uint)src.s2) & 0xff) << 16)
+ ((((uint)src.s3) & 0xff) << 24)
Build-in Function
floatn amd_unpack3(unitn src)
Description
dst.s0 = (float)((src.s0 >> 24) & 0xff)
similar operation applied to other components of the vectors
Build-in Function
floatn amd_unpack2 (unitn src)
Description
dst.s0 = (float)((src.s0 >> 16) & 0xff)
similar operation applied to other components of the vectors
Build-in Function
floatn amd_unpack1 (unitn src)
Description
dst.s0 = (float)((src.s0 >> 8) & 0xff)
similar operation applied to other components of the vectors
Build-in Function
floatn amd_unpack0 (unitn src)
Description
dst.s0 = (float)(src.s0 & 0xff)
similar operation applied to other components of the vectors
Build-in Function
uintn amd_bitalign (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = (uint) (((((long)src0.s0) << 32) | (long)src1.s0) >> (src2.s0 & 31))
similar operation applied to other components of the vectors.
Build-in Function
uintn amd_bytealign (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = (uint) (((((long)src0.s0) << 32) | (long)src1.s0) >> ((src2.s0 & 3)*8))
similar operation applied to other components of the vectors
Build-in Function
uintn amd_lerp (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = (((((src0.s0 >> 0) & 0xff) + ((src1.s0 >> 0) & 0xff) + ((src2.s0 >> 0) & 1)) >> 1) << 0) +
(((((src0.s0 >> 8) & 0xff) + ((src1.s0 >> 8) & 0xff) + ((src2.s0 >> 8) & 1)) >> 1) << 8) +
(((((src0.s0 >> 16) & 0xff) + ((src1.s0 >> 16) & 0xff) + ((src2.s0 >> 16) & 1)) >> 1) << 16) +
(((((src0.s0 >> 24) & 0xff) + ((src1.s0 >> 24) & 0xff) + ((src2.s0 >> 24) & 1)) >> 1) << 24);
similar operation applied to other components of the vectors
Build-in Function
uintn amd_sad (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = src2.s0 +
abs(((src0.s0 >> 0) & 0xff) - ((src1.s0 >> 0) & 0xff)) +
abs(((src0.s0 >> 8) & 0xff) - ((src1.s0 >> 8) & 0xff)) +
abs(((src0.s0 >> 16) & 0xff) - ((src1.s0 >> 16) & 0xff)) +
abs(((src0.s0 >> 24) & 0xff) - ((src1.s0 >> 24) & 0xff));
similar operation applied to other components of the vectors
Build-in Function
uintn amd_sadhi (uintn src0, uintn src1n, uintn src2)
Description
dst.s0 = src2.s0 +
(abs(((src0.s0 >> 0) & 0xff) - ((src1.s0 >> 0) & 0xff)) << 16) +
(abs(((src0.s0 >> 8) & 0xff) - ((src1.s0 >> 8) & 0xff)) << 16) +
(abs(((src0.s0 >> 16) & 0xff) - ((src1.s0 >> 16) & 0xff)) << 16) +
(abs(((src0.s0 >> 24) & 0xff) - ((src1.s0 >> 24) & 0xff)) << 16);
similar operation applied to other components of the vectors
Build-in Function
uint amd_sad4(uint4 src0, uint4 src1, uint src2)
Description
dst = src2 +
abs(((src0.s0 >> 0) & 0xff) - ((src1.s0 >> 0) & 0xff)) +
abs(((src0.s0 >> 8) & 0xff) - ((src1.s0 >> 8) & 0xff)) +
abs(((src0.s0 >> 16) & 0xff) - ((src1.s0 >> 16) & 0xff)) +
abs(((src0.s0 >> 24) & 0xff) - ((src1.s0 >> 24) & 0xff)) +
abs(((src0.s1 >> 0) & 0xff) - ((src1.s0 >> 0) & 0xff)) +
abs(((src0.s1 >> 8) & 0xff) - ((src1.s1 >> 8) & 0xff)) +
abs(((src0.s1 >> 16) & 0xff) - ((src1.s1 >> 16) & 0xff)) +
abs(((src0.s1 >> 24) & 0xff) - ((src1.s1 >> 24) & 0xff)) +
abs(((src0.s2 >> 0) & 0xff) - ((src1.s2 >> 0) & 0xff)) +
abs(((src0.s2 >> 8) & 0xff) - ((src1.s2 >> 8) & 0xff)) +
abs(((src0.s2 >> 16) & 0xff) - ((src1.s2 >> 16) & 0xff)) +
abs(((src0.s2 >> 24) & 0xff) - ((src1.s2 >> 24) & 0xff)) +
abs(((src0.s3 >> 0) & 0xff) - ((src1.s3 >> 0) & 0xff)) +
abs(((src0.s3 >> 8) & 0xff) - ((src1.s3 >> 8) & 0xff)) +
abs(((src0.s3 >> 16) & 0xff) - ((src1.s3 >> 16) & 0xff)) +
abs(((src0.s3 >> 24) & 0xff) - ((src1.s3 >> 24) & 0xff));public final boolean cl_amd_media_ops2
The directive when enabled adds the following built-in functions to the OpenCL language.
Note: typen denote open scalar type { n = 1 } and vector types { n = 2, 4, 8, 16 }.
Build-in Function
uintn amd_msad (uintn src0, uintn src1, uintn src2)
Description
uchar4 src0u8 = as_uchar4(src0.s0);
uchar4 src1u8 = as_uchar4(src1.s0);
dst.s0 = src2.s0 +
((src1u8.s0 == 0) ? 0 : abs(src0u8.s0 - src1u8.s0)) +
((src1u8.s1 == 0) ? 0 : abs(src0u8.s1 - src1u8.s1)) +
((src1u8.s2 == 0) ? 0 : abs(src0u8.s2 - src1u8.s2)) +
((src1u8.s3 == 0) ? 0 : abs(src0u8.s3 - src1u8.s3));
similar operation applied to other components of the vectors
Build-in Function
ulongn amd_qsad (ulongn src0, uintn src1, ulongn src2)
Description
uchar8 src0u8 = as_uchar8(src0.s0);
ushort4 src2u16 = as_ushort4(src2.s0);
ushort4 dstu16;
dstu16.s0 = amd_sad(as_uint(src0u8.s0123), src1.s0, src2u16.s0);
dstu16.s1 = amd_sad(as_uint(src0u8.s1234), src1.s0, src2u16.s1);
dstu16.s2 = amd_sad(as_uint(src0u8.s2345), src1.s0, src2u16.s2);
dstu16.s3 = amd_sad(as_uint(src0u8.s3456), src1.s0, src2u16.s3);
dst.s0 = as_uint2(dstu16);
similar operation applied to other components of the vectors
Build-in Function
ulongn amd_mqsad (ulongn src0, uintn src1, ulongn src2)
Description
uchar8 src0u8 = as_uchar8(src0.s0);
ushort4 src2u16 = as_ushort4(src2.s0);
ushort4 dstu16;
dstu16.s0 = amd_msad(as_uint(src0u8.s0123), src1.s0, src2u16.s0);
dstu16.s1 = amd_msad(as_uint(src0u8.s1234), src1.s0, src2u16.s1);
dstu16.s2 = amd_msad(as_uint(src0u8.s2345), src1.s0, src2u16.s2);
dstu16.s3 = amd_msad(as_uint(src0u8.s3456), src1.s0, src2u16.s3);
dst.s0 = as_uint2(dstu16);
similar operation applied to other components of the vectors
Build-in Function
uintn amd_sadw (uintn src0, uintn src1, uintn src2)
Description
ushort2 src0u16 = as_ushort2(src0.s0);
ushort2 src1u16 = as_ushort2(src1.s0);
dst.s0 = src2.s0 +
abs(src0u16.s0 - src1u16.s0) +
abs(src0u16.s1 - src1u16.s1);
similar operation applied to other components of the vectors
Build-in Function
uintn amd_sadd (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = src2.s0 + abs(src0.s0 - src1.s0);
similar operation applied to other components of the vectors
Built-in Function:
uintn amd_bfm (uintn src0, uintn src1)
Description
dst.s0 = ((1 << (src0.s0 & 0x1f)) - 1) << (src1.s0 & 0x1f);
similar operation applied to other components of the vectors
Built-in Function:
uintn amd_bfe (uintn src0, uintn src1, uintn src2)
Description
NOTE: operator >> below represent logical right shift
offset = src1.s0 & 31;
width = src2.s0 & 31;
if width = 0
dst.s0 = 0;
else if (offset + width) < 32
dst.s0 = (src0.s0 << (32 - offset - width)) >> (32 - width);
else
dst.s0 = src0.s0 >> offset;
similar operation applied to other components of the vectors
Built-in Function:
intn amd_bfe (intn src0, uintn src1, uintn src2)
Description
NOTE: operator >> below represent arithmetic right shift
offset = src1.s0 & 31;
width = src2.s0 & 31;
if width = 0
dst.s0 = 0;
else if (offset + width) < 32
dst.s0 = src0.s0 << (32-offset-width) >> 32-width;
else
dst.s0 = src0.s0 >> offset;
similar operation applied to other components of the vectors
Built-in Function:
intn amd_median3 (intn src0, intn src1, intn src2)
uintn amd_median3 (uintn src0, uintn src1, uintn src2)
floatn amd_median3 (floatn src0, floatn src1, floattn src2)
Description
returns median of src0, src1, and src2
Built-in Function:
intn amd_min3 (intn src0, intn src1, intn src2)
uintn amd_min3 (uintn src0, uintn src1, uintn src2)
floatn amd_min3 (floatn src0, floatn src1, floattn src2)
Description
returns min of src0, src1, and src2
Built-in Function:
intn amd_max3 (intn src0, intn src1, intn src2)
uintn amd_max3 (uintn src0, uintn src1, uintn src2)
floatn amd_max3 (floatn src0, floatn src1, floattn src2)
Description
returns max of src0, src1, and src2public final boolean cl_amd_offline_devices
AMDOfflineDevices is supported.public final boolean cl_amd_popcnt
This extension introduces a “population count” function called popcnt. This extension was taken into core OpenCL 1.2, and the function was renamed popcount. The core 1.2 popcount function is identical to the AMD extension popcnt function.
public final boolean cl_amd_predefined_macros
The following macros are predefined when compiling OpenCL™ C kernels. These macros are defined automatically based on the device for which the code is being compiled.
Note that __GPU__ or __CPU__ are predefined whenever a GPU or CPU device is the compilation target.
public final boolean cl_amd_printf
This extension adds the built-in function printf(__constant char * restrict format, …);
This function writes output to the stdout stream associated with the host application. The format string is a character sequence that:
The format string must be resolvable at compile time; thus, it cannot be dynamically created by the executing program. (Note that the use of variadic arguments in the built-in printf does not imply its use in other builtins; more importantly, it is not valid to use printf in user-defined functions or kernels.)
The OpenCL C printf closely matches the definition found as part of the C99 standard. Note that conversions introduced in the format string with % are supported with the following guidelines:
public final boolean cl_amd_vec3
This extension adds support for vectors with three elements: float3, short3, char3, etc. This data type was added to OpenCL 1.1 as a core feature.
public final boolean cl_APPLE_biased_fixed_point_image_formats
APPLEBiasedFixedPointImageFormats is supported.public final boolean cl_APPLE_command_queue_priority
APPLECommandQueuePriority is supported.public final boolean cl_APPLE_command_queue_select_compute_units
APPLECommandQueueSelectComputeUnits is supported.public final boolean cl_APPLE_ContextLoggingFunctions
APPLEContextLoggingFunctions is supported.public final boolean cl_APPLE_fixed_alpha_channel_orders
APPLEFixedAlphaChannelOrders is supported.public final boolean cl_APPLE_fp64_basic_ops
APPLE_fp64_basic_ops is supported.public final boolean cl_APPLE_gl_sharing
APPLEGLSharing is supported.public final boolean cl_APPLE_query_kernel_names
APPLEQueryKernelNames is supported.public final boolean cl_arm_core_id
This extension provides a built-in function (uint arm_get_core_id( void )) which returns a unique ID for the compute unit that a work-group is
running on. This value is uniform for a work-group.
This value can be used for a core-specific cache or atomic pool where the storage is required to be in global memory and persistent (but not ordered) between work-groups. This does not provide any additional ordering on top of the existing guarantees between workgroups, nor does it provide any guarantee of concurrent execution.
The IDs for the compute units may not be consecutive and applications must make sure they allocate enough memory to accommodate all the compute units present on the device. A device info query allows the application to know the IDs associated with the compute units on a given device.
public final boolean cl_arm_printf
ARMPrintf is supported.public final boolean cl_ext_atomic_counters_32
EXTAtomicCounters32 is supported.public final boolean cl_ext_atomic_counters_64
EXTAtomicCounters64 is supported.public final boolean cl_ext_device_fission
EXTDeviceFission is supported.public final boolean cl_ext_migrate_memobject
EXTMigrateMemobject is supported.public final boolean cl_intel_accelerator
INTELAccelerator is supported.public final boolean cl_intel_advanced_motion_estimation
INTELAdvancedMotionEstimation is supported.public final boolean cl_intel_device_partition_by_names
INTELDevicePartitionByNames is supported.public final boolean cl_intel_device_side_avc_motion_estimation
INTELDeviceSideAVCMotionEstimation is supported.public final boolean cl_intel_driver_diagnostics
INTELDriverDiagnostics is supported.public final boolean cl_intel_egl_image_yuv
INTELEGLImageYUV is supported.public final boolean cl_intel_media_block_io
intel_subgroups and
intel_media_block_io by the specification of additional built-in functions to facilitate the reading and writing of flexible 2D
regions from images. This API allows for the explicit specification of the width and height of the image regions.
While not required, this extension is most useful when the subgroup size is known at compile-time. The primary use case for this extension is to
support the reading of the edge texels (or image elements) of neighboring macro-blocks as described in the Intel vendor extension
intel_device_side_avc_motion_estimation. When using the built-in functions from cl_intel_device_ side_avc_motion_estimation the
subgroup size is implicitly fixed to 16. In other use cases the subgroup size may be fixed using the intel_required_subgroup_size extension, if
needed.
public final boolean cl_intel_motion_estimation
INTELMotionEstimation is supported.public final boolean cl_intel_packed_yuv
INTELPackedYUV is supported.public final boolean cl_intel_planar_yuv
INTELPlanarYUV is supported.public final boolean cl_intel_printf
intel_printf is supported.public final boolean cl_intel_required_subgroup_size
INTELRequiredSubgroupSize is supported.public final boolean cl_intel_simultaneous_sharing
INTELSimultaneousSharing is supported.public final boolean cl_intel_subgroups
INTELSubgroups is supported.public final boolean cl_intel_subgroups_short
intel_subgroups extension to support 16-bit integer data types (shorts and ushorts). Specifically, the extension:
Requires OpenCL 1.2 and intel_subgroups
public final boolean cl_intel_thread_local_exec
INTELThreadLocalExec is supported.public final boolean cl_intel_va_api_media_sharing
INTELVAAPIMediaSharing is supported.public final boolean cl_khr_3d_image_writes
This extension adds support for kernel writes to 3D images.
public final boolean cl_khr_byte_addressable_store
This extension eliminates the restriction of not allowing writes to a pointer (or array elements) of types less than 32-bit wide in kernel program.
public final boolean cl_khr_depth_images
KHRDepthImages is supported.public final boolean cl_khr_device_enqueue_local_arg_types
This extension allows arguments to blocks passed to enqueue_kernel functions to be declared as a pointer to any type (built-in or user-defined) in
local memory instead of just local void *.
public final boolean cl_khr_egl_event
KHREGLEvent is supported.public final boolean cl_khr_egl_image
KHREGLImage is supported.public final boolean cl_khr_fp16
KHRFP16 is supported.public final boolean cl_khr_fp64
KHRFP64 is supported.public final boolean cl_khr_gl_depth_images
KHRGLDepthImages is supported.public final boolean cl_khr_gl_event
KHRGLEvent is supported.public final boolean cl_khr_gl_msaa_sharing
KHRGLMSAASharing is supported.public final boolean cl_khr_gl_sharing
KHRGLSharing is supported.public final boolean cl_khr_global_int32_base_atomics
This extension adds basic atomic operations on 32-bit integers in global memory.
public final boolean cl_khr_global_int32_extended_atomics
This extension adds extended atomic operations on 32-bit integers in global memory.
public final boolean cl_khr_icd
KHRICD is supported.public final boolean cl_khr_image2d_from_buffer
KHRImage2DFromBuffer is supported.public final boolean cl_khr_initialize_memory
KHRInitializeMemory is supported.public final boolean cl_khr_int64_base_atomics
This extension adds basic atomic operations on 64-bit integers in both global and local memory.
public final boolean cl_khr_int64_extended_atomics
This extension adds extended atomic operations on 64-bit integers in both global and local memory.
public final boolean cl_khr_local_int32_base_atomics
This extension adds basic atomic operations on 32-bit integers in local memory.
public final boolean cl_khr_local_int32_extended_atomics
This extension adds extended atomic operations on 32-bit integers in local memory.
public final boolean cl_khr_mipmap_image
KHRMipmapImage is supported.public final boolean cl_khr_mipmap_image_writes
This extension adds built-in functions that can be used to write a mip-mapped image in an OpenCL C program.
public final boolean cl_khr_priority_hints
KHRPriorityHints is supported.public final boolean cl_khr_select_fprounding_mode
This extension adds support for specifying the rounding mode for an instruction or group of instructions in the program source.
The appropriate rounding mode can be specified using #pragma OPENCL SELECT_ROUNDING_MODE rounding-mode in the program source.
The #pragma OPENCL SELECT_ROUNDING_MODE sets the rounding mode for all instructions that operate on floating-point types (scalar or vector
types) or produce floating-point values that follow this pragma in the program source until the next #pragma OPENCL SELECT_ROUNDING_MODE is
encountered. Note that the rounding mode specified for a block of code is known at compile time. Except where otherwise documented, the callee
functions do not inherit the rounding mode of the caller function.
If this extension is enabled, the __ROUNDING_MODE__ preprocessor symbol shall be defined to be one of the following according to the current
rounding mode:
#define __ROUNDING_MODE__ rte
#define __ROUNDING_MODE__ rtz
#define __ROUNDING_MODE__ rtp
#define __ROUNDING_MODE__ rtz
The default rounding mode is round to nearest even. The built-in math functions, the common functions, and the geometric functions are implemented with the round to nearest even rounding mode.
Various built-in conversions and the vstore_half and vstorea_halfn built-in functions that do not specify a rounding mode inherit the current rounding mode. Conversions from floating-point to integer type always use rtz mode, except where the user specifically asks for another rounding mode.
Notes The above four rounding modes are defined by IEEE 754. Floating-point calculations may be carried out internally with extra precision and then rounded to fit into the destination type. Round to nearest even is currently the only rounding mode required by the OpenCL specification and is therefore the default rounding mode. In addition, only static selection of rounding mode is supported. Dynamically reconfiguring the rounding modes as specified by the IEEE 754 spec is not a requirement.
public final boolean cl_khr_spir
KHRSPIR is supported.public final boolean cl_khr_subgroup_named_barrier
KHRSubgroupNamedBarrier is supported.public final boolean cl_khr_terminate_context
KHRTerminateContext is supported.public final boolean cl_khr_throttle_hints
KHRThrottleHints is supported.public final boolean cl_nv_compiler_options
This extension allows the programmer to pass options to the PTX assembler allowing greater control over code generation.
-cl-nv-maxrregcount <N>
Passed on to ptxas as --maxrregcount <N>
N is a positive integer.
Specify the maximum number of registers that GPU functions can use.
Until a function-specific limit, a higher value will generally increase
the performance of individual GPU threads that execute this function.
However, because thread registers are allocated from a global register
pool on each GPU, a higher value of this option will also reduce the
maximum thread block size, thereby reducing the amount of thread
parallelism. Hence, a good maxrregcount value is the result of a
trade-off.
If this option is not specified, then no maximum is assumed. Otherwise
the specified value will be rounded to the next multiple of 4 registers
until the GPU specific maximum of 128 registers.
-cl-nv-opt-level <N>
Passed on to ptxas as --opt-level <N>
N is a positive integer, or 0 (no optimization).
Specify optimization level.
Default value: 3.
-cl-nv-verbose
Passed on to ptxas as --verbose
Enable verbose mode.
Output will be reported in the build log (accessible through the
callback parameter to clBuildProgram).public final boolean cl_nv_device_attribute_query
NVDeviceAttributeQuery is supported.public final boolean cl_nv_pragma_unroll
This extension extends the OpenCL C language with a hint that allows loops to be unrolled. This pragma must be used for a loop and can be used to specify full unrolling or partial unrolling by a certain amount. This is a hint and the compiler may ignore this pragma for any reason.
The principal goal of the pragma unroll is to improve the performance of loops via unrolling. Typically this enables other optimizations or improves instruction level parallelism of a thread.
A user may specify that a loop in the source program be unrolled. This is done via a pragma. The syntax of this pragma is as follows
#pragma unroll [unroll-factor]
The pragma unroll may optionally specify an unroll factor. The pragma must be placed immediately before the loop and only applies to that loop.
If unroll factor is not specified then the compiler will try to do complete or full unrolling of the loop. If a loop unroll factor is specified the compiler will perform partial loop unrolling. The loop factor, if specified, must be a compile time non negative integer constant.
A loop unroll factor of 1 means that the compiler should not unroll the loop.
A complete unroll specification has no effect if the trip count of the loop is not compile-time computable.
public final boolean cl_qcom_ext_host_ptr
QCOMEXTHostPtr is supported.public final boolean cl_qcom_ext_host_ptr_iocoherent
QCOMEXTHostPtrIOCoherent is supported.Copyright LWJGL. All Rights Reserved. License terms.