Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/include/CL/cl_egl.h
4545 views
1
/*******************************************************************************
2
* Copyright (c) 2008-2019 The Khronos Group Inc.
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a
5
* copy of this software and/or associated documentation files (the
6
* "Materials"), to deal in the Materials without restriction, including
7
* without limitation the rights to use, copy, modify, merge, publish,
8
* distribute, sublicense, and/or sell copies of the Materials, and to
9
* permit persons to whom the Materials are furnished to do so, subject to
10
* the following conditions:
11
*
12
* The above copyright notice and this permission notice shall be included
13
* in all copies or substantial portions of the Materials.
14
*
15
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
16
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
17
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
18
* https://www.khronos.org/registry/
19
*
20
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
27
******************************************************************************/
28
29
#ifndef __OPENCL_CL_EGL_H
30
#define __OPENCL_CL_EGL_H
31
32
#include <CL/cl.h>
33
34
#ifdef __cplusplus
35
extern "C" {
36
#endif
37
38
39
/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */
40
#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F
41
#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D
42
#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E
43
44
/* Error type for clCreateFromEGLImageKHR */
45
#define CL_INVALID_EGL_OBJECT_KHR -1093
46
#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092
47
48
/* CLeglImageKHR is an opaque handle to an EGLImage */
49
typedef void* CLeglImageKHR;
50
51
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
52
typedef void* CLeglDisplayKHR;
53
54
/* CLeglSyncKHR is an opaque handle to an EGLSync object */
55
typedef void* CLeglSyncKHR;
56
57
/* properties passed to clCreateFromEGLImageKHR */
58
typedef intptr_t cl_egl_image_properties_khr;
59
60
61
#define cl_khr_egl_image 1
62
63
extern CL_API_ENTRY cl_mem CL_API_CALL
64
clCreateFromEGLImageKHR(cl_context context,
65
CLeglDisplayKHR egldisplay,
66
CLeglImageKHR eglimage,
67
cl_mem_flags flags,
68
const cl_egl_image_properties_khr * properties,
69
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
70
71
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)(
72
cl_context context,
73
CLeglDisplayKHR egldisplay,
74
CLeglImageKHR eglimage,
75
cl_mem_flags flags,
76
const cl_egl_image_properties_khr * properties,
77
cl_int * errcode_ret);
78
79
80
extern CL_API_ENTRY cl_int CL_API_CALL
81
clEnqueueAcquireEGLObjectsKHR(cl_command_queue command_queue,
82
cl_uint num_objects,
83
const cl_mem * mem_objects,
84
cl_uint num_events_in_wait_list,
85
const cl_event * event_wait_list,
86
cl_event * event) CL_API_SUFFIX__VERSION_1_0;
87
88
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)(
89
cl_command_queue command_queue,
90
cl_uint num_objects,
91
const cl_mem * mem_objects,
92
cl_uint num_events_in_wait_list,
93
const cl_event * event_wait_list,
94
cl_event * event);
95
96
97
extern CL_API_ENTRY cl_int CL_API_CALL
98
clEnqueueReleaseEGLObjectsKHR(cl_command_queue command_queue,
99
cl_uint num_objects,
100
const cl_mem * mem_objects,
101
cl_uint num_events_in_wait_list,
102
const cl_event * event_wait_list,
103
cl_event * event) CL_API_SUFFIX__VERSION_1_0;
104
105
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)(
106
cl_command_queue command_queue,
107
cl_uint num_objects,
108
const cl_mem * mem_objects,
109
cl_uint num_events_in_wait_list,
110
const cl_event * event_wait_list,
111
cl_event * event);
112
113
114
#define cl_khr_egl_event 1
115
116
extern CL_API_ENTRY cl_event CL_API_CALL
117
clCreateEventFromEGLSyncKHR(cl_context context,
118
CLeglSyncKHR sync,
119
CLeglDisplayKHR display,
120
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
121
122
typedef CL_API_ENTRY cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)(
123
cl_context context,
124
CLeglSyncKHR sync,
125
CLeglDisplayKHR display,
126
cl_int * errcode_ret);
127
128
#ifdef __cplusplus
129
}
130
#endif
131
132
#endif /* __OPENCL_CL_EGL_H */
133
134