xref: /aosp_15_r20/external/OpenCL-Headers/CL/cl_egl.h (revision 3cc257528f335c5672e46865a03b8ee020e5fe2d)
1*3cc25752SFrank Piva /*******************************************************************************
2*3cc25752SFrank Piva  * Copyright (c) 2008-2023 The Khronos Group Inc.
3*3cc25752SFrank Piva  *
4*3cc25752SFrank Piva  * Licensed under the Apache License, Version 2.0 (the "License");
5*3cc25752SFrank Piva  * you may not use this file except in compliance with the License.
6*3cc25752SFrank Piva  * You may obtain a copy of the License at
7*3cc25752SFrank Piva  *
8*3cc25752SFrank Piva  *    http://www.apache.org/licenses/LICENSE-2.0
9*3cc25752SFrank Piva  *
10*3cc25752SFrank Piva  * Unless required by applicable law or agreed to in writing, software
11*3cc25752SFrank Piva  * distributed under the License is distributed on an "AS IS" BASIS,
12*3cc25752SFrank Piva  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*3cc25752SFrank Piva  * See the License for the specific language governing permissions and
14*3cc25752SFrank Piva  * limitations under the License.
15*3cc25752SFrank Piva  ******************************************************************************/
16*3cc25752SFrank Piva 
17*3cc25752SFrank Piva #ifndef OPENCL_CL_EGL_H_
18*3cc25752SFrank Piva #define OPENCL_CL_EGL_H_
19*3cc25752SFrank Piva 
20*3cc25752SFrank Piva /*
21*3cc25752SFrank Piva ** This header is generated from the Khronos OpenCL XML API Registry.
22*3cc25752SFrank Piva */
23*3cc25752SFrank Piva 
24*3cc25752SFrank Piva #include <CL/cl.h>
25*3cc25752SFrank Piva 
26*3cc25752SFrank Piva /* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
27*3cc25752SFrank Piva #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
28*3cc25752SFrank Piva #define CL_NO_EXTENSION_PROTOTYPES
29*3cc25752SFrank Piva #endif
30*3cc25752SFrank Piva 
31*3cc25752SFrank Piva /* CL_NO_EXTENSION_PROTOTYPES implies
32*3cc25752SFrank Piva    CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
33*3cc25752SFrank Piva    CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
34*3cc25752SFrank Piva #if defined(CL_NO_EXTENSION_PROTOTYPES) && \
35*3cc25752SFrank Piva     !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
36*3cc25752SFrank Piva #define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
37*3cc25752SFrank Piva #endif
38*3cc25752SFrank Piva #if defined(CL_NO_EXTENSION_PROTOTYPES) && \
39*3cc25752SFrank Piva     !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
40*3cc25752SFrank Piva #define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
41*3cc25752SFrank Piva #endif
42*3cc25752SFrank Piva 
43*3cc25752SFrank Piva #ifdef __cplusplus
44*3cc25752SFrank Piva extern "C" {
45*3cc25752SFrank Piva #endif
46*3cc25752SFrank Piva 
47*3cc25752SFrank Piva /***************************************************************
48*3cc25752SFrank Piva * cl_khr_egl_image
49*3cc25752SFrank Piva ***************************************************************/
50*3cc25752SFrank Piva #define cl_khr_egl_image 1
51*3cc25752SFrank Piva #define CL_KHR_EGL_IMAGE_EXTENSION_NAME \
52*3cc25752SFrank Piva     "cl_khr_egl_image"
53*3cc25752SFrank Piva 
54*3cc25752SFrank Piva /* Command type for events created with clEnqueueAcquireEGLObjectsKHR */
55*3cc25752SFrank Piva #define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR                0x202F
56*3cc25752SFrank Piva #define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR                  0x202D
57*3cc25752SFrank Piva #define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR                  0x202E
58*3cc25752SFrank Piva 
59*3cc25752SFrank Piva /* Error type for clCreateFromEGLImageKHR */
60*3cc25752SFrank Piva #define CL_INVALID_EGL_OBJECT_KHR                           -1093
61*3cc25752SFrank Piva #define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR                    -1092
62*3cc25752SFrank Piva 
63*3cc25752SFrank Piva /* CLeglImageKHR is an opaque handle to an EGLImage */
64*3cc25752SFrank Piva typedef void*               CLeglImageKHR;
65*3cc25752SFrank Piva 
66*3cc25752SFrank Piva /* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
67*3cc25752SFrank Piva typedef void*               CLeglDisplayKHR;
68*3cc25752SFrank Piva 
69*3cc25752SFrank Piva /* properties passed to clCreateFromEGLImageKHR */
70*3cc25752SFrank Piva typedef intptr_t            cl_egl_image_properties_khr;
71*3cc25752SFrank Piva 
72*3cc25752SFrank Piva 
73*3cc25752SFrank Piva typedef cl_mem CL_API_CALL
74*3cc25752SFrank Piva clCreateFromEGLImageKHR_t(
75*3cc25752SFrank Piva     cl_context context,
76*3cc25752SFrank Piva     CLeglDisplayKHR egldisplay,
77*3cc25752SFrank Piva     CLeglImageKHR eglimage,
78*3cc25752SFrank Piva     cl_mem_flags flags,
79*3cc25752SFrank Piva     const cl_egl_image_properties_khr* properties,
80*3cc25752SFrank Piva     cl_int* errcode_ret);
81*3cc25752SFrank Piva 
82*3cc25752SFrank Piva typedef clCreateFromEGLImageKHR_t *
83*3cc25752SFrank Piva clCreateFromEGLImageKHR_fn CL_API_SUFFIX__VERSION_1_0;
84*3cc25752SFrank Piva 
85*3cc25752SFrank Piva typedef cl_int CL_API_CALL
86*3cc25752SFrank Piva clEnqueueAcquireEGLObjectsKHR_t(
87*3cc25752SFrank Piva     cl_command_queue command_queue,
88*3cc25752SFrank Piva     cl_uint num_objects,
89*3cc25752SFrank Piva     const cl_mem* mem_objects,
90*3cc25752SFrank Piva     cl_uint num_events_in_wait_list,
91*3cc25752SFrank Piva     const cl_event* event_wait_list,
92*3cc25752SFrank Piva     cl_event* event);
93*3cc25752SFrank Piva 
94*3cc25752SFrank Piva typedef clEnqueueAcquireEGLObjectsKHR_t *
95*3cc25752SFrank Piva clEnqueueAcquireEGLObjectsKHR_fn CL_API_SUFFIX__VERSION_1_0;
96*3cc25752SFrank Piva 
97*3cc25752SFrank Piva typedef cl_int CL_API_CALL
98*3cc25752SFrank Piva clEnqueueReleaseEGLObjectsKHR_t(
99*3cc25752SFrank Piva     cl_command_queue command_queue,
100*3cc25752SFrank Piva     cl_uint num_objects,
101*3cc25752SFrank Piva     const cl_mem* mem_objects,
102*3cc25752SFrank Piva     cl_uint num_events_in_wait_list,
103*3cc25752SFrank Piva     const cl_event* event_wait_list,
104*3cc25752SFrank Piva     cl_event* event);
105*3cc25752SFrank Piva 
106*3cc25752SFrank Piva typedef clEnqueueReleaseEGLObjectsKHR_t *
107*3cc25752SFrank Piva clEnqueueReleaseEGLObjectsKHR_fn CL_API_SUFFIX__VERSION_1_0;
108*3cc25752SFrank Piva 
109*3cc25752SFrank Piva #if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
110*3cc25752SFrank Piva 
111*3cc25752SFrank Piva extern CL_API_ENTRY cl_mem CL_API_CALL
112*3cc25752SFrank Piva clCreateFromEGLImageKHR(
113*3cc25752SFrank Piva     cl_context context,
114*3cc25752SFrank Piva     CLeglDisplayKHR egldisplay,
115*3cc25752SFrank Piva     CLeglImageKHR eglimage,
116*3cc25752SFrank Piva     cl_mem_flags flags,
117*3cc25752SFrank Piva     const cl_egl_image_properties_khr* properties,
118*3cc25752SFrank Piva     cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
119*3cc25752SFrank Piva 
120*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL
121*3cc25752SFrank Piva clEnqueueAcquireEGLObjectsKHR(
122*3cc25752SFrank Piva     cl_command_queue command_queue,
123*3cc25752SFrank Piva     cl_uint num_objects,
124*3cc25752SFrank Piva     const cl_mem* mem_objects,
125*3cc25752SFrank Piva     cl_uint num_events_in_wait_list,
126*3cc25752SFrank Piva     const cl_event* event_wait_list,
127*3cc25752SFrank Piva     cl_event* event) CL_API_SUFFIX__VERSION_1_0;
128*3cc25752SFrank Piva 
129*3cc25752SFrank Piva extern CL_API_ENTRY cl_int CL_API_CALL
130*3cc25752SFrank Piva clEnqueueReleaseEGLObjectsKHR(
131*3cc25752SFrank Piva     cl_command_queue command_queue,
132*3cc25752SFrank Piva     cl_uint num_objects,
133*3cc25752SFrank Piva     const cl_mem* mem_objects,
134*3cc25752SFrank Piva     cl_uint num_events_in_wait_list,
135*3cc25752SFrank Piva     const cl_event* event_wait_list,
136*3cc25752SFrank Piva     cl_event* event) CL_API_SUFFIX__VERSION_1_0;
137*3cc25752SFrank Piva 
138*3cc25752SFrank Piva #endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
139*3cc25752SFrank Piva 
140*3cc25752SFrank Piva /***************************************************************
141*3cc25752SFrank Piva * cl_khr_egl_event
142*3cc25752SFrank Piva ***************************************************************/
143*3cc25752SFrank Piva #define cl_khr_egl_event 1
144*3cc25752SFrank Piva #define CL_KHR_EGL_EVENT_EXTENSION_NAME \
145*3cc25752SFrank Piva     "cl_khr_egl_event"
146*3cc25752SFrank Piva 
147*3cc25752SFrank Piva /* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
148*3cc25752SFrank Piva /* type CLeglDisplayKHR */
149*3cc25752SFrank Piva 
150*3cc25752SFrank Piva /* CLeglSyncKHR is an opaque handle to an EGLSync object */
151*3cc25752SFrank Piva typedef void*               CLeglSyncKHR;
152*3cc25752SFrank Piva 
153*3cc25752SFrank Piva 
154*3cc25752SFrank Piva typedef cl_event CL_API_CALL
155*3cc25752SFrank Piva clCreateEventFromEGLSyncKHR_t(
156*3cc25752SFrank Piva     cl_context context,
157*3cc25752SFrank Piva     CLeglSyncKHR sync,
158*3cc25752SFrank Piva     CLeglDisplayKHR display,
159*3cc25752SFrank Piva     cl_int* errcode_ret);
160*3cc25752SFrank Piva 
161*3cc25752SFrank Piva typedef clCreateEventFromEGLSyncKHR_t *
162*3cc25752SFrank Piva clCreateEventFromEGLSyncKHR_fn CL_API_SUFFIX__VERSION_1_0;
163*3cc25752SFrank Piva 
164*3cc25752SFrank Piva #if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
165*3cc25752SFrank Piva 
166*3cc25752SFrank Piva extern CL_API_ENTRY cl_event CL_API_CALL
167*3cc25752SFrank Piva clCreateEventFromEGLSyncKHR(
168*3cc25752SFrank Piva     cl_context context,
169*3cc25752SFrank Piva     CLeglSyncKHR sync,
170*3cc25752SFrank Piva     CLeglDisplayKHR display,
171*3cc25752SFrank Piva     cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
172*3cc25752SFrank Piva 
173*3cc25752SFrank Piva #endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
174*3cc25752SFrank Piva 
175*3cc25752SFrank Piva #ifdef __cplusplus
176*3cc25752SFrank Piva }
177*3cc25752SFrank Piva #endif
178*3cc25752SFrank Piva 
179*3cc25752SFrank Piva #endif /* OPENCL_CL_EGL_H_ */
180