Name Strings cl_qcom_ext_host_ptr_iocoherent Contributors Balaji Calidas, Qualcomm Technologies, Inc. Manali Torpe, Qualcomm Innovation Center, Inc. Sreelakshmi Haridas Maruthur, Qualcomm Innovation Center, Inc. Contact bcalidas at qti dot qualcomm dot com Version Version 4, 2018/03/06 Number OpenCL Extension #53 Status Shipping Extension Type OpenCL device extension Dependencies OpenCL 1.1 is required. cl_qcom_ext_host_ptr is required. This extension extends the functionality of cl_qcom_ext_host_ptr. Overview This extension extends the functionality provided by cl_qcom_ext_host_ptr by adding a new host cache policy. It allows applications to specify a new value, CL_MEM_HOST_IOCOHERENT_QCOM, for cl_mem_ext_host_ptr::host_cache_policy. When the application selects this value for host cache policy, the imported allocation is mapped as io-coherent for the GPU. This in turn avoids the need for the OpenCL driver to explicitly issue CPU cache operation calls. Although GPU performance can be slower in some cases for io-coherent allocations, the overall performance can improve due to the elimination of explicit CPU cache operations. Header File cl_ext.h New Tokens Modification to handling of argument of clCreateBuffer, clCreateImage2D and clCreateImage3D when CL_MEM_EXT_HOST_PTR_QCOM is specified in the argument. New accepted value for cl_mem_ext_host_ptr::host_cache_policy: CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 As described in the cl_qcom_ext_host_ptr spec, when CL_MEM_EXT_HOST_PTR_QCOM is enabled in the argument, then is interpreted as a pointer to cl_mem_ext_host_ptr. The application must initialize cl_mem_ext_host_ptr::host_cache_policy to one of CL_MEM_HOST_UNCACHED_QCOM, CL_MEM_HOST_WRITEBACK_QCOM, or CL_MEM_HOST_IOCOHERENT_QCOM according to the cache policy used in the host for this memory allocation. CL_MEM_HOST_IOCOHERENT_QCOM can only be specified when the memory was originally allocated as cached. Use of this value with an uncached allocation will lead to undefined results. Revision History Revision 1, 2018/01/03: Initial version. Revision 2, 2018/01/15: Minor edits. Revision 3, 2018/01/19: Formatting and misc changes. No functional changes. Revision 4, 2018/03/06: Corrected token value.