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