Intel® OpenCL™ Graphics Extensions

Published: 09/08/2016  

Last Updated: 09/08/2016

By Jeffrey McAllister

OpenCL Extensions available in Intel® SDK for OpenCL™ Applications

The following tables contain information about extensions to the Khronos Group OpenCL™ standard available for Intel processors.   

Notice: Not all extensions are available in all versions of the OpenCL drivers for each OS. Some features are only available on certain hardware platforms or in certain driver baselines. 


Preview Extensions

General info on preview extensions: /content/www/us/en/develop/articles/intel-opencl-experimental-features.html


Media Extensions

These extensions enable video processing applications to access hardware features in Intel processors.

Extension Name Description Supported HW Notes

See below.  Provides programmers with a macroblock-level interface to the motion estimation functionality available in the Intel graphics processor media sampler. It describes the specification of low-level built-in functions, callable from OpenCL kernels, to evaluate AVC motion estimation operations. It covers everything the host side motion estimation extensions can do and more.

Sample: Intro to Device Side AVC Motion Estimation


(new in Linux SRB4, not yet available for Windows.)




Provides a frame-level interface implemented as built-in kernels to accelerate motion estimation operations. Supports AVC block sizes, inter/intra estimation, skip checks, and motion vector costing.


  • Version 2 of this spec was introduced in early 2016.
  • Advanced VME allows access to a superset of features of the original cl_intel_motion_estimation extension  

For more info:

Motion estimation samples available in Media Server Studio samples

More info: Spec


YUV is usually a planar format.  This extension provides support for a few specific formats of packed YUV images. 

More info: Spec


Provides support for the Planar YUV (YCbCr) image formats.

More info: Spec


(new in Linux SRB4, not yet available for Windows.)


Built-in functions to facilitate the reading and writing of flexible 2D regions from images.  Augments Intel vendor extensions cl_intel_subgroups and cl_intel_subgroups_short.

More info: Spec


(new in Linux SRB4, not yet available for Windows.)

VEBox preview extensions:

  • cl_intelx_video_enhancement
  • cl_intelx_video_enhancement_color_pipeline
  • cl_intelx_video_enhancement_camera_pipeline

More info on preview features

Built-in functions to work with VEBox. 

Samples: Minimal VEBox Samples

More info: OpenCL Preview Extensions for VEBox 


(new in Linux SRB4, not yet available for Windows.)


Sharing Extensions

This group of extensions enables interoperability between OpenCL and other APIs using Intel GPUs.

Extension Name Description Supported HW Notes

The OpenCL 1.2 Extension Spec forbids interoperability with multiple graphics APIs at clCreateContext or clCreateContextFromType  time.  It defines that CL_INVALID_OPERATION should be returned in such cases.

The goal of this extension is to relax the restrictions and allow simultaneous use of API combinations as supported by a given OpenCL device.

More info: Spec 


Linux/Android Media Sharing

More info: Spec

See /content/www/us/en/develop/articles/tutorial-opencl-interoperability-with-video-acceleration-api-on-linux-os.html

Used in Media Server Studio samples




Windows sharing APIs (created before Khronos extensions below.)

See /content/www/us/en/develop/articles/d3d9-media-surface-sharing-between-intel-quick-sync-video-and-opencl-on-intel-hd-graphics.html

Used in Media Server Studio samples

More info:

d3d11 Spec

dx9 Spec





Sharing for DirectX 9, 10, 11


More info:

dx9 Spec

d3d10 Spec

d3d11 Spec







Related Pages:

More info:

gl_sharing Spec

gl_msaa_sharing Spec

gl_depth_images Spec

gl_event Spec





Subgroups Extensions

Work items in a subgroup can share data without implementing shared local memory or using barriers. This extends the work group concept to allow more efficient data sharing.

Extension Name Description Supported HW Notes

Enables work-items in a workgroup to work together let work items share data without local memory and global barriers. Similar to OpenCL 2.0 workgroups.




More info: Spec


The goal of this extension is to allow programmers to optionally specify the required subgroup size for a kernel function.  This information is   important for the correctness of many subgroup algorithms, and in some cases may be used by the compiler to generate more optimal code.

More info: Spec


Implementation controlled division of a workgroup allowing independent forward progress within the workgroup. This feature was promoted to Core in OpenCL 2.1. 

More info: Spec


Improve the performance of applications operating on 16-bit data types by extending the subgroup functions described in the cl_intel_subgroups extension to support 16-bit integer data types (shorts and ushorts).

More info: Spec




Other Extensions

Extension Name Description Supported HW Notes

Basic accelerator support

The accelerator extension consists of a unified set of OpenCL runtime APIs to create, query, and manage the lifetime of objects which represent acceleration processors, engines, or algorithms.


More info: 



This extension allows the driver to pass additional strings containing diagnostic information. The diagnostic messages can help to understand how the driver works and can provide guidance to modify an application to improve performance.

More info: 




Enables writes to 3D image objects

More info: Spec


Removes restrictions of built-in types.  Needed to write to elements of a pointer or struct of type char, uchar, char2, uchar2, short, ushort, and half.

More info: Spec


OpenCL Standard Portable Intermediate Representation (SPIR) non source representation of OpenCL.

More info: Spec


Half-precision floating-point

More info:Spec


IEEE-754 double-precision floating-point support

More info: Spec



32-bit integer base atomic operations in global memory

More info: Spec


32-bit integer extended atomic operations in global memory

More info: Spec


Access Khronos OpenCL installable client driver loader (ICD Loader)

More info: Spec


2D image from buffer creation support

More info: 




Ability to create / read mipmapped images

Adds ability to write mipmapped images, requires cl_khr_mipmap_image

More info:Spec 




Depth Images

More info: Spec


Extension to OpenCL 2.1 API which allows the driver to implement throttling behavior. Throttling behavior is implementation specific.

More info: Spec


base_atomics: Spec

extended_atomics: Spec



Deprecated Extensions

Extension Name Description
cl_intel_ctz Built-in count trailing zeroes


Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at