mirror of https://github.com/commaai/openpilot.git
256 lines
9.1 KiB
C
256 lines
9.1 KiB
C
|
/* Copyright (c) 2009-2017 Qualcomm Technologies, Inc. All Rights Reserved.
|
||
|
* Qualcomm Technologies Proprietary and Confidential.
|
||
|
*/
|
||
|
|
||
|
#ifndef __OPENCL_CL_EXT_QCOM_H
|
||
|
#define __OPENCL_CL_EXT_QCOM_H
|
||
|
|
||
|
// Needed by cl_khr_egl_event extension
|
||
|
#include <EGL/egl.h>
|
||
|
#include <EGL/eglext.h>
|
||
|
#include <CL/cl_ext.h>
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/************************************
|
||
|
* cl_qcom_create_buffer_from_image *
|
||
|
************************************/
|
||
|
|
||
|
#define CL_BUFFER_FROM_IMAGE_ROW_PITCH_QCOM 0x40C0
|
||
|
#define CL_BUFFER_FROM_IMAGE_SLICE_PITCH_QCOM 0x40C1
|
||
|
|
||
|
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||
|
clCreateBufferFromImageQCOM(cl_mem image,
|
||
|
cl_mem_flags flags,
|
||
|
cl_int *errcode_ret);
|
||
|
|
||
|
|
||
|
/************************************
|
||
|
* cl_qcom_limited_printf extension *
|
||
|
************************************/
|
||
|
|
||
|
/* Builtin printf function buffer size in bytes. */
|
||
|
#define CL_DEVICE_PRINTF_BUFFER_SIZE_QCOM 0x1049
|
||
|
|
||
|
|
||
|
/*************************************
|
||
|
* cl_qcom_extended_images extension *
|
||
|
*************************************/
|
||
|
|
||
|
#define CL_CONTEXT_ENABLE_EXTENDED_IMAGES_QCOM 0x40AA
|
||
|
#define CL_DEVICE_EXTENDED_IMAGE2D_MAX_WIDTH_QCOM 0x40AB
|
||
|
#define CL_DEVICE_EXTENDED_IMAGE2D_MAX_HEIGHT_QCOM 0x40AC
|
||
|
#define CL_DEVICE_EXTENDED_IMAGE3D_MAX_WIDTH_QCOM 0x40AD
|
||
|
#define CL_DEVICE_EXTENDED_IMAGE3D_MAX_HEIGHT_QCOM 0x40AE
|
||
|
#define CL_DEVICE_EXTENDED_IMAGE3D_MAX_DEPTH_QCOM 0x40AF
|
||
|
|
||
|
/*************************************
|
||
|
* cl_qcom_perf_hint extension *
|
||
|
*************************************/
|
||
|
|
||
|
typedef cl_uint cl_perf_hint;
|
||
|
|
||
|
#define CL_CONTEXT_PERF_HINT_QCOM 0x40C2
|
||
|
|
||
|
/*cl_perf_hint*/
|
||
|
#define CL_PERF_HINT_HIGH_QCOM 0x40C3
|
||
|
#define CL_PERF_HINT_NORMAL_QCOM 0x40C4
|
||
|
#define CL_PERF_HINT_LOW_QCOM 0x40C5
|
||
|
|
||
|
extern CL_API_ENTRY cl_int CL_API_CALL
|
||
|
clSetPerfHintQCOM(cl_context context,
|
||
|
cl_perf_hint perf_hint);
|
||
|
|
||
|
// This extension is published at Khronos, so its definitions are made in cl_ext.h.
|
||
|
// This duplication is for backward compatibility.
|
||
|
|
||
|
#ifndef CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM
|
||
|
|
||
|
/*********************************
|
||
|
* cl_qcom_android_native_buffer_host_ptr extension
|
||
|
*********************************/
|
||
|
|
||
|
#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6
|
||
|
|
||
|
|
||
|
typedef struct _cl_mem_android_native_buffer_host_ptr
|
||
|
{
|
||
|
// Type of external memory allocation.
|
||
|
// Must be CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM for Android native buffers.
|
||
|
cl_mem_ext_host_ptr ext_host_ptr;
|
||
|
|
||
|
// Virtual pointer to the android native buffer
|
||
|
void* anb_ptr;
|
||
|
|
||
|
} cl_mem_android_native_buffer_host_ptr;
|
||
|
|
||
|
#endif //#ifndef CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM
|
||
|
|
||
|
/***********************************
|
||
|
* cl_img_egl_image extension *
|
||
|
************************************/
|
||
|
typedef void* CLeglImageIMG;
|
||
|
typedef void* CLeglDisplayIMG;
|
||
|
|
||
|
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||
|
clCreateFromEGLImageIMG(cl_context context,
|
||
|
cl_mem_flags flags,
|
||
|
CLeglImageIMG image,
|
||
|
CLeglDisplayIMG display,
|
||
|
cl_int *errcode_ret);
|
||
|
|
||
|
|
||
|
/*********************************
|
||
|
* cl_qcom_other_image extension
|
||
|
*********************************/
|
||
|
|
||
|
// Extended flag for creating/querying QCOM non-standard images
|
||
|
#define CL_MEM_OTHER_IMAGE_QCOM (1<<25)
|
||
|
|
||
|
// cl_channel_type
|
||
|
#define CL_QCOM_UNORM_MIPI10 0x4159
|
||
|
#define CL_QCOM_UNORM_MIPI12 0x415A
|
||
|
#define CL_QCOM_UNSIGNED_MIPI10 0x415B
|
||
|
#define CL_QCOM_UNSIGNED_MIPI12 0x415C
|
||
|
#define CL_QCOM_UNORM_INT10 0x415D
|
||
|
#define CL_QCOM_UNORM_INT12 0x415E
|
||
|
#define CL_QCOM_UNSIGNED_INT16 0x415F
|
||
|
|
||
|
// cl_channel_order
|
||
|
// Dedicate 0x4130-0x415F range for QCOM extended image formats
|
||
|
// 0x4130 - 0x4132 range is assigned to pixel-oriented compressed format
|
||
|
#define CL_QCOM_BAYER 0x414E
|
||
|
|
||
|
#define CL_QCOM_NV12 0x4133
|
||
|
#define CL_QCOM_NV12_Y 0x4134
|
||
|
#define CL_QCOM_NV12_UV 0x4135
|
||
|
|
||
|
#define CL_QCOM_TILED_NV12 0x4136
|
||
|
#define CL_QCOM_TILED_NV12_Y 0x4137
|
||
|
#define CL_QCOM_TILED_NV12_UV 0x4138
|
||
|
|
||
|
#define CL_QCOM_P010 0x413C
|
||
|
#define CL_QCOM_P010_Y 0x413D
|
||
|
#define CL_QCOM_P010_UV 0x413E
|
||
|
|
||
|
#define CL_QCOM_TILED_P010 0x413F
|
||
|
#define CL_QCOM_TILED_P010_Y 0x4140
|
||
|
#define CL_QCOM_TILED_P010_UV 0x4141
|
||
|
|
||
|
|
||
|
#define CL_QCOM_TP10 0x4145
|
||
|
#define CL_QCOM_TP10_Y 0x4146
|
||
|
#define CL_QCOM_TP10_UV 0x4147
|
||
|
|
||
|
#define CL_QCOM_TILED_TP10 0x4148
|
||
|
#define CL_QCOM_TILED_TP10_Y 0x4149
|
||
|
#define CL_QCOM_TILED_TP10_UV 0x414A
|
||
|
|
||
|
/*********************************
|
||
|
* cl_qcom_compressed_image extension
|
||
|
*********************************/
|
||
|
|
||
|
// Extended flag for creating/querying QCOM non-planar compressed images
|
||
|
#define CL_MEM_COMPRESSED_IMAGE_QCOM (1<<27)
|
||
|
|
||
|
// Extended image format
|
||
|
// cl_channel_order
|
||
|
#define CL_QCOM_COMPRESSED_RGBA 0x4130
|
||
|
#define CL_QCOM_COMPRESSED_RGBx 0x4131
|
||
|
|
||
|
#define CL_QCOM_COMPRESSED_NV12_Y 0x413A
|
||
|
#define CL_QCOM_COMPRESSED_NV12_UV 0x413B
|
||
|
|
||
|
#define CL_QCOM_COMPRESSED_P010 0x4142
|
||
|
#define CL_QCOM_COMPRESSED_P010_Y 0x4143
|
||
|
#define CL_QCOM_COMPRESSED_P010_UV 0x4144
|
||
|
|
||
|
#define CL_QCOM_COMPRESSED_TP10 0x414B
|
||
|
#define CL_QCOM_COMPRESSED_TP10_Y 0x414C
|
||
|
#define CL_QCOM_COMPRESSED_TP10_UV 0x414D
|
||
|
|
||
|
#define CL_QCOM_COMPRESSED_NV12_4R 0x414F
|
||
|
#define CL_QCOM_COMPRESSED_NV12_4R_Y 0x4150
|
||
|
#define CL_QCOM_COMPRESSED_NV12_4R_UV 0x4151
|
||
|
/*********************************
|
||
|
* cl_qcom_compressed_yuv_image_read extension
|
||
|
*********************************/
|
||
|
|
||
|
// Extended flag for creating/querying QCOM compressed images
|
||
|
#define CL_MEM_COMPRESSED_YUV_IMAGE_QCOM (1<<28)
|
||
|
|
||
|
// Extended image format
|
||
|
#define CL_QCOM_COMPRESSED_NV12 0x10C4
|
||
|
|
||
|
// Extended flag for setting ION buffer allocation type
|
||
|
#define CL_MEM_ION_HOST_PTR_COMPRESSED_YUV_QCOM 0x40CD
|
||
|
#define CL_MEM_ION_HOST_PTR_PROTECTED_COMPRESSED_YUV_QCOM 0x40CE
|
||
|
|
||
|
/*********************************
|
||
|
* cl_qcom_accelerated_image_ops
|
||
|
*********************************/
|
||
|
#define CL_MEM_OBJECT_WEIGHT_IMAGE_QCOM 0x4110
|
||
|
#define CL_DEVICE_HOF_MAX_NUM_PHASES_QCOM 0x4111
|
||
|
#define CL_DEVICE_HOF_MAX_FILTER_SIZE_X_QCOM 0x4112
|
||
|
#define CL_DEVICE_HOF_MAX_FILTER_SIZE_Y_QCOM 0x4113
|
||
|
#define CL_DEVICE_BLOCK_MATCHING_MAX_REGION_SIZE_X_QCOM 0x4114
|
||
|
#define CL_DEVICE_BLOCK_MATCHING_MAX_REGION_SIZE_Y_QCOM 0x4115
|
||
|
|
||
|
//Extended flag for specifying weight image type
|
||
|
#define CL_WEIGHT_IMAGE_SEPARABLE_QCOM (1<<0)
|
||
|
|
||
|
// Box Filter
|
||
|
typedef struct _cl_box_filter_size_qcom
|
||
|
{
|
||
|
// Width of box filter on X direction.
|
||
|
float box_filter_width;
|
||
|
|
||
|
// Height of box filter on Y direction.
|
||
|
float box_filter_height;
|
||
|
} cl_box_filter_size_qcom;
|
||
|
|
||
|
// HOF Weight Image Desc
|
||
|
typedef struct _cl_weight_desc_qcom
|
||
|
{
|
||
|
/** Coordinate of the "center" point of the weight image,
|
||
|
based on the weight image's top-left corner as the origin. */
|
||
|
size_t center_coord_x;
|
||
|
size_t center_coord_y;
|
||
|
cl_bitfield flags;
|
||
|
} cl_weight_desc_qcom;
|
||
|
|
||
|
typedef struct _cl_weight_image_desc_qcom
|
||
|
{
|
||
|
cl_image_desc image_desc;
|
||
|
cl_weight_desc_qcom weight_desc;
|
||
|
} cl_weight_image_desc_qcom;
|
||
|
|
||
|
/*************************************
|
||
|
* cl_qcom_protected_context extension *
|
||
|
*************************************/
|
||
|
|
||
|
#define CL_CONTEXT_PROTECTED_QCOM 0x40C7
|
||
|
#define CL_MEM_ION_HOST_PTR_PROTECTED_QCOM 0x40C8
|
||
|
|
||
|
/*************************************
|
||
|
* cl_qcom_priority_hint extension *
|
||
|
*************************************/
|
||
|
#define CL_PRIORITY_HINT_NONE_QCOM 0
|
||
|
typedef cl_uint cl_priority_hint;
|
||
|
|
||
|
#define CL_CONTEXT_PRIORITY_HINT_QCOM 0x40C9
|
||
|
|
||
|
/*cl_priority_hint*/
|
||
|
#define CL_PRIORITY_HINT_HIGH_QCOM 0x40CA
|
||
|
#define CL_PRIORITY_HINT_NORMAL_QCOM 0x40CB
|
||
|
#define CL_PRIORITY_HINT_LOW_QCOM 0x40CC
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* __OPENCL_CL_EXT_QCOM_H */
|