blob: 710f146223831e1af13f31037cfb9d06aede1763 [file] [log] [blame]
Name String
cl_intel_egl_image_yuv
Contributors
Ben Ashbaugh, Intel
Pawel Wilma, Intel
Bartosz Sochacki, Intel
Contact
Pawel Wilma, Intel (pawel.wilma 'at' intel.com)
Version
Version 1.0, June 03, 2015
Number
OpenCL Extension #37
Status
Final Draft
Extension Type
OpenCL platform extension
Dependencies
OpenCL 1.2 is required and cl_khr_egl_image implementation supporting
sharing of images between EGL and OpenCL is required. This extension
is written against revision 26 of the OpenCL 2.0 extension specification
and revision 26 of OpenCL 2.0 specification.
Overview
The goal of this extension is to increase interoperability between OpenCL
and EGL by introducing support for planar YUV images. Specifically, this
extension adds the ability to create OpenCL memory objects representing
individual planes of an EGL planar YUV image.
New Tokens
Accepted as property in <properties> parameter of function clCreateFromEGLImageKHR
and as <param_name> parameter of function clGetImageInfo
CL_EGL_YUV_PLANE_INTEL 0x4107
Additions to Chapter 9 of the OpenCL 2.0 Extension Specification
In section 9.19.4, replace the description of <properties> under
clCreateFromEGLImageKHR with:
"<properties> specifies a list of property names and their corresponding
values. Each property name is immediately followed by the corresponding
desired value. The list is terminated with 0. <properties> can be NULL.
Supported property names and values:
----------------------------------------------------------------------------------------
Property name Property value Description
----------------------- -------------- -----------
CL_EGL_YUV_PLANE_INTEL -1,0,1,... Defines plane from planar YUV image to be
used as OpenCL image source. If the value
specified for this property name is not
valid the function returns error code
CL_INVALID_VALUE. Default value is -1 which
represents all planes of the image.
----------------------------------------------------------------------------------------"
At the end of section 9.19.4 add following description:
"Supported planar YUV formats
------------------------------------------------------------------
Format Plane cl_channel_order cl_channel_type
------ -------------------- ---------------- ---------------
NV12 0 CL_R CL_UNORM_INT8
NV12 1 CL_RG CL_UNORM_INT8
------------------------------------------------------------------
Table 9.19.4.1: List of planar YUV formats and corresponding OpenCL
Image Formats.
For the NV12 surface format, plane 0 corresponds to the Y channel
data and plane 1 corresponds to the UV channel data.
In case of creating OpenCL image based on Y-plane from NV12 image
the <properties> could be defined in following way:
cl_egl_image_properties_khr properties[] =
{
CL_EGL_YUV_PLANE_INTEL, 0,
CL_NONE
};
cl_mem image = clCreateFromEGLImageKHR( context, display, egl_image,
flags, properties, &error_code );"
Additions to Chapter 5 of the OpenCL2.0 Specification
Add to the list of errors for clGetImageInfo:
* CL_INVALID_EGL_OBJECT_KHR if <param_name> is CL_EGL_YUV_PLANE_INTEL
and <image> was not created by the function clCreateFromEGLImageKHR.
Extend table 5.10 to include the following entry:
-------------------------------------------------------------------------
cl_image_info Return type Info. returned in <param_value>
------------- ----------- -----------------------------------
CL_EGL_YUV_PLANE_INTEL cl_int If <image> was created using
clCreateFromEGLImageKHR, returns
the value of CL_EGL_YUV_PLANE_INTEL
property from <properties> argument
specified when <image> was created.
-------------------------------------------------------------------------
Issues
None
Revision History
Version 1.0 (2015, June 03): First public revision.